<!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>[213301] 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/213301">213301</a></dd>
<dt>Author</dt> <dd>jiewen_tan@apple.com</dd>
<dt>Date</dt> <dd>2017-03-02 13:55:55 -0800 (Thu, 02 Mar 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>WebCrypto API support for AES-GCM
https://bugs.webkit.org/show_bug.cgi?id=157175
&lt;rdar://problem/27311691&gt;

Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

* web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker-expected.txt:
* web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_gcm-expected.txt:
* web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.worker-expected.txt:
* web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.worker-expected.txt:
* web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt:
* web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt:
* web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.worker-expected.txt:
* web-platform-tests/WebCryptoAPI/import_export/test_symmetric_importKey-expected.txt:

Source/WebCore:

This patch adds support for AES-GCM. Operations of AES-GCM include: encrypt, decrypt, generateKey,
importKey, exportKey, wrapKey, and unwrapKey. https://www.w3.org/TR/WebCryptoAPI/#aes-gcm

Tests: crypto/subtle/aes-gcm-decrypt-malformed-parameters.html
       crypto/subtle/aes-gcm-encrypt-malformed-parameters.html
       crypto/subtle/aes-gcm-generate-export-key-jwk-length-128.html
       crypto/subtle/aes-gcm-generate-export-key-jwk-length-192.html
       crypto/subtle/aes-gcm-generate-export-key-jwk-length-256.html
       crypto/subtle/aes-gcm-generate-export-raw-key.html
       crypto/subtle/aes-gcm-generate-key-encrypt-decrypt.html
       crypto/subtle/aes-gcm-generate-key.html
       crypto/subtle/aes-gcm-import-jwk-key-length-128.html
       crypto/subtle/aes-gcm-import-jwk-key-length-192.html
       crypto/subtle/aes-gcm-import-jwk-key-length-256.html
       crypto/subtle/aes-gcm-import-key-decrypt-additional-data-tag-length-32.html
       crypto/subtle/aes-gcm-import-key-decrypt-additional-data.html
       crypto/subtle/aes-gcm-import-key-decrypt-tagLengths.html
       crypto/subtle/aes-gcm-import-key-decrypt.html
       crypto/subtle/aes-gcm-import-key-encrypt-additional-data-tag-length-32.html
       crypto/subtle/aes-gcm-import-key-encrypt-additional-data.html
       crypto/subtle/aes-gcm-import-key-encrypt-tagLengths.html
       crypto/subtle/aes-gcm-import-key-encrypt.html
       crypto/subtle/aes-gcm-import-key-unwrap-jwk-key.html
       crypto/subtle/aes-gcm-import-key-unwrap-raw-key.html
       crypto/subtle/aes-gcm-import-key-wrap-jwk-key.html
       crypto/subtle/aes-gcm-import-key-wrap-raw-key.html
       crypto/subtle/aes-gcm-import-raw-key.html
       crypto/workers/subtle/aes-gcm-import-key-decrypt.html
       crypto/workers/subtle/aes-gcm-import-key-encrypt.html
       crypto/workers/subtle/aes-gcm-import-key-unwrap-key.html
       crypto/workers/subtle/aes-gcm-import-key-wrap-key.html

* CMakeLists.txt:
* DerivedSources.make:
* PlatformGTK.cmake:
* PlatformMac.cmake:
Add CryptoAlgorithmAES_CFBMac.cpp as well.
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::normalizeCryptoAlgorithmParameters):
Add support for AES-GCM.
* crypto/CommonCryptoUtilities.h:
Include SPI header for AES-GCM support.
* crypto/CryptoAlgorithmParameters.h:
* crypto/algorithms/CryptoAlgorithmAES_GCM.cpp: Added.
(WebCore::usagesAreInvalidForCryptoAlgorithmAES_GCM):
(WebCore::tagLengthIsValid):
(WebCore::CryptoAlgorithmAES_GCM::create):
(WebCore::CryptoAlgorithmAES_GCM::identifier):
(WebCore::CryptoAlgorithmAES_GCM::encrypt):
(WebCore::CryptoAlgorithmAES_GCM::decrypt):
(WebCore::CryptoAlgorithmAES_GCM::generateKey):
(WebCore::CryptoAlgorithmAES_GCM::importKey):
(WebCore::CryptoAlgorithmAES_GCM::exportKey):
* crypto/algorithms/CryptoAlgorithmAES_GCM.h: Added.
* crypto/gnutls/CryptoAlgorithmAES_GCMGnuTLS.cpp: Added.
(WebCore::CryptoAlgorithmAES_GCM::platformEncrypt):
(WebCore::CryptoAlgorithmAES_GCM::platformDecrypt):
* crypto/mac/CryptoAlgorithmAES_GCMMac.cpp: Added.
(WebCore::encryptAES_GCM):
(WebCore::decyptAES_GCM):
(WebCore::CryptoAlgorithmAES_GCM::platformEncrypt):
(WebCore::CryptoAlgorithmAES_GCM::platformDecrypt):
* crypto/mac/CryptoAlgorithmRegistryMac.cpp:
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
* crypto/parameters/AesGcmParams.idl: Added.
* crypto/parameters/CryptoAlgorithmAesGcmParams.h: Added.

LayoutTests:

This patch also adds some tests for AES-CFB.

* crypto/subtle/aes-export-key-malformed-parameters-expected.txt:
* crypto/subtle/aes-export-key-malformed-parameters.html:
* crypto/subtle/aes-gcm-decrypt-malformed-parameters-expected.txt: Added.
* crypto/subtle/aes-gcm-decrypt-malformed-parameters.html: Added.
* crypto/subtle/aes-gcm-encrypt-malformed-parameters-expected.txt: Added.
* crypto/subtle/aes-gcm-encrypt-malformed-parameters.html: Added.
* crypto/subtle/aes-gcm-generate-export-key-jwk-length-128-expected.txt: Added.
* crypto/subtle/aes-gcm-generate-export-key-jwk-length-128.html: Added.
* crypto/subtle/aes-gcm-generate-export-key-jwk-length-192-expected.txt: Added.
* crypto/subtle/aes-gcm-generate-export-key-jwk-length-192.html: Added.
* crypto/subtle/aes-gcm-generate-export-key-jwk-length-256-expected.txt: Added.
* crypto/subtle/aes-gcm-generate-export-key-jwk-length-256.html: Added.
* crypto/subtle/aes-gcm-generate-export-raw-key-expected.txt: Added.
* crypto/subtle/aes-gcm-generate-export-raw-key.html: Added.
* crypto/subtle/aes-gcm-generate-key-encrypt-decrypt-expected.txt: Added.
* crypto/subtle/aes-gcm-generate-key-encrypt-decrypt.html: Added.
* crypto/subtle/aes-gcm-generate-key-expected.txt: Added.
* crypto/subtle/aes-gcm-generate-key.html: Added.
* crypto/subtle/aes-gcm-import-jwk-key-length-128-expected.txt: Added.
* crypto/subtle/aes-gcm-import-jwk-key-length-128.html: Added.
* crypto/subtle/aes-gcm-import-jwk-key-length-192-expected.txt: Added.
* crypto/subtle/aes-gcm-import-jwk-key-length-192.html: Added.
* crypto/subtle/aes-gcm-import-jwk-key-length-256-expected.txt: Added.
* crypto/subtle/aes-gcm-import-jwk-key-length-256.html: Added.
* crypto/subtle/aes-gcm-import-key-decrypt-additional-data-expected.txt: Added.
* crypto/subtle/aes-gcm-import-key-decrypt-additional-data-tag-length-32-expected.txt: Added.
* crypto/subtle/aes-gcm-import-key-decrypt-additional-data-tag-length-32.html: Added.
* crypto/subtle/aes-gcm-import-key-decrypt-additional-data.html: Added.
* crypto/subtle/aes-gcm-import-key-decrypt-expected.txt: Added.
* crypto/subtle/aes-gcm-import-key-decrypt-tagLengths-expected.txt: Added.
* crypto/subtle/aes-gcm-import-key-decrypt-tagLengths.html: Added.
* crypto/subtle/aes-gcm-import-key-decrypt.html: Added.
* crypto/subtle/aes-gcm-import-key-encrypt-additional-data-expected.txt: Added.
* crypto/subtle/aes-gcm-import-key-encrypt-additional-data-tag-length-32-expected.txt: Added.
* crypto/subtle/aes-gcm-import-key-encrypt-additional-data-tag-length-32.html: Added.
* crypto/subtle/aes-gcm-import-key-encrypt-additional-data.html: Added.
* crypto/subtle/aes-gcm-import-key-encrypt-expected.txt: Added.
* crypto/subtle/aes-gcm-import-key-encrypt-tagLengths-expected.txt: Added.
* crypto/subtle/aes-gcm-import-key-encrypt-tagLengths.html: Added.
* crypto/subtle/aes-gcm-import-key-encrypt.html: Added.
* crypto/subtle/aes-gcm-import-key-unwrap-jwk-key-expected.txt: Added.
* crypto/subtle/aes-gcm-import-key-unwrap-jwk-key.html: Added.
* crypto/subtle/aes-gcm-import-key-unwrap-raw-key-expected.txt: Added.
* crypto/subtle/aes-gcm-import-key-unwrap-raw-key.html: Added.
* crypto/subtle/aes-gcm-import-key-wrap-jwk-key-expected.txt: Added.
* crypto/subtle/aes-gcm-import-key-wrap-jwk-key.html: Added.
* crypto/subtle/aes-gcm-import-key-wrap-raw-key-expected.txt: Added.
* crypto/subtle/aes-gcm-import-key-wrap-raw-key.html: Added.
* crypto/subtle/aes-gcm-import-raw-key-expected.txt: Added.
* crypto/subtle/aes-gcm-import-raw-key.html: Added.
* crypto/subtle/aes-generate-key-malformed-parameters-expected.txt:
* crypto/subtle/aes-generate-key-malformed-parameters.html:
* crypto/subtle/aes-import-key-malformed-parameters-expected.txt:
* crypto/subtle/aes-import-key-malformed-parameters.html:
* crypto/workers/subtle/aes-gcm-import-key-decrypt-expected.txt: Added.
* crypto/workers/subtle/aes-gcm-import-key-decrypt.html: Added.
* crypto/workers/subtle/aes-gcm-import-key-encrypt-expected.txt: Added.
* crypto/workers/subtle/aes-gcm-import-key-encrypt.html: Added.
* crypto/workers/subtle/aes-gcm-import-key-unwrap-key-expected.txt: Added.
* crypto/workers/subtle/aes-gcm-import-key-unwrap-key.html: Added.
* crypto/workers/subtle/aes-gcm-import-key-wrap-key-expected.txt: Added.
* crypto/workers/subtle/aes-gcm-import-key-wrap-key.html: Added.
* crypto/workers/subtle/resources/aes-gcm-import-key-decrypt.js: Added.
* crypto/workers/subtle/resources/aes-gcm-import-key-encrypt.js: Added.
* crypto/workers/subtle/resources/aes-gcm-import-key-unwrap-key.js: Added.
* crypto/workers/subtle/resources/aes-gcm-import-key-wrap-key.js: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesexportkeymalformedparametersexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-export-key-malformed-parameters-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesexportkeymalformedparametershtml">trunk/LayoutTests/crypto/subtle/aes-export-key-malformed-parameters.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="#trunkLayoutTestscryptosubtleaesimportkeymalformedparametersexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-import-key-malformed-parameters-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesimportkeymalformedparametershtml">trunk/LayoutTests/crypto/subtle/aes-import-key-malformed-parameters.html</a></li>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsWebCryptoAPIencrypt_decryptaes_gcmworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsWebCryptoAPIencrypt_decrypttest_aes_gcmexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_gcm-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsWebCryptoAPIgenerateKeyfailures_AESGCMworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsWebCryptoAPIgenerateKeysuccesses_AESGCMworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsWebCryptoAPIgenerateKeytest_failures_AESGCMexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsWebCryptoAPIgenerateKeytest_successes_AESGCMexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsWebCryptoAPIimport_exportsymmetric_importKeyworkerexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.worker-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestsWebCryptoAPIimport_exporttest_symmetric_importKeyexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_symmetric_importKey-expected.txt</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="#trunkSourceWebCorePlatformGTKcmake">trunk/Source/WebCore/PlatformGTK.cmake</a></li>
<li><a href="#trunkSourceWebCorePlatformMaccmake">trunk/Source/WebCore/PlatformMac.cmake</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSSubtleCryptoCustomcpp">trunk/Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoCommonCryptoUtilitiesh">trunk/Source/WebCore/crypto/CommonCryptoUtilities.h</a></li>
<li><a href="#trunkSourceWebCorecryptoCryptoAlgorithmParametersh">trunk/Source/WebCore/crypto/CryptoAlgorithmParameters.h</a></li>
<li><a href="#trunkSourceWebCorecryptomacCryptoAlgorithmRegistryMaccpp">trunk/Source/WebCore/crypto/mac/CryptoAlgorithmRegistryMac.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmdecryptmalformedparametersexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-decrypt-malformed-parameters-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmdecryptmalformedparametershtml">trunk/LayoutTests/crypto/subtle/aes-gcm-decrypt-malformed-parameters.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmencryptmalformedparametersexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-encrypt-malformed-parameters-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmencryptmalformedparametershtml">trunk/LayoutTests/crypto/subtle/aes-gcm-encrypt-malformed-parameters.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmgenerateexportkeyjwklength128expectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-128-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmgenerateexportkeyjwklength128html">trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-128.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmgenerateexportkeyjwklength192expectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-192-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmgenerateexportkeyjwklength192html">trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-192.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmgenerateexportkeyjwklength256expectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-256-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmgenerateexportkeyjwklength256html">trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-256.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmgenerateexportrawkeyexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-raw-key-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmgenerateexportrawkeyhtml">trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-raw-key.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmgeneratekeyencryptdecryptexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-generate-key-encrypt-decrypt-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmgeneratekeyencryptdecrypthtml">trunk/LayoutTests/crypto/subtle/aes-gcm-generate-key-encrypt-decrypt.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmgeneratekeyexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-generate-key-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmgeneratekeyhtml">trunk/LayoutTests/crypto/subtle/aes-gcm-generate-key.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportjwkkeylength128expectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-128-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportjwkkeylength128html">trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-128.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportjwkkeylength192expectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-192-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportjwkkeylength192html">trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-192.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportjwkkeylength256expectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-256-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportjwkkeylength256html">trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-256.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeydecryptadditionaldataexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-additional-data-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeydecryptadditionaldatataglength32expectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-additional-data-tag-length-32-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeydecryptadditionaldatataglength32html">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-additional-data-tag-length-32.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeydecryptadditionaldatahtml">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-additional-data.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeydecryptexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeydecrypttagLengthsexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-tagLengths-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeydecrypttagLengthshtml">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-tagLengths.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeydecrypthtml">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeyencryptadditionaldataexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-additional-data-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeyencryptadditionaldatataglength32expectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-additional-data-tag-length-32-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeyencryptadditionaldatataglength32html">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-additional-data-tag-length-32.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeyencryptadditionaldatahtml">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-additional-data.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeyencryptexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeyencrypttagLengthsexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-tagLengths-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeyencrypttagLengthshtml">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-tagLengths.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeyencrypthtml">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeyunwrapjwkkeyexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-unwrap-jwk-key-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeyunwrapjwkkeyhtml">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-unwrap-jwk-key.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeyunwraprawkeyexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-unwrap-raw-key-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeyunwraprawkeyhtml">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-unwrap-raw-key.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeywrapjwkkeyexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-wrap-jwk-key-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeywrapjwkkeyhtml">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-wrap-jwk-key.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeywraprawkeyexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-wrap-raw-key-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportkeywraprawkeyhtml">trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-wrap-raw-key.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportrawkeyexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-gcm-import-raw-key-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaesgcmimportrawkeyhtml">trunk/LayoutTests/crypto/subtle/aes-gcm-import-raw-key.html</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtleaesgcmimportkeydecryptexpectedtxt">trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-decrypt-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtleaesgcmimportkeydecrypthtml">trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-decrypt.html</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtleaesgcmimportkeyencryptexpectedtxt">trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-encrypt-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtleaesgcmimportkeyencrypthtml">trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-encrypt.html</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtleaesgcmimportkeyunwrapkeyexpectedtxt">trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-unwrap-key-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtleaesgcmimportkeyunwrapkeyhtml">trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-unwrap-key.html</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtleaesgcmimportkeywrapkeyexpectedtxt">trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-wrap-key-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtleaesgcmimportkeywrapkeyhtml">trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-wrap-key.html</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtleresourcesaesgcmimportkeydecryptjs">trunk/LayoutTests/crypto/workers/subtle/resources/aes-gcm-import-key-decrypt.js</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtleresourcesaesgcmimportkeyencryptjs">trunk/LayoutTests/crypto/workers/subtle/resources/aes-gcm-import-key-encrypt.js</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtleresourcesaesgcmimportkeyunwrapkeyjs">trunk/LayoutTests/crypto/workers/subtle/resources/aes-gcm-import-key-unwrap-key.js</a></li>
<li><a href="#trunkLayoutTestscryptoworkerssubtleresourcesaesgcmimportkeywrapkeyjs">trunk/LayoutTests/crypto/workers/subtle/resources/aes-gcm-import-key-wrap-key.js</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmAES_GCMcpp">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_GCM.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmAES_GCMh">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_GCM.h</a></li>
<li><a href="#trunkSourceWebCorecryptognutlsCryptoAlgorithmAES_GCMGnuTLScpp">trunk/Source/WebCore/crypto/gnutls/CryptoAlgorithmAES_GCMGnuTLS.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptomacCryptoAlgorithmAES_GCMMaccpp">trunk/Source/WebCore/crypto/mac/CryptoAlgorithmAES_GCMMac.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersAesGcmParamsidl">trunk/Source/WebCore/crypto/parameters/AesGcmParams.idl</a></li>
<li><a href="#trunkSourceWebCorecryptoparametersCryptoAlgorithmAesGcmParamsh">trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesGcmParams.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/LayoutTests/ChangeLog        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -1,3 +1,80 @@
</span><ins>+2017-02-22  Jiewen Tan  &lt;jiewen_tan@apple.com&gt;
+
+        WebCrypto API support for AES-GCM
+        https://bugs.webkit.org/show_bug.cgi?id=157175
+        &lt;rdar://problem/27311691&gt;
+
+        Reviewed by Brent Fulgham.
+
+        This patch also adds some tests for AES-CFB.
+
+        * crypto/subtle/aes-export-key-malformed-parameters-expected.txt:
+        * crypto/subtle/aes-export-key-malformed-parameters.html:
+        * crypto/subtle/aes-gcm-decrypt-malformed-parameters-expected.txt: Added.
+        * crypto/subtle/aes-gcm-decrypt-malformed-parameters.html: Added.
+        * crypto/subtle/aes-gcm-encrypt-malformed-parameters-expected.txt: Added.
+        * crypto/subtle/aes-gcm-encrypt-malformed-parameters.html: Added.
+        * crypto/subtle/aes-gcm-generate-export-key-jwk-length-128-expected.txt: Added.
+        * crypto/subtle/aes-gcm-generate-export-key-jwk-length-128.html: Added.
+        * crypto/subtle/aes-gcm-generate-export-key-jwk-length-192-expected.txt: Added.
+        * crypto/subtle/aes-gcm-generate-export-key-jwk-length-192.html: Added.
+        * crypto/subtle/aes-gcm-generate-export-key-jwk-length-256-expected.txt: Added.
+        * crypto/subtle/aes-gcm-generate-export-key-jwk-length-256.html: Added.
+        * crypto/subtle/aes-gcm-generate-export-raw-key-expected.txt: Added.
+        * crypto/subtle/aes-gcm-generate-export-raw-key.html: Added.
+        * crypto/subtle/aes-gcm-generate-key-encrypt-decrypt-expected.txt: Added.
+        * crypto/subtle/aes-gcm-generate-key-encrypt-decrypt.html: Added.
+        * crypto/subtle/aes-gcm-generate-key-expected.txt: Added.
+        * crypto/subtle/aes-gcm-generate-key.html: Added.
+        * crypto/subtle/aes-gcm-import-jwk-key-length-128-expected.txt: Added.
+        * crypto/subtle/aes-gcm-import-jwk-key-length-128.html: Added.
+        * crypto/subtle/aes-gcm-import-jwk-key-length-192-expected.txt: Added.
+        * crypto/subtle/aes-gcm-import-jwk-key-length-192.html: Added.
+        * crypto/subtle/aes-gcm-import-jwk-key-length-256-expected.txt: Added.
+        * crypto/subtle/aes-gcm-import-jwk-key-length-256.html: Added.
+        * crypto/subtle/aes-gcm-import-key-decrypt-additional-data-expected.txt: Added.
+        * crypto/subtle/aes-gcm-import-key-decrypt-additional-data-tag-length-32-expected.txt: Added.
+        * crypto/subtle/aes-gcm-import-key-decrypt-additional-data-tag-length-32.html: Added.
+        * crypto/subtle/aes-gcm-import-key-decrypt-additional-data.html: Added.
+        * crypto/subtle/aes-gcm-import-key-decrypt-expected.txt: Added.
+        * crypto/subtle/aes-gcm-import-key-decrypt-tagLengths-expected.txt: Added.
+        * crypto/subtle/aes-gcm-import-key-decrypt-tagLengths.html: Added.
+        * crypto/subtle/aes-gcm-import-key-decrypt.html: Added.
+        * crypto/subtle/aes-gcm-import-key-encrypt-additional-data-expected.txt: Added.
+        * crypto/subtle/aes-gcm-import-key-encrypt-additional-data-tag-length-32-expected.txt: Added.
+        * crypto/subtle/aes-gcm-import-key-encrypt-additional-data-tag-length-32.html: Added.
+        * crypto/subtle/aes-gcm-import-key-encrypt-additional-data.html: Added.
+        * crypto/subtle/aes-gcm-import-key-encrypt-expected.txt: Added.
+        * crypto/subtle/aes-gcm-import-key-encrypt-tagLengths-expected.txt: Added.
+        * crypto/subtle/aes-gcm-import-key-encrypt-tagLengths.html: Added.
+        * crypto/subtle/aes-gcm-import-key-encrypt.html: Added.
+        * crypto/subtle/aes-gcm-import-key-unwrap-jwk-key-expected.txt: Added.
+        * crypto/subtle/aes-gcm-import-key-unwrap-jwk-key.html: Added.
+        * crypto/subtle/aes-gcm-import-key-unwrap-raw-key-expected.txt: Added.
+        * crypto/subtle/aes-gcm-import-key-unwrap-raw-key.html: Added.
+        * crypto/subtle/aes-gcm-import-key-wrap-jwk-key-expected.txt: Added.
+        * crypto/subtle/aes-gcm-import-key-wrap-jwk-key.html: Added.
+        * crypto/subtle/aes-gcm-import-key-wrap-raw-key-expected.txt: Added.
+        * crypto/subtle/aes-gcm-import-key-wrap-raw-key.html: Added.
+        * crypto/subtle/aes-gcm-import-raw-key-expected.txt: Added.
+        * crypto/subtle/aes-gcm-import-raw-key.html: Added.
+        * crypto/subtle/aes-generate-key-malformed-parameters-expected.txt:
+        * crypto/subtle/aes-generate-key-malformed-parameters.html:
+        * crypto/subtle/aes-import-key-malformed-parameters-expected.txt:
+        * crypto/subtle/aes-import-key-malformed-parameters.html:
+        * crypto/workers/subtle/aes-gcm-import-key-decrypt-expected.txt: Added.
+        * crypto/workers/subtle/aes-gcm-import-key-decrypt.html: Added.
+        * crypto/workers/subtle/aes-gcm-import-key-encrypt-expected.txt: Added.
+        * crypto/workers/subtle/aes-gcm-import-key-encrypt.html: Added.
+        * crypto/workers/subtle/aes-gcm-import-key-unwrap-key-expected.txt: Added.
+        * crypto/workers/subtle/aes-gcm-import-key-unwrap-key.html: Added.
+        * crypto/workers/subtle/aes-gcm-import-key-wrap-key-expected.txt: Added.
+        * crypto/workers/subtle/aes-gcm-import-key-wrap-key.html: Added.
+        * crypto/workers/subtle/resources/aes-gcm-import-key-decrypt.js: Added.
+        * crypto/workers/subtle/resources/aes-gcm-import-key-encrypt.js: Added.
+        * crypto/workers/subtle/resources/aes-gcm-import-key-unwrap-key.js: Added.
+        * crypto/workers/subtle/resources/aes-gcm-import-key-wrap-key.js: Added.
+
</ins><span class="cx"> 2017-03-02  Ryan Haddad  &lt;ryanhaddad@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Mark inspector/debugger/breakpoint-action-eval.html as flaky.
</span></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesexportkeymalformedparametersexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/crypto/subtle/aes-export-key-malformed-parameters-expected.txt (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-export-key-malformed-parameters-expected.txt        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/LayoutTests/crypto/subtle/aes-export-key-malformed-parameters-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -7,6 +7,10 @@
</span><span class="cx"> PASS crypto.subtle.exportKey(&quot;pkcs8&quot;, key) rejected promise  with NotSupportedError (DOM Exception 9): The algorithm is not supported.
</span><span class="cx"> PASS crypto.subtle.exportKey(&quot;spki&quot;, key) rejected promise  with NotSupportedError (DOM Exception 9): The algorithm is not supported.
</span><span class="cx"> PASS crypto.subtle.exportKey(&quot;pkcs8&quot;, key) rejected promise  with NotSupportedError (DOM Exception 9): The algorithm is not supported.
</span><ins>+PASS crypto.subtle.exportKey(&quot;spki&quot;, key) rejected promise  with NotSupportedError (DOM Exception 9): The algorithm is not supported.
+PASS crypto.subtle.exportKey(&quot;pkcs8&quot;, key) rejected promise  with NotSupportedError (DOM Exception 9): The algorithm is not supported.
+PASS crypto.subtle.exportKey(&quot;spki&quot;, key) rejected promise  with NotSupportedError (DOM Exception 9): The algorithm is not supported.
+PASS crypto.subtle.exportKey(&quot;pkcs8&quot;, key) rejected promise  with NotSupportedError (DOM Exception 9): The algorithm is not supported.
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesexportkeymalformedparametershtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/crypto/subtle/aes-export-key-malformed-parameters.html (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-export-key-malformed-parameters.html        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/LayoutTests/crypto/subtle/aes-export-key-malformed-parameters.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -31,6 +31,24 @@
</span><span class="cx">     return shouldReject('crypto.subtle.exportKey(&quot;spki&quot;, key)');
</span><span class="cx"> }).then(function() {
</span><span class="cx">     return shouldReject('crypto.subtle.exportKey(&quot;pkcs8&quot;, key)');
</span><ins>+}).then(function() {
+    return crypto.subtle.generateKey({name: &quot;aes-cfb-8&quot;, length: 128}, extractable, [&quot;decrypt&quot;, &quot;encrypt&quot;, &quot;unwrapKey&quot;, &quot;wrapKey&quot;]);
+}).then(function(result) {
+    key = result;
+
+    // Not support format.
+    return shouldReject('crypto.subtle.exportKey(&quot;spki&quot;, key)');
+}).then(function() {
+    return shouldReject('crypto.subtle.exportKey(&quot;pkcs8&quot;, key)');
+}).then(function() {
+    return crypto.subtle.generateKey({name: &quot;aes-gcm&quot;, length: 128}, extractable, [&quot;decrypt&quot;, &quot;encrypt&quot;, &quot;unwrapKey&quot;, &quot;wrapKey&quot;]);
+}).then(function(result) {
+    key = result;
+
+    // Not support format.
+    return shouldReject('crypto.subtle.exportKey(&quot;spki&quot;, key)');
+}).then(function() {
+    return shouldReject('crypto.subtle.exportKey(&quot;pkcs8&quot;, key)');
</ins><span class="cx"> }).then(finishJSTest, finishJSTest);
</span><span class="cx"> &lt;/script&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgcmdecryptmalformedparametersexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-decrypt-malformed-parameters-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-decrypt-malformed-parameters-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-decrypt-malformed-parameters-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+Test decrypting using AES-GCM with malformed parameters
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS crypto.subtle.decrypt({name: &quot;aes-gcm&quot;, iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMrd&quot;)}, key, smallCipherText) rejected promise  with OperationError (DOM Exception 34): The operation failed for an operation-specific reason.
+PASS crypto.subtle.decrypt({name: &quot;aes-gcm&quot;, iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMrd&quot;)}, key, corruptedCipherText) 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="trunkLayoutTestscryptosubtleaesgcmdecryptmalformedparametershtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-decrypt-malformed-parameters.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-decrypt-malformed-parameters.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-decrypt-malformed-parameters.html        2017-03-02 21:55:55 UTC (rev 213301)
</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 decrypting using AES-GCM with malformed parameters&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = false;
+var smallCipherText = hexStringToUint8Array(&quot;f9&quot;);
+var corruptedCipherText = hexStringToUint8Array(&quot;f9ba1161a16c9fcc726a4531c1b520925e4ba35f8b534c62f34e1f3ba0&quot;);
+var rawKey = asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;);
+
+crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-gcm&quot;, extractable, [&quot;decrypt&quot;]).then(function(result) {
+    key = result;
+
+    // Small cipher text
+    shouldReject('crypto.subtle.decrypt({name: &quot;aes-gcm&quot;, iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMrd&quot;)}, key, smallCipherText)');
+
+    // Corrupted cipher text
+    return shouldReject('crypto.subtle.decrypt({name: &quot;aes-gcm&quot;, iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMrd&quot;)}, key, corruptedCipherText)');
+}).then(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="trunkLayoutTestscryptosubtleaesgcmencryptmalformedparametersexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-encrypt-malformed-parameters-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-encrypt-malformed-parameters-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-encrypt-malformed-parameters-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+Test encrypting using AES-GCM with malformed parameters
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS crypto.subtle.encrypt({name: &quot;aes-gcm&quot;, iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMrd&quot;), tagLength: 0}, key, plainText) rejected promise  with OperationError (DOM Exception 34): The operation failed for an operation-specific reason.
+PASS crypto.subtle.encrypt({name: &quot;aes-gcm&quot;, iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMrd&quot;), tagLength: -1}, key, plainText) rejected promise  with OperationError (DOM Exception 34): The operation failed for an operation-specific reason.
+PASS crypto.subtle.encrypt({name: &quot;aes-gcm&quot;, iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMrd&quot;), tagLength: 129}, key, plainText) rejected promise  with OperationError (DOM Exception 34): The operation failed for an operation-specific reason.
+PASS crypto.subtle.encrypt({name: &quot;aes-gcm&quot;, iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMrd&quot;), tagLength: 70}, key, plainText) 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="trunkLayoutTestscryptosubtleaesgcmencryptmalformedparametershtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-encrypt-malformed-parameters.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-encrypt-malformed-parameters.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-encrypt-malformed-parameters.html        2017-03-02 21:55:55 UTC (rev 213301)
</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 encrypting using AES-GCM with malformed parameters&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = false;
+var plainText = asciiToUint8Array(&quot;Hello, World!&quot;);
+var rawKey = asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;);
+
+crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-gcm&quot;, extractable, [&quot;encrypt&quot;]).then(function(result) {
+    key = result;
+
+    // Wrong tag length
+    shouldReject('crypto.subtle.encrypt({name: &quot;aes-gcm&quot;, iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMrd&quot;), tagLength: 0}, key, plainText)');
+    shouldReject('crypto.subtle.encrypt({name: &quot;aes-gcm&quot;, iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMrd&quot;), tagLength: -1}, key, plainText)');
+    shouldReject('crypto.subtle.encrypt({name: &quot;aes-gcm&quot;, iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMrd&quot;), tagLength: 129}, key, plainText)');
+    shouldReject('crypto.subtle.encrypt({name: &quot;aes-gcm&quot;, iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMrd&quot;), tagLength: 70}, key, plainText)');
+
+    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="trunkLayoutTestscryptosubtleaesgcmgenerateexportkeyjwklength128expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-128-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-128-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-128-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+Test exporting a 128 bits AES-GCM key with JWK format
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Generating a key...
+Exporting a key...
+PASS key.kty is 'oct'
+PASS key.key_ops is ['decrypt', 'encrypt', 'unwrapKey', 'wrapKey']
+PASS key.alg is 'A128GCM'
+PASS key.ext is true
+PASS Base64URL.parse(key.k).byteLength is 16
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgcmgenerateexportkeyjwklength128html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-128.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-128.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-128.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,37 @@
</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 exporting a 128 bits AES-GCM key with JWK format&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = true;
+
+debug(&quot;Generating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;aes-gcm&quot;, length: 128}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;]).then(function(key) {
+    debug(&quot;Exporting a key...&quot;);
+    return crypto.subtle.exportKey(&quot;jwk&quot;, key);
+}).then(function(result) {
+    key = result;
+
+    shouldBe(&quot;key.kty&quot;, &quot;'oct'&quot;);
+    shouldBe(&quot;key.key_ops&quot;, &quot;['decrypt', 'encrypt', 'unwrapKey', 'wrapKey']&quot;);
+    shouldBe(&quot;key.alg&quot;, &quot;'A128GCM'&quot;);
+    shouldBe(&quot;key.ext&quot;, &quot;true&quot;);
+    shouldBe(&quot;Base64URL.parse(key.k).byteLength&quot;, &quot;16&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="trunkLayoutTestscryptosubtleaesgcmgenerateexportkeyjwklength192expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-192-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-192-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-192-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+Test exporting a 192 bits AES-GCM key with JWK format
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Generating a key...
+Exporting a key...
+PASS key.kty is 'oct'
+PASS key.key_ops is ['decrypt', 'encrypt', 'unwrapKey', 'wrapKey']
+PASS key.alg is 'A192GCM'
+PASS key.ext is true
+PASS Base64URL.parse(key.k).byteLength is 24
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgcmgenerateexportkeyjwklength192html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-192.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-192.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-192.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,37 @@
</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 exporting a 192 bits AES-GCM key with JWK format&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = true;
+
+debug(&quot;Generating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;aes-gcm&quot;, length: 192}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;]).then(function(key) {
+    debug(&quot;Exporting a key...&quot;);
+    return crypto.subtle.exportKey(&quot;jwk&quot;, key);
+}).then(function(result) {
+    key = result;
+
+    shouldBe(&quot;key.kty&quot;, &quot;'oct'&quot;);
+    shouldBe(&quot;key.key_ops&quot;, &quot;['decrypt', 'encrypt', 'unwrapKey', 'wrapKey']&quot;);
+    shouldBe(&quot;key.alg&quot;, &quot;'A192GCM'&quot;);
+    shouldBe(&quot;key.ext&quot;, &quot;true&quot;);
+    shouldBe(&quot;Base64URL.parse(key.k).byteLength&quot;, &quot;24&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="trunkLayoutTestscryptosubtleaesgcmgenerateexportkeyjwklength256expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-256-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-256-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-256-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+Test exporting a 256 bits AES-GCM key with JWK format
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Generating a key...
+Exporting a key...
+PASS key.kty is 'oct'
+PASS key.key_ops is ['decrypt', 'encrypt', 'unwrapKey', 'wrapKey']
+PASS key.alg is 'A256GCM'
+PASS key.ext is true
+PASS Base64URL.parse(key.k).byteLength is 32
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgcmgenerateexportkeyjwklength256html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-256.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-256.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-key-jwk-length-256.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,37 @@
</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 exporting a 256 bits AES-GCM key with JWK format&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = true;
+
+debug(&quot;Generating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;aes-gcm&quot;, length: 256}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;]).then(function(key) {
+    debug(&quot;Exporting a key...&quot;);
+    return crypto.subtle.exportKey(&quot;jwk&quot;, key);
+}).then(function(result) {
+    key = result;
+
+    shouldBe(&quot;key.kty&quot;, &quot;'oct'&quot;);
+    shouldBe(&quot;key.key_ops&quot;, &quot;['decrypt', 'encrypt', 'unwrapKey', 'wrapKey']&quot;);
+    shouldBe(&quot;key.alg&quot;, &quot;'A256GCM'&quot;);
+    shouldBe(&quot;key.ext&quot;, &quot;true&quot;);
+    shouldBe(&quot;Base64URL.parse(key.k).byteLength&quot;, &quot;32&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="trunkLayoutTestscryptosubtleaesgcmgenerateexportrawkeyexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-raw-key-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-raw-key-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-raw-key-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+Test exporting a 256 bits AES-GCM key with raw format
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Generating a key...
+Exporting a key...
+PASS key.byteLength is 32
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgcmgenerateexportrawkeyhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-raw-key.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-raw-key.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-generate-export-raw-key.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,33 @@
</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 exporting a 256 bits AES-GCM key with raw format&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = true;
+
+debug(&quot;Generating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;aes-gcm&quot;, length: 256}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;]).then(function(key) {
+    debug(&quot;Exporting a key...&quot;);
+    return crypto.subtle.exportKey(&quot;raw&quot;, key);
+}).then(function(result) {
+    key = result;
+
+    shouldBe(&quot;key.byteLength&quot;, &quot;32&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="trunkLayoutTestscryptosubtleaesgcmgeneratekeyencryptdecryptexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-generate-key-encrypt-decrypt-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-generate-key-encrypt-decrypt-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-generate-key-encrypt-decrypt-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+Test encrypting&amp;decrypting using AES-GCM algorithm with a generated 256bit key
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Generating a key...
+Encrypting...
+PASS bytesToASCIIString(cipherText) is not &quot;Hello, World!&quot;
+Decrypting...
+PASS bytesToASCIIString(decryptedText) is plainText
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgcmgeneratekeyencryptdecrypthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-generate-key-encrypt-decrypt.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-generate-key-encrypt-decrypt.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-generate-key-encrypt-decrypt.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,42 @@
</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 encrypting&amp;decrypting using AES-GCM algorithm with a generated 256bit key&quot;);
+
+jsTestIsAsync = true;
+var plainText = &quot;Hello, World!&quot;;
+var aesGcmParams = {
+    name: &quot;aes-gcm&quot;,
+    iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;),
+}
+
+debug(&quot;Generating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;aes-gcm&quot;, length: 256}, true, [&quot;decrypt&quot;, &quot;encrypt&quot;]).then(function(result) {
+    key = result;
+    debug(&quot;Encrypting...&quot;);
+    return crypto.subtle.encrypt(aesGcmParams, key, asciiToUint8Array(plainText));
+}).then(function(result) {
+    cipherText = result;
+    shouldNotBeEqualToString(&quot;bytesToASCIIString(cipherText)&quot;, plainText);
+    debug(&quot;Decrypting...&quot;);
+    return crypto.subtle.decrypt(aesGcmParams, key, cipherText);
+}).then(function(result) {
+    decryptedText = result;
+
+    shouldBe(&quot;bytesToASCIIString(decryptedText)&quot;, &quot;plainText&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="trunkLayoutTestscryptosubtleaesgcmgeneratekeyexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-generate-key-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-generate-key-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-generate-key-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+Test generating an AES key with length 128 using AES-GCM 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-GCM'
+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="trunkLayoutTestscryptosubtleaesgcmgeneratekeyhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-generate-key.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-generate-key.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-generate-key.html        2017-03-02 21:55:55 UTC (rev 213301)
</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-GCM algorithm.&quot;);
+
+jsTestIsAsync = true;
+
+debug(&quot;Generating a key...&quot;);
+crypto.subtle.generateKey({name: &quot;aes-gcm&quot;, length: 128}, true, [&quot;encrypt&quot;, &quot;decrypt&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-GCM'&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="trunkLayoutTestscryptosubtleaesgcmimportjwkkeylength128expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-128-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-128-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-128-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+Test importing a JWK AES-GCM key with legnth 128
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Importing a key...
+PASS key.type is 'secret'
+PASS key.extractable is true
+PASS key.algorithm.name is 'AES-GCM'
+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="trunkLayoutTestscryptosubtleaesgcmimportjwkkeylength128html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-128.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-128.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-128.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,40 @@
</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 importing a JWK AES-GCM key with legnth 128&quot;);
+
+jsTestIsAsync = true;
+
+var jwkKey = {
+    kty: &quot;oct&quot;,
+    k: &quot;YWJjZGVmZ2gxMjM0NTY3OA&quot;,
+    alg: &quot;A128GCM&quot;,
+};
+var extractable = true;
+
+debug(&quot;Importing a key...&quot;);
+crypto.subtle.importKey(&quot;jwk&quot;, jwkKey, &quot;aes-gcm&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&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-GCM'&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="trunkLayoutTestscryptosubtleaesgcmimportjwkkeylength192expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-192-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-192-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-192-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+Test importing a JWK AES-GCM key with legnth 192
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Importing a key...
+PASS key.type is 'secret'
+PASS key.extractable is true
+PASS key.algorithm.name is 'AES-GCM'
+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="trunkLayoutTestscryptosubtleaesgcmimportjwkkeylength192html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-192.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-192.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-192.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,40 @@
</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 importing a JWK AES-GCM key with legnth 192&quot;);
+
+jsTestIsAsync = true;
+
+var jwkKey = {
+    kty: &quot;oct&quot;,
+    k: &quot;A72FD48989ED7E92A3B3A080F74FA80B&quot;,
+    alg: &quot;A192GCM&quot;,
+};
+var extractable = true;
+
+debug(&quot;Importing a key...&quot;);
+crypto.subtle.importKey(&quot;jwk&quot;, jwkKey, &quot;aes-gcm&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&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-GCM'&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="trunkLayoutTestscryptosubtleaesgcmimportjwkkeylength256expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-256-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-256-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-256-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+Test importing a JWK AES-GCM key with legnth 256
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Importing a key...
+PASS key.type is 'secret'
+PASS key.extractable is true
+PASS key.algorithm.name is 'AES-GCM'
+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="trunkLayoutTestscryptosubtleaesgcmimportjwkkeylength256html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-256.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-256.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-jwk-key-length-256.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,40 @@
</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 importing a JWK AES-GCM key with legnth 256&quot;);
+
+jsTestIsAsync = true;
+
+var jwkKey = {
+    kty: &quot;oct&quot;,
+    k: &quot;YWJjZGVmZ2gxMjM0NTY3OGFiY2RlZmdoMTIzNDU2Nzg&quot;,
+    alg: &quot;A256GCM&quot;,
+};
+var extractable = true;
+
+debug(&quot;Importing a key...&quot;);
+crypto.subtle.importKey(&quot;jwk&quot;, jwkKey, &quot;aes-gcm&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&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-GCM'&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="trunkLayoutTestscryptosubtleaesgcmimportkeydecryptadditionaldataexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-additional-data-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-additional-data-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-additional-data-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+Test decrypting using AES-GCM with an imported 128bit key and additional data
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS bytesToASCIIString(plainText) is expectedPlainText
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgcmimportkeydecryptadditionaldatataglength32expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-additional-data-tag-length-32-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-additional-data-tag-length-32-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-additional-data-tag-length-32-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+Test decrypting using AES-GCM with an imported 128bit key, additional data, and tagLength 32
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS bytesToASCIIString(plainText) is expectedPlainText
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgcmimportkeydecryptadditionaldatataglength32html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-additional-data-tag-length-32.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-additional-data-tag-length-32.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-additional-data-tag-length-32.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,41 @@
</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 decrypting using AES-GCM with an imported 128bit key, additional data, and tagLength 32&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = false;
+var cipherText = hexStringToUint8Array(&quot;f9ba1161a16c9fcc726a4531c110d8e4f9&quot;);
+var aesGcmParams = {
+    name: &quot;aes-gcm&quot;,
+    iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;),
+    additionalData: asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;),
+    tagLength: 32
+}
+var rawKey = asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;);
+var expectedPlainText = &quot;Hello, World!&quot;;
+
+crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-gcm&quot;, extractable, [&quot;decrypt&quot;]).then(function(key) {
+    return crypto.subtle.decrypt(aesGcmParams, key, cipherText);
+}).then(function(result) {
+    plainText = result;
+
+    shouldBe(&quot;bytesToASCIIString(plainText)&quot;, &quot;expectedPlainText&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="trunkLayoutTestscryptosubtleaesgcmimportkeydecryptadditionaldatahtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-additional-data.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-additional-data.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-additional-data.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,40 @@
</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 decrypting using AES-GCM with an imported 128bit key and additional data&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = false;
+var cipherText = hexStringToUint8Array(&quot;f9ba1161a16c9fcc726a4531c110d8e4f966a8cb8291e0c378f99b846d&quot;);
+var aesGcmParams = {
+    name: &quot;aes-gcm&quot;,
+    iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;),
+    additionalData: asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;),
+}
+var rawKey = asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;);
+var expectedPlainText = &quot;Hello, World!&quot;;
+
+crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-gcm&quot;, extractable, [&quot;decrypt&quot;]).then(function(key) {
+    return crypto.subtle.decrypt(aesGcmParams, key, cipherText);
+}).then(function(result) {
+    plainText = result;
+
+    shouldBe(&quot;bytesToASCIIString(plainText)&quot;, &quot;expectedPlainText&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="trunkLayoutTestscryptosubtleaesgcmimportkeydecryptexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+Test decrypting using AES-GCM with an imported 128bit key
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS bytesToASCIIString(plainText) is expectedPlainText
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgcmimportkeydecrypttagLengthsexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-tagLengths-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-tagLengths-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-tagLengths-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+Test decrypting using AES-GCM with an imported 128bit key and tagLengths
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS bytesToASCIIString(plainText) is expectedPlainText
+PASS bytesToASCIIString(plainText) is expectedPlainText
+PASS bytesToASCIIString(plainText) is expectedPlainText
+PASS bytesToASCIIString(plainText) is expectedPlainText
+PASS bytesToASCIIString(plainText) is expectedPlainText
+PASS bytesToASCIIString(plainText) is expectedPlainText
+PASS bytesToASCIIString(plainText) is expectedPlainText
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgcmimportkeydecrypttagLengthshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-tagLengths.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-tagLengths.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt-tagLengths.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,73 @@
</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 decrypting using AES-GCM with an imported 128bit key and tagLengths&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = false;
+var expectedPlainText = &quot;Hello, World!&quot;;
+var iv = asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;)
+var rawKey = asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;);
+var cipherText32 = hexStringToUint8Array(&quot;f9ba1161a16c9fcc726a4531c1b520925e&quot;);
+var cipherText64 = hexStringToUint8Array(&quot;f9ba1161a16c9fcc726a4531c1b520925e4ba35f8b&quot;);
+var cipherText96 = hexStringToUint8Array(&quot;f9ba1161a16c9fcc726a4531c1b520925e4ba35f8b534c62f3&quot;);
+var cipherText104 = hexStringToUint8Array(&quot;f9ba1161a16c9fcc726a4531c1b520925e4ba35f8b534c62f34e&quot;);
+var cipherText112 = hexStringToUint8Array(&quot;f9ba1161a16c9fcc726a4531c1b520925e4ba35f8b534c62f34e1f&quot;);
+var cipherText120 = hexStringToUint8Array(&quot;f9ba1161a16c9fcc726a4531c1b520925e4ba35f8b534c62f34e1f3b&quot;);
+var cipherText128 = hexStringToUint8Array(&quot;f9ba1161a16c9fcc726a4531c1b520925e4ba35f8b534c62f34e1f3ba1&quot;);
+
+crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-gcm&quot;, extractable, [&quot;decrypt&quot;]).then(function(result) {
+    key = result;
+
+    return crypto.subtle.decrypt({ name: &quot;aes-gcm&quot;, iv: iv, tagLength: 32 }, key, cipherText32);
+}).then(function(result) {
+    plainText = result;
+    shouldBe(&quot;bytesToASCIIString(plainText)&quot;, &quot;expectedPlainText&quot;);
+
+    return crypto.subtle.decrypt({ name: &quot;aes-gcm&quot;, iv: iv, tagLength: 64 }, key, cipherText64);
+}).then(function(result) {
+    plainText = result;
+    shouldBe(&quot;bytesToASCIIString(plainText)&quot;, &quot;expectedPlainText&quot;);
+
+    return crypto.subtle.decrypt({ name: &quot;aes-gcm&quot;, iv: iv, tagLength: 96 }, key, cipherText96);
+}).then(function(result) {
+    plainText = result;
+    shouldBe(&quot;bytesToASCIIString(plainText)&quot;, &quot;expectedPlainText&quot;);
+
+    return crypto.subtle.decrypt({ name: &quot;aes-gcm&quot;, iv: iv, tagLength: 104 }, key, cipherText104);
+}).then(function(result) {
+    plainText = result;
+    shouldBe(&quot;bytesToASCIIString(plainText)&quot;, &quot;expectedPlainText&quot;);
+
+    return crypto.subtle.decrypt({ name: &quot;aes-gcm&quot;, iv: iv, tagLength: 112 }, key, cipherText112);
+}).then(function(result) {
+    plainText = result;
+    shouldBe(&quot;bytesToASCIIString(plainText)&quot;, &quot;expectedPlainText&quot;);
+
+    return crypto.subtle.decrypt({ name: &quot;aes-gcm&quot;, iv: iv, tagLength: 120 }, key, cipherText120);
+}).then(function(result) {
+    plainText = result;
+    shouldBe(&quot;bytesToASCIIString(plainText)&quot;, &quot;expectedPlainText&quot;);
+
+    return crypto.subtle.decrypt({ name: &quot;aes-gcm&quot;, iv: iv, tagLength: 128 }, key, cipherText128);
+}).then(function(result) {
+    plainText = result;
+    shouldBe(&quot;bytesToASCIIString(plainText)&quot;, &quot;expectedPlainText&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="trunkLayoutTestscryptosubtleaesgcmimportkeydecrypthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-decrypt.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,39 @@
</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 decrypting using AES-GCM with an imported 128bit key&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = false;
+var cipherText = hexStringToUint8Array(&quot;f9ba1161a16c9fcc726a4531c1b520925e4ba35f8b534c62f34e1f3ba1&quot;);
+var aesGcmParams = {
+    name: &quot;aes-gcm&quot;,
+    iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;),
+}
+var rawKey = asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;);
+var expectedPlainText = &quot;Hello, World!&quot;;
+
+crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-gcm&quot;, extractable, [&quot;decrypt&quot;]).then(function(key) {
+    return crypto.subtle.decrypt(aesGcmParams, key, cipherText);
+}).then(function(result) {
+    plainText = result;
+
+    shouldBe(&quot;bytesToASCIIString(plainText)&quot;, &quot;expectedPlainText&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="trunkLayoutTestscryptosubtleaesgcmimportkeyencryptadditionaldataexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-additional-data-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-additional-data-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-additional-data-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+Test encrypting using AES-GCM with an imported 128bit key and additional data
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS bytesToHexString(cipherText) is expectedCipherText
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgcmimportkeyencryptadditionaldatataglength32expectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-additional-data-tag-length-32-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-additional-data-tag-length-32-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-additional-data-tag-length-32-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+Test encrypting using AES-GCM with an imported 128bit key, additional data and tag length 32
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS bytesToHexString(cipherText) is expectedCipherText
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgcmimportkeyencryptadditionaldatataglength32html"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-additional-data-tag-length-32.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-additional-data-tag-length-32.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-additional-data-tag-length-32.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,41 @@
</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 encrypting using AES-GCM with an imported 128bit key, additional data and tag length 32&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = false;
+var plainText = asciiToUint8Array(&quot;Hello, World!&quot;);
+var aesGcmParams = {
+    name: &quot;aes-gcm&quot;,
+    iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;),
+    additionalData: asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;),
+    tagLength: 32,
+}
+var rawKey = asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;);
+var expectedCipherText = &quot;f9ba1161a16c9fcc726a4531c110d8e4f9&quot;;
+
+crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-gcm&quot;, extractable, [&quot;encrypt&quot;]).then(function(key) {
+    return crypto.subtle.encrypt(aesGcmParams, key, plainText);
+}).then(function(result) {
+    cipherText = result;
+
+    shouldBe(&quot;bytesToHexString(cipherText)&quot;, &quot;expectedCipherText&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="trunkLayoutTestscryptosubtleaesgcmimportkeyencryptadditionaldatahtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-additional-data.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-additional-data.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-additional-data.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,40 @@
</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 encrypting using AES-GCM with an imported 128bit key and additional data&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = false;
+var plainText = asciiToUint8Array(&quot;Hello, World!&quot;);
+var aesGcmParams = {
+    name: &quot;aes-gcm&quot;,
+    iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;),
+    additionalData: asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;),
+}
+var rawKey = asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;);
+var expectedCipherText = &quot;f9ba1161a16c9fcc726a4531c110d8e4f966a8cb8291e0c378f99b846d&quot;;
+
+crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-gcm&quot;, extractable, [&quot;encrypt&quot;]).then(function(key) {
+    return crypto.subtle.encrypt(aesGcmParams, key, plainText);
+}).then(function(result) {
+    cipherText = result;
+
+    shouldBe(&quot;bytesToHexString(cipherText)&quot;, &quot;expectedCipherText&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="trunkLayoutTestscryptosubtleaesgcmimportkeyencryptexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+Test encrypting using AES-GCM with an imported 128bit key
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS bytesToHexString(cipherText) is expectedCipherText
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgcmimportkeyencrypttagLengthsexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-tagLengths-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-tagLengths-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-tagLengths-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+Test encrypting using AES-GCM with an imported 128bit key and tagLengths
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS bytesToHexString(cipherText) is expectedCipherText32
+PASS bytesToHexString(cipherText) is expectedCipherText64
+PASS bytesToHexString(cipherText) is expectedCipherText96
+PASS bytesToHexString(cipherText) is expectedCipherText104
+PASS bytesToHexString(cipherText) is expectedCipherText112
+PASS bytesToHexString(cipherText) is expectedCipherText120
+PASS bytesToHexString(cipherText) is expectedCipherText128
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgcmimportkeyencrypttagLengthshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-tagLengths.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-tagLengths.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt-tagLengths.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,73 @@
</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 encrypting using AES-GCM with an imported 128bit key and tagLengths&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = false;
+var plainText = asciiToUint8Array(&quot;Hello, World!&quot;);
+var iv = asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;)
+var rawKey = asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;);
+var expectedCipherText32 = &quot;f9ba1161a16c9fcc726a4531c1b520925e&quot;;
+var expectedCipherText64 = &quot;f9ba1161a16c9fcc726a4531c1b520925e4ba35f8b&quot;;
+var expectedCipherText96 = &quot;f9ba1161a16c9fcc726a4531c1b520925e4ba35f8b534c62f3&quot;;
+var expectedCipherText104 = &quot;f9ba1161a16c9fcc726a4531c1b520925e4ba35f8b534c62f34e&quot;;
+var expectedCipherText112 = &quot;f9ba1161a16c9fcc726a4531c1b520925e4ba35f8b534c62f34e1f&quot;;
+var expectedCipherText120 = &quot;f9ba1161a16c9fcc726a4531c1b520925e4ba35f8b534c62f34e1f3b&quot;;
+var expectedCipherText128 = &quot;f9ba1161a16c9fcc726a4531c1b520925e4ba35f8b534c62f34e1f3ba1&quot;;
+
+crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-gcm&quot;, extractable, [&quot;encrypt&quot;]).then(function(result) {
+    key = result;
+
+    return crypto.subtle.encrypt({ name: &quot;aes-gcm&quot;, iv: iv, tagLength: 32 }, key, plainText);
+}).then(function(result) {
+    cipherText = result;
+    shouldBe(&quot;bytesToHexString(cipherText)&quot;, &quot;expectedCipherText32&quot;);
+
+    return crypto.subtle.encrypt({ name: &quot;aes-gcm&quot;, iv: iv, tagLength: 64 }, key, plainText);
+}).then(function(result) {
+    cipherText = result;
+    shouldBe(&quot;bytesToHexString(cipherText)&quot;, &quot;expectedCipherText64&quot;);
+
+    return crypto.subtle.encrypt({ name: &quot;aes-gcm&quot;, iv: iv, tagLength: 96 }, key, plainText);
+}).then(function(result) {
+    cipherText = result;
+    shouldBe(&quot;bytesToHexString(cipherText)&quot;, &quot;expectedCipherText96&quot;);
+
+    return crypto.subtle.encrypt({ name: &quot;aes-gcm&quot;, iv: iv, tagLength: 104 }, key, plainText);
+}).then(function(result) {
+    cipherText = result;
+    shouldBe(&quot;bytesToHexString(cipherText)&quot;, &quot;expectedCipherText104&quot;);
+
+    return crypto.subtle.encrypt({ name: &quot;aes-gcm&quot;, iv: iv, tagLength: 112 }, key, plainText);
+}).then(function(result) {
+    cipherText = result;
+    shouldBe(&quot;bytesToHexString(cipherText)&quot;, &quot;expectedCipherText112&quot;);
+
+    return crypto.subtle.encrypt({ name: &quot;aes-gcm&quot;, iv: iv, tagLength: 120 }, key, plainText);
+}).then(function(result) {
+    cipherText = result;
+    shouldBe(&quot;bytesToHexString(cipherText)&quot;, &quot;expectedCipherText120&quot;);
+
+    return crypto.subtle.encrypt({ name: &quot;aes-gcm&quot;, iv: iv, tagLength: 128 }, key, plainText);
+}).then(function(result) {
+    cipherText = result;
+    shouldBe(&quot;bytesToHexString(cipherText)&quot;, &quot;expectedCipherText128&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="trunkLayoutTestscryptosubtleaesgcmimportkeyencrypthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-encrypt.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,39 @@
</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 encrypting using AES-GCM with an imported 128bit key&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = false;
+var plainText = asciiToUint8Array(&quot;Hello, World!&quot;);
+var aesGcmParams = {
+    name: &quot;aes-gcm&quot;,
+    iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;),
+}
+var rawKey = asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;);
+var expectedCipherText = &quot;f9ba1161a16c9fcc726a4531c1b520925e4ba35f8b534c62f34e1f3ba1&quot;;
+
+crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-gcm&quot;, extractable, [&quot;encrypt&quot;]).then(function(key) {
+    return crypto.subtle.encrypt(aesGcmParams, key, plainText);
+}).then(function(result) {
+    cipherText = result;
+
+    shouldBe(&quot;bytesToHexString(cipherText)&quot;, &quot;expectedCipherText&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="trunkLayoutTestscryptosubtleaesgcmimportkeyunwrapjwkkeyexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-unwrap-jwk-key-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-unwrap-jwk-key-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-unwrap-jwk-key-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+Test unwrapping a JWK key with AES-GCM using an imported key
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS unwrappedKey.kty is jwkKey.kty
+PASS unwrappedKey.alg is jwkKey.alg
+PASS unwrappedKey.key_ops is jwkKey.key_ops
+PASS unwrappedKey.ext is jwkKey.ext
+PASS unwrappedKey.k is jwkKey.k
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgcmimportkeyunwrapjwkkeyhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-unwrap-jwk-key.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-unwrap-jwk-key.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-unwrap-jwk-key.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,53 @@
</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 unwrapping a JWK key with AES-GCM using an imported key&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = true;
+var rawKey = asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;);
+var jwkKey = {
+    kty: &quot;oct&quot;,
+    alg: &quot;A128CBC&quot;,
+    use: &quot;enc&quot;,
+    key_ops: [&quot;encrypt&quot;],
+    ext: true,
+    k: &quot;am5Pdzk5b09aRkxJRVBNcg&quot;,
+};
+var aesGcmParams = {
+    name: &quot;aes-gcm&quot;,
+    iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;),
+}
+var wrappedKey = hexStringToUint8Array(&quot;cafd1c61a96285b95c291b6da304a8be03010b8f96e39fc5076d6c6d8a2a6a669fc76f425ad095b9c18eae86a3f9895998b912807840bcb8bfa9493bed2e27169bd7d61d834e38d0644543195a10c3f9d7e19703244b62e11408663ff142cf2f0c29a6c9df7555f2f77ba0&quot;);
+
+
+crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-gcm&quot;, extractable, [&quot;unwrapKey&quot;]).then(function(unwrappingKey) {
+    return crypto.subtle.unwrapKey(&quot;jwk&quot;, wrappedKey, unwrappingKey, aesGcmParams, {name: &quot;aes-cbc&quot;}, extractable, [&quot;encrypt&quot;]);
+}).then(function(cryptoKey) {
+    return crypto.subtle.exportKey(&quot;jwk&quot;, cryptoKey);
+}).then(function(result) {
+    unwrappedKey = result;
+
+    shouldBe(&quot;unwrappedKey.kty&quot;, &quot;jwkKey.kty&quot;);
+    shouldBe(&quot;unwrappedKey.alg&quot;, &quot;jwkKey.alg&quot;);
+    shouldBe(&quot;unwrappedKey.key_ops&quot;, &quot;jwkKey.key_ops&quot;);
+    shouldBe(&quot;unwrappedKey.ext&quot;, &quot;jwkKey.ext&quot;);
+    shouldBe(&quot;unwrappedKey.k&quot;, &quot;jwkKey.k&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="trunkLayoutTestscryptosubtleaesgcmimportkeyunwraprawkeyexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-unwrap-raw-key-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-unwrap-raw-key-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-unwrap-raw-key-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+Test unwrapping a raw key with AES-GCM using an imported key
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS bytesToASCIIString(unwrappedKey) is expectedRawKey
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgcmimportkeyunwraprawkeyhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-unwrap-raw-key.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-unwrap-raw-key.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-unwrap-raw-key.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,42 @@
</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 unwrapping a raw key with AES-GCM using an imported key&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = true;
+var expectedRawKey = &quot;jnOw99oOZFLIEPMr&quot;;
+var rawKey = asciiToUint8Array(expectedRawKey);
+var aesGcmParams = {
+    name: &quot;aes-gcm&quot;,
+    iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;),
+}
+var wrappedKey = hexStringToUint8Array(&quot;dbb1327af779d0d4475e651ca516a6eeba1ec1a78bd9dd236b5ed0e1469c2ce8&quot;);
+
+
+crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-gcm&quot;, extractable, [&quot;unwrapKey&quot;]).then(function(unwrappingKey) {
+    return crypto.subtle.unwrapKey(&quot;raw&quot;, wrappedKey, unwrappingKey, aesGcmParams, {name: &quot;aes-cbc&quot;}, extractable, [&quot;encrypt&quot;]);
+}).then(function(cryptoKey) {
+    return crypto.subtle.exportKey(&quot;raw&quot;, cryptoKey);
+}).then(function(result) {
+    unwrappedKey = result;
+
+    shouldBe(&quot;bytesToASCIIString(unwrappedKey)&quot;, &quot;expectedRawKey&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="trunkLayoutTestscryptosubtleaesgcmimportkeywrapjwkkeyexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-wrap-jwk-key-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-wrap-jwk-key-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-wrap-jwk-key-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+Test wrapping a JWK key with AES-GCM using an imported key
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS bytesToHexString(wrappedKey) is expectWrappedKey
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgcmimportkeywrapjwkkeyhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-wrap-jwk-key.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-wrap-jwk-key.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-wrap-jwk-key.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,42 @@
</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 wrapping a JWK key with AES-GCM using an imported key&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = true;
+var rawKey = asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;);
+var aesGcmParams = {
+    name: &quot;aes-gcm&quot;,
+    iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;),
+}
+var expectWrappedKey = &quot;cafd1c61a96285b95c291b6da304a8be03010b8f96e39fc5076d6c6d8a2a6a669fc76f425ad095b9c18eae86a3f9895998b912807840bcb8bfa9493bed2e27169bd7d61d834e38d0644543195a10c3f9d7e19703244b62e11408663ff142cf2f0c29a6c9df7555f2f77ba0&quot;;
+
+crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-gcm&quot;, extractable, [&quot;wrapKey&quot;]).then(function(result) {
+    wrappingKey = result;
+    return crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-cbc&quot;, extractable, [&quot;encrypt&quot;]);
+}).then(function(result) {
+    key = result;
+    return crypto.subtle.wrapKey(&quot;jwk&quot;, key, wrappingKey, aesGcmParams);
+}).then(function(result) {
+    wrappedKey = result;
+
+    shouldBe(&quot;bytesToHexString(wrappedKey)&quot;, &quot;expectWrappedKey&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="trunkLayoutTestscryptosubtleaesgcmimportkeywraprawkeyexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-wrap-raw-key-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-wrap-raw-key-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-wrap-raw-key-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+Test wrapping a raw key with AES-GCM using an imported key
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS bytesToHexString(wrappedKey) is expectWrappedKey
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgcmimportkeywraprawkeyhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-wrap-raw-key.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-wrap-raw-key.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-key-wrap-raw-key.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,42 @@
</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 wrapping a raw key with AES-GCM using an imported key&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = true;
+var rawKey = asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;);
+var aesGcmParams = {
+    name: &quot;aes-gcm&quot;,
+    iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;),
+}
+var expectWrappedKey = &quot;dbb1327af779d0d4475e651ca516a6eeba1ec1a78bd9dd236b5ed0e1469c2ce8&quot;;
+
+crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-gcm&quot;, extractable, [&quot;wrapKey&quot;]).then(function(result) {
+    wrappingKey = result;
+    return crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-cbc&quot;, extractable, [&quot;encrypt&quot;]);
+}).then(function(result) {
+    key = result;
+    return crypto.subtle.wrapKey(&quot;raw&quot;, key, wrappingKey, aesGcmParams);
+}).then(function(result) {
+    wrappedKey = result;
+
+    shouldBe(&quot;bytesToHexString(wrappedKey)&quot;, &quot;expectWrappedKey&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="trunkLayoutTestscryptosubtleaesgcmimportrawkeyexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-raw-key-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-raw-key-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-raw-key-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+Test importing a raw AES-GCM key with legnth 128
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Importing a key...
+PASS key.type is 'secret'
+PASS key.extractable is true
+PASS key.algorithm.name is 'AES-GCM'
+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="trunkLayoutTestscryptosubtleaesgcmimportrawkeyhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/subtle/aes-gcm-import-raw-key.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-gcm-import-raw-key.html                                (rev 0)
+++ trunk/LayoutTests/crypto/subtle/aes-gcm-import-raw-key.html        2017-03-02 21:55:55 UTC (rev 213301)
</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 importing a raw AES-GCM key with legnth 128&quot;);
+
+jsTestIsAsync = true;
+
+var rawKey = asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;);
+var extractable = true;
+
+debug(&quot;Importing a key...&quot;);
+crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-gcm&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&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-GCM'&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="trunkLayoutTestscryptosubtleaesgeneratekeymalformedparametersexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/crypto/subtle/aes-generate-key-malformed-parameters-expected.txt (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-generate-key-malformed-parameters-expected.txt        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/LayoutTests/crypto/subtle/aes-generate-key-malformed-parameters-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -25,6 +25,10 @@
</span><span class="cx"> PASS crypto.subtle.generateKey({name: &quot;aes-cfb-8&quot;, length: 128}, extractable, [&quot;verify&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
</span><span class="cx"> PASS crypto.subtle.generateKey({name: &quot;aes-cfb-8&quot;, length: 128}, extractable, [&quot;deriveKey&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
</span><span class="cx"> PASS crypto.subtle.generateKey({name: &quot;aes-cfb-8&quot;, length: 128}, extractable, [&quot;deriveBits&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
</span><ins>+PASS crypto.subtle.generateKey({name: &quot;aes-gcm&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-gcm&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-gcm&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-gcm&quot;, length: 128}, extractable, [&quot;deriveBits&quot;]) rejected promise  with SyntaxError (DOM Exception 12): A required parameter was missing or out-of-range.
</ins><span class="cx"> 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.
</span><span class="cx"> 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.
</span><span class="cx"> PASS successfullyParsed is true
</span></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesgeneratekeymalformedparametershtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/crypto/subtle/aes-generate-key-malformed-parameters.html (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-generate-key-malformed-parameters.html        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/LayoutTests/crypto/subtle/aes-generate-key-malformed-parameters.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -37,6 +37,10 @@
</span><span class="cx"> shouldReject('crypto.subtle.generateKey({name: &quot;aes-cfb-8&quot;, length: 128}, extractable, [&quot;verify&quot;])');
</span><span class="cx"> shouldReject('crypto.subtle.generateKey({name: &quot;aes-cfb-8&quot;, length: 128}, extractable, [&quot;deriveKey&quot;])');
</span><span class="cx"> shouldReject('crypto.subtle.generateKey({name: &quot;aes-cfb-8&quot;, length: 128}, extractable, [&quot;deriveBits&quot;])');
</span><ins>+shouldReject('crypto.subtle.generateKey({name: &quot;aes-gcm&quot;, length: 128}, extractable, [&quot;sign&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-gcm&quot;, length: 128}, extractable, [&quot;verify&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-gcm&quot;, length: 128}, extractable, [&quot;deriveKey&quot;])');
+shouldReject('crypto.subtle.generateKey({name: &quot;aes-gcm&quot;, length: 128}, extractable, [&quot;deriveBits&quot;])');
</ins><span class="cx"> // Wrong length
</span><span class="cx"> shouldReject('crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 111}, extractable, [&quot;encrypt&quot;])');
</span><span class="cx"> shouldReject('crypto.subtle.generateKey({name: &quot;aes-kw&quot;, length: 111}, extractable, [&quot;wrapKey&quot;])');
</span></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesimportkeymalformedparametersexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/crypto/subtle/aes-import-key-malformed-parameters-expected.txt (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-import-key-malformed-parameters-expected.txt        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/LayoutTests/crypto/subtle/aes-import-key-malformed-parameters-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -23,7 +23,17 @@
</span><span class="cx"> PASS crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k128, alg: &quot;A192CFB8&quot;}, &quot;aes-cfb-8&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;]) rejected promise  with DataError (DOM Exception 30): Data provided to an operation does not meet requirements.
</span><span class="cx"> PASS crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k192, alg: &quot;A256CFB8&quot;}, &quot;aes-cfb-8&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;]) rejected promise  with DataError (DOM Exception 30): Data provided to an operation does not meet requirements.
</span><span class="cx"> PASS crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k256, alg: &quot;A128CFB8&quot;}, &quot;aes-cfb-8&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;]) rejected promise  with DataError (DOM Exception 30): Data provided to an operation does not meet requirements.
</span><del>-PASS crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: &quot;A72F&quot;, alg: &quot;foo&quot;}, &quot;aes-cbc&quot;, extractable, [&quot;wrapKey&quot;, &quot;unwrapKey&quot;]) rejected promise  with DataError (DOM Exception 30): Data provided to an operation does not meet requirements.
</del><ins>+PASS crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: &quot;A72F&quot;, alg: &quot;foo&quot;}, &quot;aes-cfb-8&quot;, extractable, [&quot;wrapKey&quot;, &quot;unwrapKey&quot;]) rejected promise  with DataError (DOM Exception 30): Data provided to an operation does not meet requirements.
+PASS crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k128, alg: &quot;&quot;}, &quot;aes-cfb-8&quot;, extractable, [&quot;wrapKey&quot;, &quot;unwrapKey&quot;]) rejected promise  with DataError (DOM Exception 30): Data provided to an operation does not meet requirements.
+PASS crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k192, alg: &quot;&quot;}, &quot;aes-cfb-8&quot;, extractable, [&quot;wrapKey&quot;, &quot;unwrapKey&quot;]) rejected promise  with DataError (DOM Exception 30): Data provided to an operation does not meet requirements.
+PASS crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k256, alg: &quot;&quot;}, &quot;aes-cfb-8&quot;, extractable, [&quot;wrapKey&quot;, &quot;unwrapKey&quot;]) rejected promise  with DataError (DOM Exception 30): Data provided to an operation does not meet requirements.
+PASS crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k128, alg: &quot;A192GCM&quot;}, &quot;aes-gcm&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;]) rejected promise  with DataError (DOM Exception 30): Data provided to an operation does not meet requirements.
+PASS crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k192, alg: &quot;A256GCM&quot;}, &quot;aes-gcm&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;]) rejected promise  with DataError (DOM Exception 30): Data provided to an operation does not meet requirements.
+PASS crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k256, alg: &quot;A128GCM&quot;}, &quot;aes-gcm&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;]) rejected promise  with DataError (DOM Exception 30): Data provided to an operation does not meet requirements.
+PASS crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: &quot;A72F&quot;, alg: &quot;foo&quot;}, &quot;aes-gcm&quot;, extractable, [&quot;wrapKey&quot;, &quot;unwrapKey&quot;]) rejected promise  with DataError (DOM Exception 30): Data provided to an operation does not meet requirements.
+PASS crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k128, alg: &quot;&quot;}, &quot;aes-gcm&quot;, extractable, [&quot;wrapKey&quot;, &quot;unwrapKey&quot;]) rejected promise  with DataError (DOM Exception 30): Data provided to an operation does not meet requirements.
+PASS crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k192, alg: &quot;&quot;}, &quot;aes-gcm&quot;, extractable, [&quot;wrapKey&quot;, &quot;unwrapKey&quot;]) rejected promise  with DataError (DOM Exception 30): Data provided to an operation does not meet requirements.
+PASS crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k256, alg: &quot;&quot;}, &quot;aes-gcm&quot;, extractable, [&quot;wrapKey&quot;, &quot;unwrapKey&quot;]) rejected promise  with DataError (DOM Exception 30): Data provided to an operation does not meet requirements.
</ins><span class="cx"> PASS crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: &quot;!!!&quot;, alg: &quot;foo&quot;}, &quot;aes-cbc&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;]) rejected promise  with DataError (DOM Exception 30): Data provided to an operation does not meet requirements.
</span><span class="cx"> PASS crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: &quot;&quot;, alg: &quot;foo&quot;}, &quot;aes-cbc&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;]) rejected promise  with DataError (DOM Exception 30): Data provided to an operation does not meet requirements.
</span><span class="cx"> PASS crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k128, alg: &quot;A128CBC&quot;, use: &quot;sig&quot;}, &quot;aes-cbc&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;]) rejected promise  with DataError (DOM Exception 30): Data provided to an operation does not meet requirements.
</span></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaesimportkeymalformedparametershtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/crypto/subtle/aes-import-key-malformed-parameters.html (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-import-key-malformed-parameters.html        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/LayoutTests/crypto/subtle/aes-import-key-malformed-parameters.html        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -40,7 +40,17 @@
</span><span class="cx"> shouldReject('crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k128, alg: &quot;A192CFB8&quot;}, &quot;aes-cfb-8&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;])');
</span><span class="cx"> shouldReject('crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k192, alg: &quot;A256CFB8&quot;}, &quot;aes-cfb-8&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;])');
</span><span class="cx"> shouldReject('crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k256, alg: &quot;A128CFB8&quot;}, &quot;aes-cfb-8&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;])');
</span><del>-shouldReject('crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: &quot;A72F&quot;, alg: &quot;foo&quot;}, &quot;aes-cbc&quot;, extractable, [&quot;wrapKey&quot;, &quot;unwrapKey&quot;])');
</del><ins>+shouldReject('crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: &quot;A72F&quot;, alg: &quot;foo&quot;}, &quot;aes-cfb-8&quot;, extractable, [&quot;wrapKey&quot;, &quot;unwrapKey&quot;])');
+shouldReject('crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k128, alg: &quot;&quot;}, &quot;aes-cfb-8&quot;, extractable, [&quot;wrapKey&quot;, &quot;unwrapKey&quot;])');
+shouldReject('crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k192, alg: &quot;&quot;}, &quot;aes-cfb-8&quot;, extractable, [&quot;wrapKey&quot;, &quot;unwrapKey&quot;])');
+shouldReject('crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k256, alg: &quot;&quot;}, &quot;aes-cfb-8&quot;, extractable, [&quot;wrapKey&quot;, &quot;unwrapKey&quot;])');
+shouldReject('crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k128, alg: &quot;A192GCM&quot;}, &quot;aes-gcm&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;])');
+shouldReject('crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k192, alg: &quot;A256GCM&quot;}, &quot;aes-gcm&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;])');
+shouldReject('crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k256, alg: &quot;A128GCM&quot;}, &quot;aes-gcm&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;])');
+shouldReject('crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: &quot;A72F&quot;, alg: &quot;foo&quot;}, &quot;aes-gcm&quot;, extractable, [&quot;wrapKey&quot;, &quot;unwrapKey&quot;])');
+shouldReject('crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k128, alg: &quot;&quot;}, &quot;aes-gcm&quot;, extractable, [&quot;wrapKey&quot;, &quot;unwrapKey&quot;])');
+shouldReject('crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k192, alg: &quot;&quot;}, &quot;aes-gcm&quot;, extractable, [&quot;wrapKey&quot;, &quot;unwrapKey&quot;])');
+shouldReject('crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: k256, alg: &quot;&quot;}, &quot;aes-gcm&quot;, extractable, [&quot;wrapKey&quot;, &quot;unwrapKey&quot;])');
</ins><span class="cx"> // Jwk: wrong k format
</span><span class="cx"> shouldReject('crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: &quot;!!!&quot;, alg: &quot;foo&quot;}, &quot;aes-cbc&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;])');
</span><span class="cx"> shouldReject('crypto.subtle.importKey(&quot;jwk&quot;, {kty: &quot;oct&quot;, k: &quot;&quot;, alg: &quot;foo&quot;}, &quot;aes-cbc&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;, &quot;wrapKey&quot;, &quot;unwrapKey&quot;])');
</span></span></pre></div>
<a id="trunkLayoutTestscryptoworkerssubtleaesgcmimportkeydecryptexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-decrypt-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-decrypt-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-decrypt-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+[Worker] Test decrypting using AES-GCM with an imported 128bit key in workers
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Starting worker: resources/aes-gcm-import-key-decrypt.js
+PASS [Worker] bytesToASCIIString(plainText) is expectedPlainText
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptoworkerssubtleaesgcmimportkeydecrypthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-decrypt.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-decrypt.html                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-decrypt.html        2017-03-02 21:55:55 UTC (rev 213301)
</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-gcm-import-key-decrypt.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="trunkLayoutTestscryptoworkerssubtleaesgcmimportkeyencryptexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-encrypt-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-encrypt-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-encrypt-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+[Worker] Test encrypting using AES-GCM with an imported 128bit key in workers
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Starting worker: resources/aes-gcm-import-key-encrypt.js
+PASS [Worker] bytesToHexString(cipherText) is expectedCipherText
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptoworkerssubtleaesgcmimportkeyencrypthtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-encrypt.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-encrypt.html                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-encrypt.html        2017-03-02 21:55:55 UTC (rev 213301)
</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-gcm-import-key-encrypt.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="trunkLayoutTestscryptoworkerssubtleaesgcmimportkeyunwrapkeyexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-unwrap-key-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-unwrap-key-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-unwrap-key-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+[Worker] Test unwrapping a raw key with AES-GCM using an imported key
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Starting worker: resources/aes-gcm-import-key-unwrap-key.js
+PASS [Worker] bytesToASCIIString(unwrappedKey) is expectedRawKey
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptoworkerssubtleaesgcmimportkeyunwrapkeyhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-unwrap-key.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-unwrap-key.html                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-unwrap-key.html        2017-03-02 21:55:55 UTC (rev 213301)
</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-gcm-import-key-unwrap-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="trunkLayoutTestscryptoworkerssubtleaesgcmimportkeywrapkeyexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-wrap-key-expected.txt (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-wrap-key-expected.txt                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-wrap-key-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+[Worker] Test wrapping a raw key with AES-GCM using an imported key in workers
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+Starting worker: resources/aes-gcm-import-key-wrap-key.js
+PASS [Worker] bytesToHexString(wrappedKey) is expectWrappedKey
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestscryptoworkerssubtleaesgcmimportkeywrapkeyhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-wrap-key.html (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-wrap-key.html                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/aes-gcm-import-key-wrap-key.html        2017-03-02 21:55:55 UTC (rev 213301)
</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-gcm-import-key-wrap-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="trunkLayoutTestscryptoworkerssubtleresourcesaesgcmimportkeydecryptjs"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/resources/aes-gcm-import-key-decrypt.js (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/resources/aes-gcm-import-key-decrypt.js                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/resources/aes-gcm-import-key-decrypt.js        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+importScripts('../../../../resources/js-test-pre.js');
+importScripts('../../../resources/common.js');
+
+description(&quot;Test decrypting using AES-GCM with an imported 128bit key in workers&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = false;
+var cipherText = hexStringToUint8Array(&quot;f9ba1161a16c9fcc726a4531c1b520925e4ba35f8b534c62f34e1f3ba1&quot;);
+var aesGcmParams = {
+    name: &quot;aes-gcm&quot;,
+    iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;),
+}
+var rawKey = asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;);
+var expectedPlainText = &quot;Hello, World!&quot;;
+
+crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-gcm&quot;, extractable, [&quot;decrypt&quot;]).then(function(key) {
+    return crypto.subtle.decrypt(aesGcmParams, key, cipherText);
+}).then(function(result) {
+    plainText = result;
+
+    shouldBe(&quot;bytesToASCIIString(plainText)&quot;, &quot;expectedPlainText&quot;);
+
+    finishJSTest();
+});
</ins></span></pre></div>
<a id="trunkLayoutTestscryptoworkerssubtleresourcesaesgcmimportkeyencryptjs"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/resources/aes-gcm-import-key-encrypt.js (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/resources/aes-gcm-import-key-encrypt.js                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/resources/aes-gcm-import-key-encrypt.js        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+importScripts('../../../../resources/js-test-pre.js');
+importScripts('../../../resources/common.js');
+
+description(&quot;Test encrypting using AES-GCM with an imported 128bit key in workers&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = false;
+var plainText = asciiToUint8Array(&quot;Hello, World!&quot;);
+var aesGcmParams = {
+    name: &quot;aes-gcm&quot;,
+    iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;),
+}
+var rawKey = asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;);
+var expectedCipherText = &quot;f9ba1161a16c9fcc726a4531c1b520925e4ba35f8b534c62f34e1f3ba1&quot;;
+
+crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-gcm&quot;, extractable, [&quot;encrypt&quot;]).then(function(key) {
+    return crypto.subtle.encrypt(aesGcmParams, key, plainText);
+}).then(function(result) {
+    cipherText = result;
+
+    shouldBe(&quot;bytesToHexString(cipherText)&quot;, &quot;expectedCipherText&quot;);
+
+    finishJSTest();
+});
</ins></span></pre></div>
<a id="trunkLayoutTestscryptoworkerssubtleresourcesaesgcmimportkeyunwrapkeyjs"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/resources/aes-gcm-import-key-unwrap-key.js (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/resources/aes-gcm-import-key-unwrap-key.js                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/resources/aes-gcm-import-key-unwrap-key.js        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,28 @@
</span><ins>+importScripts('../../../../resources/js-test-pre.js');
+importScripts('../../../resources/common.js');
+
+description(&quot;Test unwrapping a raw key with AES-GCM using an imported key&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = true;
+var expectedRawKey = &quot;jnOw99oOZFLIEPMr&quot;;
+var rawKey = asciiToUint8Array(expectedRawKey);
+var aesGcmParams = {
+    name: &quot;aes-gcm&quot;,
+    iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;),
+}
+var wrappedKey = hexStringToUint8Array(&quot;dbb1327af779d0d4475e651ca516a6eeba1ec1a78bd9dd236b5ed0e1469c2ce8&quot;);
+
+
+crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-gcm&quot;, extractable, [&quot;unwrapKey&quot;]).then(function(unwrappingKey) {
+    return crypto.subtle.unwrapKey(&quot;raw&quot;, wrappedKey, unwrappingKey, aesGcmParams, {name: &quot;aes-cbc&quot;}, extractable, [&quot;encrypt&quot;]);
+}).then(function(cryptoKey) {
+    return crypto.subtle.exportKey(&quot;raw&quot;, cryptoKey);
+}).then(function(result) {
+    unwrappedKey = result;
+
+    shouldBe(&quot;bytesToASCIIString(unwrappedKey)&quot;, &quot;expectedRawKey&quot;);
+
+    finishJSTest();
+});
</ins></span></pre></div>
<a id="trunkLayoutTestscryptoworkerssubtleresourcesaesgcmimportkeywrapkeyjs"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/crypto/workers/subtle/resources/aes-gcm-import-key-wrap-key.js (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/workers/subtle/resources/aes-gcm-import-key-wrap-key.js                                (rev 0)
+++ trunk/LayoutTests/crypto/workers/subtle/resources/aes-gcm-import-key-wrap-key.js        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,28 @@
</span><ins>+importScripts('../../../../resources/js-test-pre.js');
+importScripts('../../../resources/common.js');
+
+description(&quot;Test wrapping a raw key with AES-GCM using an imported key in workers&quot;);
+
+jsTestIsAsync = true;
+
+var extractable = true;
+var rawKey = asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;);
+var aesGcmParams = {
+    name: &quot;aes-gcm&quot;,
+    iv: asciiToUint8Array(&quot;jnOw99oOZFLIEPMr&quot;),
+}
+var expectWrappedKey = &quot;dbb1327af779d0d4475e651ca516a6eeba1ec1a78bd9dd236b5ed0e1469c2ce8&quot;;
+
+crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-gcm&quot;, extractable, [&quot;wrapKey&quot;]).then(function(result) {
+    wrappingKey = result;
+    return crypto.subtle.importKey(&quot;raw&quot;, rawKey, &quot;aes-cbc&quot;, extractable, [&quot;encrypt&quot;]);
+}).then(function(result) {
+    key = result;
+    return crypto.subtle.wrapKey(&quot;raw&quot;, key, wrappingKey, aesGcmParams);
+}).then(function(result) {
+    wrappedKey = result;
+
+    shouldBe(&quot;bytesToHexString(wrappedKey)&quot;, &quot;expectWrappedKey&quot;);
+
+    finishJSTest();
+});
</ins></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/LayoutTests/imported/w3c/ChangeLog        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -1,3 +1,20 @@
</span><ins>+2017-02-22  Jiewen Tan  &lt;jiewen_tan@apple.com&gt;
+
+        WebCrypto API support for AES-GCM
+        https://bugs.webkit.org/show_bug.cgi?id=157175
+        &lt;rdar://problem/27311691&gt;
+
+        Reviewed by Brent Fulgham.
+
+        * web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker-expected.txt:
+        * web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_gcm-expected.txt:
+        * web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.worker-expected.txt:
+        * web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.worker-expected.txt:
+        * web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt:
+        * web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt:
+        * web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.worker-expected.txt:
+        * web-platform-tests/WebCryptoAPI/import_export/test_symmetric_importKey-expected.txt:
+
</ins><span class="cx"> 2017-02-24  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Resource Timing] Media elements initiated loads should set the initiatorType to their element name (video/audio)
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsWebCryptoAPIencrypt_decryptaes_gcmworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker-expected.txt (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker-expected.txt        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -1,332 +1,332 @@
</span><span class="cx"> 
</span><del>-FAIL importKey step: AES-GCM 128-bit key, 32-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 32-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 64-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 64-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 96-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 96-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 104-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 104-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 112-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 112-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 120-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 120-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 128-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 128-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 32-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 32-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 64-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 64-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 96-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 96-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 104-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 104-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 112-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 112-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 120-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 120-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 128-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 128-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 32-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 32-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 64-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 64-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 96-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 96-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 104-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 104-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 112-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 112-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 120-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 120-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 128-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 128-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 32-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 32-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 64-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 64-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 96-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 96-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 104-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 104-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 112-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 112-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 120-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 120-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 128-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 128-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 32-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 32-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 64-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 64-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 96-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 96-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 104-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 104-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 112-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 112-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 120-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 120-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 128-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 128-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 32-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 32-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 64-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 64-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 96-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 96-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 104-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 104-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 112-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 112-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 120-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 120-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 128-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 128-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 32-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 32-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 64-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 64-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 96-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 96-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 104-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 104-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 112-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 112-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 120-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 120-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 128-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 128-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 32-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 32-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 64-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 64-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 96-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 96-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 104-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 104-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 112-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 112-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 120-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 120-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 128-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 128-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 32-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 32-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 64-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 64-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 96-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 96-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 104-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 104-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 112-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 112-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 120-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 120-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 128-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 128-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 32-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 32-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 64-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 64-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 96-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 96-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 104-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 104-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 112-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 112-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 120-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 120-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 128-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 128-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 32-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 32-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 64-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 64-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 96-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 96-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 104-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 104-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 112-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 112-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 120-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 120-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 128-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 128-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 32-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 32-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 64-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 64-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 96-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 96-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 104-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 104-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 112-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 112-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 120-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 120-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 128-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 128-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 32-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 32-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 64-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 64-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 96-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 96-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 104-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 104-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 112-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 112-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 120-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 120-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 128-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 128-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 32-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 32-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 64-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 64-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 96-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 96-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 104-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 104-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 112-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 112-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 120-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 120-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 128-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 128-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 32-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 32-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 64-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 64-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 96-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 96-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 104-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 104-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 112-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 112-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 120-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 120-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 128-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 128-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 32-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 32-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 64-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 64-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 96-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 96-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 104-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 104-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 112-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 112-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 120-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 120-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 128-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 128-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 32-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 32-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 64-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 64-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 96-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 96-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 104-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 104-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 112-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 112-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 120-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 120-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 128-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 128-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 32-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 32-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 64-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 64-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 96-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 96-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 104-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 104-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 112-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 112-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 120-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 120-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 128-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 128-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 32-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 32-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 64-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 64-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 96-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 96-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 104-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 104-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 112-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 112-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 120-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 120-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 128-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 128-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 32-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 32-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 64-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 64-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 96-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 96-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 104-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 104-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 112-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 112-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 120-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 120-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 128-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 128-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 32-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 32-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 64-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 64-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 96-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 96-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 104-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 104-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 112-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 112-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 120-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 120-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 128-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 128-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, illegal tag length 24-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 24-bits Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, illegal tag length 48-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 48-bits Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, illegal tag length 72-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 72-bits Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, illegal tag length 95-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 95-bits Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, illegal tag length 129-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 129-bits Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, illegal tag length 256-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 256-bits Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, illegal tag length 24-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 24-bits Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, illegal tag length 48-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 48-bits Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, illegal tag length 72-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 72-bits Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, illegal tag length 95-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 95-bits Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, illegal tag length 129-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 129-bits Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, illegal tag length 256-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 256-bits Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, illegal tag length 24-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 24-bits Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, illegal tag length 48-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 48-bits Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, illegal tag length 72-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 72-bits Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, illegal tag length 95-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 95-bits Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, illegal tag length 129-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 129-bits Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, illegal tag length 256-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 256-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 128-bit key, illegal tag length 24-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 24-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 128-bit key, illegal tag length 48-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 48-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 128-bit key, illegal tag length 72-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 72-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 128-bit key, illegal tag length 95-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 95-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 128-bit key, illegal tag length 129-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 129-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 128-bit key, illegal tag length 256-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 256-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 192-bit key, illegal tag length 24-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 24-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 192-bit key, illegal tag length 48-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 48-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 192-bit key, illegal tag length 72-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 72-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 192-bit key, illegal tag length 95-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 95-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 192-bit key, illegal tag length 129-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 129-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 192-bit key, illegal tag length 256-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 256-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 256-bit key, illegal tag length 24-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 24-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 256-bit key, illegal tag length 48-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 48-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 256-bit key, illegal tag length 72-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 72-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 256-bit key, illegal tag length 95-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 95-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 256-bit key, illegal tag length 129-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 129-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 256-bit key, illegal tag length 256-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 256-bits Reached unreachable code
</del><ins>+PASS AES-GCM 128-bit key, 32-bit tag 
+PASS AES-GCM 128-bit key, no additional data, 32-bit tag 
+PASS AES-GCM 128-bit key, 64-bit tag 
+PASS AES-GCM 128-bit key, no additional data, 64-bit tag 
+PASS AES-GCM 128-bit key, 96-bit tag 
+PASS AES-GCM 128-bit key, no additional data, 96-bit tag 
+PASS AES-GCM 128-bit key, 104-bit tag 
+PASS AES-GCM 128-bit key, no additional data, 104-bit tag 
+PASS AES-GCM 128-bit key, 112-bit tag 
+PASS AES-GCM 128-bit key, no additional data, 112-bit tag 
+PASS AES-GCM 128-bit key, 120-bit tag 
+PASS AES-GCM 128-bit key, no additional data, 120-bit tag 
+PASS AES-GCM 128-bit key, 128-bit tag 
+PASS AES-GCM 128-bit key, no additional data, 128-bit tag 
+PASS AES-GCM 192-bit key, 32-bit tag 
+PASS AES-GCM 192-bit key, no additional data, 32-bit tag 
+PASS AES-GCM 192-bit key, 64-bit tag 
+PASS AES-GCM 192-bit key, no additional data, 64-bit tag 
+PASS AES-GCM 192-bit key, 96-bit tag 
+PASS AES-GCM 192-bit key, no additional data, 96-bit tag 
+PASS AES-GCM 192-bit key, 104-bit tag 
+PASS AES-GCM 192-bit key, no additional data, 104-bit tag 
+PASS AES-GCM 192-bit key, 112-bit tag 
+PASS AES-GCM 192-bit key, no additional data, 112-bit tag 
+PASS AES-GCM 192-bit key, 120-bit tag 
+PASS AES-GCM 192-bit key, no additional data, 120-bit tag 
+PASS AES-GCM 192-bit key, 128-bit tag 
+PASS AES-GCM 192-bit key, no additional data, 128-bit tag 
+PASS AES-GCM 256-bit key, 32-bit tag 
+PASS AES-GCM 256-bit key, no additional data, 32-bit tag 
+PASS AES-GCM 256-bit key, 64-bit tag 
+PASS AES-GCM 256-bit key, no additional data, 64-bit tag 
+PASS AES-GCM 256-bit key, 96-bit tag 
+PASS AES-GCM 256-bit key, no additional data, 96-bit tag 
+PASS AES-GCM 256-bit key, 104-bit tag 
+PASS AES-GCM 256-bit key, no additional data, 104-bit tag 
+PASS AES-GCM 256-bit key, 112-bit tag 
+PASS AES-GCM 256-bit key, no additional data, 112-bit tag 
+PASS AES-GCM 256-bit key, 120-bit tag 
+PASS AES-GCM 256-bit key, no additional data, 120-bit tag 
+PASS AES-GCM 256-bit key, 128-bit tag 
+PASS AES-GCM 256-bit key, no additional data, 128-bit tag 
+PASS AES-GCM 128-bit key, 32-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, no additional data, 32-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, 64-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, no additional data, 64-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, 96-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, no additional data, 96-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, 104-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, no additional data, 104-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, 112-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, no additional data, 112-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, 120-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, no additional data, 120-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, 128-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, no additional data, 128-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, 32-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, no additional data, 32-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, 64-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, no additional data, 64-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, 96-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, no additional data, 96-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, 104-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, no additional data, 104-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, 112-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, no additional data, 112-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, 120-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, no additional data, 120-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, 128-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, no additional data, 128-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, 32-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, no additional data, 32-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, 64-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, no additional data, 64-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, 96-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, no additional data, 96-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, 104-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, no additional data, 104-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, 112-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, no additional data, 112-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, 120-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, no additional data, 120-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, 128-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, no additional data, 128-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, 32-bit tag decryption 
+PASS AES-GCM 128-bit key, no additional data, 32-bit tag decryption 
+PASS AES-GCM 128-bit key, 64-bit tag decryption 
+PASS AES-GCM 128-bit key, no additional data, 64-bit tag decryption 
+PASS AES-GCM 128-bit key, 96-bit tag decryption 
+PASS AES-GCM 128-bit key, no additional data, 96-bit tag decryption 
+PASS AES-GCM 128-bit key, 104-bit tag decryption 
+PASS AES-GCM 128-bit key, no additional data, 104-bit tag decryption 
+PASS AES-GCM 128-bit key, 112-bit tag decryption 
+PASS AES-GCM 128-bit key, no additional data, 112-bit tag decryption 
+PASS AES-GCM 128-bit key, 120-bit tag decryption 
+PASS AES-GCM 128-bit key, no additional data, 120-bit tag decryption 
+PASS AES-GCM 128-bit key, 128-bit tag decryption 
+PASS AES-GCM 128-bit key, no additional data, 128-bit tag decryption 
+PASS AES-GCM 192-bit key, 32-bit tag decryption 
+PASS AES-GCM 192-bit key, no additional data, 32-bit tag decryption 
+PASS AES-GCM 192-bit key, 64-bit tag decryption 
+PASS AES-GCM 192-bit key, no additional data, 64-bit tag decryption 
+PASS AES-GCM 192-bit key, 96-bit tag decryption 
+PASS AES-GCM 192-bit key, no additional data, 96-bit tag decryption 
+PASS AES-GCM 192-bit key, 104-bit tag decryption 
+PASS AES-GCM 192-bit key, no additional data, 104-bit tag decryption 
+PASS AES-GCM 192-bit key, 112-bit tag decryption 
+PASS AES-GCM 192-bit key, no additional data, 112-bit tag decryption 
+PASS AES-GCM 192-bit key, 120-bit tag decryption 
+PASS AES-GCM 192-bit key, no additional data, 120-bit tag decryption 
+PASS AES-GCM 192-bit key, 128-bit tag decryption 
+PASS AES-GCM 192-bit key, no additional data, 128-bit tag decryption 
+PASS AES-GCM 256-bit key, 32-bit tag decryption 
+PASS AES-GCM 256-bit key, no additional data, 32-bit tag decryption 
+PASS AES-GCM 256-bit key, 64-bit tag decryption 
+PASS AES-GCM 256-bit key, no additional data, 64-bit tag decryption 
+PASS AES-GCM 256-bit key, 96-bit tag decryption 
+PASS AES-GCM 256-bit key, no additional data, 96-bit tag decryption 
+PASS AES-GCM 256-bit key, 104-bit tag decryption 
+PASS AES-GCM 256-bit key, no additional data, 104-bit tag decryption 
+PASS AES-GCM 256-bit key, 112-bit tag decryption 
+PASS AES-GCM 256-bit key, no additional data, 112-bit tag decryption 
+PASS AES-GCM 256-bit key, 120-bit tag decryption 
+PASS AES-GCM 256-bit key, no additional data, 120-bit tag decryption 
+PASS AES-GCM 256-bit key, 128-bit tag decryption 
+PASS AES-GCM 256-bit key, no additional data, 128-bit tag decryption 
+PASS AES-GCM 128-bit key, 32-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, no additional data, 32-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, 64-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, no additional data, 64-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, 96-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, no additional data, 96-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, 104-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, no additional data, 104-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, 112-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, no additional data, 112-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, 120-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, no additional data, 120-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, 128-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, no additional data, 128-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, 32-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, no additional data, 32-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, 64-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, no additional data, 64-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, 96-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, no additional data, 96-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, 104-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, no additional data, 104-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, 112-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, no additional data, 112-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, 120-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, no additional data, 120-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, 128-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, no additional data, 128-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, 32-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, no additional data, 32-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, 64-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, no additional data, 64-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, 96-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, no additional data, 96-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, 104-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, no additional data, 104-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, 112-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, no additional data, 112-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, 120-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, no additional data, 120-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, 128-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, no additional data, 128-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, 32-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 32-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, 64-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 64-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, 96-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 96-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, 104-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 104-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, 112-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 112-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, 120-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 120-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, 128-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 128-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, 32-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 32-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, 64-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 64-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, 96-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 96-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, 104-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 104-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, 112-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 112-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, 120-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 120-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, 128-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 128-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, 32-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 32-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, 64-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 64-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, 96-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 96-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, 104-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 104-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, 112-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 112-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, 120-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 120-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, 128-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 128-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, 32-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, no additional data, 32-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, 64-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, no additional data, 64-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, 96-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, no additional data, 96-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, 104-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, no additional data, 104-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, 112-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, no additional data, 112-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, 120-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, no additional data, 120-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, 128-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, no additional data, 128-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, 32-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, no additional data, 32-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, 64-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, no additional data, 64-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, 96-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, no additional data, 96-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, 104-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, no additional data, 104-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, 112-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, no additional data, 112-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, 120-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, no additional data, 120-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, 128-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, no additional data, 128-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, 32-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, no additional data, 32-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, 64-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, no additional data, 64-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, 96-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, no additional data, 96-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, 104-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, no additional data, 104-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, 112-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, no additional data, 112-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, 120-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, no additional data, 120-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, 128-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, no additional data, 128-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, 32-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 32-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, 64-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 64-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, 96-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 96-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, 104-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 104-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, 112-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 112-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, 120-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 120-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, 128-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 128-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, 32-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 32-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, 64-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 64-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, 96-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 96-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, 104-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 104-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, 112-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 112-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, 120-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 120-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, 128-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 128-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, 32-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 32-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, 64-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 64-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, 96-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 96-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, 104-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 104-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, 112-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 112-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, 120-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 120-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, 128-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 128-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, illegal tag length 24-bits 
+PASS AES-GCM 128-bit key, illegal tag length 48-bits 
+PASS AES-GCM 128-bit key, illegal tag length 72-bits 
+PASS AES-GCM 128-bit key, illegal tag length 95-bits 
+PASS AES-GCM 128-bit key, illegal tag length 129-bits 
+PASS AES-GCM 128-bit key, illegal tag length 256-bits 
+PASS AES-GCM 192-bit key, illegal tag length 24-bits 
+PASS AES-GCM 192-bit key, illegal tag length 48-bits 
+PASS AES-GCM 192-bit key, illegal tag length 72-bits 
+PASS AES-GCM 192-bit key, illegal tag length 95-bits 
+PASS AES-GCM 192-bit key, illegal tag length 129-bits 
+PASS AES-GCM 192-bit key, illegal tag length 256-bits 
+PASS AES-GCM 256-bit key, illegal tag length 24-bits 
+PASS AES-GCM 256-bit key, illegal tag length 48-bits 
+PASS AES-GCM 256-bit key, illegal tag length 72-bits 
+PASS AES-GCM 256-bit key, illegal tag length 95-bits 
+PASS AES-GCM 256-bit key, illegal tag length 129-bits 
+PASS AES-GCM 256-bit key, illegal tag length 256-bits 
+PASS AES-GCM 128-bit key, illegal tag length 24-bits decryption 
+PASS AES-GCM 128-bit key, illegal tag length 48-bits decryption 
+PASS AES-GCM 128-bit key, illegal tag length 72-bits decryption 
+PASS AES-GCM 128-bit key, illegal tag length 95-bits decryption 
+PASS AES-GCM 128-bit key, illegal tag length 129-bits decryption 
+PASS AES-GCM 128-bit key, illegal tag length 256-bits decryption 
+PASS AES-GCM 192-bit key, illegal tag length 24-bits decryption 
+PASS AES-GCM 192-bit key, illegal tag length 48-bits decryption 
+PASS AES-GCM 192-bit key, illegal tag length 72-bits decryption 
+PASS AES-GCM 192-bit key, illegal tag length 95-bits decryption 
+PASS AES-GCM 192-bit key, illegal tag length 129-bits decryption 
+PASS AES-GCM 192-bit key, illegal tag length 256-bits decryption 
+PASS AES-GCM 256-bit key, illegal tag length 24-bits decryption 
+PASS AES-GCM 256-bit key, illegal tag length 48-bits decryption 
+PASS AES-GCM 256-bit key, illegal tag length 72-bits decryption 
+PASS AES-GCM 256-bit key, illegal tag length 95-bits decryption 
+PASS AES-GCM 256-bit key, illegal tag length 129-bits decryption 
+PASS AES-GCM 256-bit key, illegal tag length 256-bits decryption 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsWebCryptoAPIencrypt_decrypttest_aes_gcmexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_gcm-expected.txt (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_gcm-expected.txt        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_gcm-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -1,334 +1,334 @@
</span><span class="cx"> encrypt Tests for AES-GCM
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-FAIL importKey step: AES-GCM 128-bit key, 32-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 32-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 64-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 64-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 96-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 96-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 104-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 104-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 112-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 112-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 120-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 120-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 128-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 128-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 32-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 32-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 64-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 64-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 96-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 96-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 104-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 104-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 112-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 112-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 120-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 120-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 128-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 128-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 32-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 32-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 64-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 64-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 96-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 96-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 104-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 104-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 112-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 112-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 120-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 120-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 128-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 128-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 32-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 32-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 64-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 64-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 96-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 96-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 104-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 104-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 112-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 112-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 120-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 120-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 128-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 128-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 32-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 32-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 64-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 64-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 96-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 96-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 104-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 104-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 112-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 112-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 120-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 120-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 128-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 128-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 32-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 32-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 64-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 64-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 96-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 96-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 104-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 104-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 112-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 112-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 120-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 120-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 128-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 128-bit tag with altered plaintext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 32-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 32-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 64-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 64-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 96-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 96-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 104-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 104-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 112-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 112-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 120-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 120-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 128-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 128-bit tag assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 32-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 32-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 64-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 64-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 96-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 96-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 104-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 104-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 112-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 112-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 120-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 120-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 128-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 128-bit tag assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 32-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 32-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 64-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 64-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 96-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 96-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 104-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 104-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 112-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 112-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 120-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 120-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 128-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 128-bit tag assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 32-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 32-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 64-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 64-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 96-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 96-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 104-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 104-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 112-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 112-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 120-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 120-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, 128-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 128-bit key, no additional data, 128-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 32-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 32-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 64-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 64-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 96-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 96-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 104-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 104-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 112-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 112-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 120-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 120-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, 128-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 192-bit key, no additional data, 128-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 32-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 32-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 64-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 64-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 96-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 96-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 104-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 104-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 112-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 112-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 120-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 120-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, 128-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step for decryption: AES-GCM 256-bit key, no additional data, 128-bit tag with altered ciphertext assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 32-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 32-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 64-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 64-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 96-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 96-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 104-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 104-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 112-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 112-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 120-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 120-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 128-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 128-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 32-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 32-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 64-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 64-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 96-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 96-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 104-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 104-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 112-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 112-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 120-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 120-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 128-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 128-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 32-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 32-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 64-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 64-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 96-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 96-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 104-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 104-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 112-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 112-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 120-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 120-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 128-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 128-bit tag without encrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 32-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 32-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 64-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 64-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 96-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 96-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 104-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 104-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 112-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 112-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 120-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 120-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 128-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 128-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 32-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 32-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 64-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 64-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 96-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 96-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 104-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 104-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 112-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 112-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 120-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 120-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 128-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 128-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 32-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 32-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 64-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 64-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 96-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 96-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 104-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 104-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 112-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 112-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 120-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 120-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 128-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 128-bit tag with mismatched key and algorithm assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 32-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 32-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 64-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 64-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 96-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 96-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 104-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 104-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 112-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 112-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 120-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 120-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, 128-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, no additional data, 128-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 128-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 32-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 32-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 64-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 64-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 96-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 96-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 104-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 104-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 112-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 112-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 120-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 120-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, 128-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, no additional data, 128-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 192-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 32-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 32-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 32-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 64-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 64-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 64-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 96-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 96-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 96-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 104-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 104-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 104-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 112-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 112-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 112-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 120-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 120-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 120-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, 128-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, no additional data, 128-bit tag without decrypt usage assert_unreached: importKey failed for AES-GCM 256-bit key, no additional data, 128-bit tag Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, illegal tag length 24-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 24-bits Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, illegal tag length 48-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 48-bits Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, illegal tag length 72-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 72-bits Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, illegal tag length 95-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 95-bits Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, illegal tag length 129-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 129-bits Reached unreachable code
-FAIL importKey step: AES-GCM 128-bit key, illegal tag length 256-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 256-bits Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, illegal tag length 24-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 24-bits Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, illegal tag length 48-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 48-bits Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, illegal tag length 72-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 72-bits Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, illegal tag length 95-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 95-bits Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, illegal tag length 129-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 129-bits Reached unreachable code
-FAIL importKey step: AES-GCM 192-bit key, illegal tag length 256-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 256-bits Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, illegal tag length 24-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 24-bits Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, illegal tag length 48-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 48-bits Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, illegal tag length 72-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 72-bits Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, illegal tag length 95-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 95-bits Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, illegal tag length 129-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 129-bits Reached unreachable code
-FAIL importKey step: AES-GCM 256-bit key, illegal tag length 256-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 256-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 128-bit key, illegal tag length 24-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 24-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 128-bit key, illegal tag length 48-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 48-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 128-bit key, illegal tag length 72-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 72-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 128-bit key, illegal tag length 95-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 95-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 128-bit key, illegal tag length 129-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 129-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 128-bit key, illegal tag length 256-bits assert_unreached: importKey failed for AES-GCM 128-bit key, illegal tag length 256-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 192-bit key, illegal tag length 24-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 24-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 192-bit key, illegal tag length 48-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 48-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 192-bit key, illegal tag length 72-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 72-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 192-bit key, illegal tag length 95-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 95-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 192-bit key, illegal tag length 129-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 129-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 192-bit key, illegal tag length 256-bits assert_unreached: importKey failed for AES-GCM 192-bit key, illegal tag length 256-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 256-bit key, illegal tag length 24-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 24-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 256-bit key, illegal tag length 48-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 48-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 256-bit key, illegal tag length 72-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 72-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 256-bit key, illegal tag length 95-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 95-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 256-bit key, illegal tag length 129-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 129-bits Reached unreachable code
-FAIL importKey step: decryption AES-GCM 256-bit key, illegal tag length 256-bits assert_unreached: importKey failed for AES-GCM 256-bit key, illegal tag length 256-bits Reached unreachable code
</del><ins>+PASS AES-GCM 128-bit key, 32-bit tag 
+PASS AES-GCM 128-bit key, no additional data, 32-bit tag 
+PASS AES-GCM 128-bit key, 64-bit tag 
+PASS AES-GCM 128-bit key, no additional data, 64-bit tag 
+PASS AES-GCM 128-bit key, 96-bit tag 
+PASS AES-GCM 128-bit key, no additional data, 96-bit tag 
+PASS AES-GCM 128-bit key, 104-bit tag 
+PASS AES-GCM 128-bit key, no additional data, 104-bit tag 
+PASS AES-GCM 128-bit key, 112-bit tag 
+PASS AES-GCM 128-bit key, no additional data, 112-bit tag 
+PASS AES-GCM 128-bit key, 120-bit tag 
+PASS AES-GCM 128-bit key, no additional data, 120-bit tag 
+PASS AES-GCM 128-bit key, 128-bit tag 
+PASS AES-GCM 128-bit key, no additional data, 128-bit tag 
+PASS AES-GCM 192-bit key, 32-bit tag 
+PASS AES-GCM 192-bit key, no additional data, 32-bit tag 
+PASS AES-GCM 192-bit key, 64-bit tag 
+PASS AES-GCM 192-bit key, no additional data, 64-bit tag 
+PASS AES-GCM 192-bit key, 96-bit tag 
+PASS AES-GCM 192-bit key, no additional data, 96-bit tag 
+PASS AES-GCM 192-bit key, 104-bit tag 
+PASS AES-GCM 192-bit key, no additional data, 104-bit tag 
+PASS AES-GCM 192-bit key, 112-bit tag 
+PASS AES-GCM 192-bit key, no additional data, 112-bit tag 
+PASS AES-GCM 192-bit key, 120-bit tag 
+PASS AES-GCM 192-bit key, no additional data, 120-bit tag 
+PASS AES-GCM 192-bit key, 128-bit tag 
+PASS AES-GCM 192-bit key, no additional data, 128-bit tag 
+PASS AES-GCM 256-bit key, 32-bit tag 
+PASS AES-GCM 256-bit key, no additional data, 32-bit tag 
+PASS AES-GCM 256-bit key, 64-bit tag 
+PASS AES-GCM 256-bit key, no additional data, 64-bit tag 
+PASS AES-GCM 256-bit key, 96-bit tag 
+PASS AES-GCM 256-bit key, no additional data, 96-bit tag 
+PASS AES-GCM 256-bit key, 104-bit tag 
+PASS AES-GCM 256-bit key, no additional data, 104-bit tag 
+PASS AES-GCM 256-bit key, 112-bit tag 
+PASS AES-GCM 256-bit key, no additional data, 112-bit tag 
+PASS AES-GCM 256-bit key, 120-bit tag 
+PASS AES-GCM 256-bit key, no additional data, 120-bit tag 
+PASS AES-GCM 256-bit key, 128-bit tag 
+PASS AES-GCM 256-bit key, no additional data, 128-bit tag 
+PASS AES-GCM 128-bit key, 32-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, no additional data, 32-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, 64-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, no additional data, 64-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, 96-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, no additional data, 96-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, 104-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, no additional data, 104-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, 112-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, no additional data, 112-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, 120-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, no additional data, 120-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, 128-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, no additional data, 128-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, 32-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, no additional data, 32-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, 64-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, no additional data, 64-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, 96-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, no additional data, 96-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, 104-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, no additional data, 104-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, 112-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, no additional data, 112-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, 120-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, no additional data, 120-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, 128-bit tag with altered plaintext 
+PASS AES-GCM 192-bit key, no additional data, 128-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, 32-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, no additional data, 32-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, 64-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, no additional data, 64-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, 96-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, no additional data, 96-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, 104-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, no additional data, 104-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, 112-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, no additional data, 112-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, 120-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, no additional data, 120-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, 128-bit tag with altered plaintext 
+PASS AES-GCM 256-bit key, no additional data, 128-bit tag with altered plaintext 
+PASS AES-GCM 128-bit key, 32-bit tag decryption 
+PASS AES-GCM 128-bit key, no additional data, 32-bit tag decryption 
+PASS AES-GCM 128-bit key, 64-bit tag decryption 
+PASS AES-GCM 128-bit key, no additional data, 64-bit tag decryption 
+PASS AES-GCM 128-bit key, 96-bit tag decryption 
+PASS AES-GCM 128-bit key, no additional data, 96-bit tag decryption 
+PASS AES-GCM 128-bit key, 104-bit tag decryption 
+PASS AES-GCM 128-bit key, no additional data, 104-bit tag decryption 
+PASS AES-GCM 128-bit key, 112-bit tag decryption 
+PASS AES-GCM 128-bit key, no additional data, 112-bit tag decryption 
+PASS AES-GCM 128-bit key, 120-bit tag decryption 
+PASS AES-GCM 128-bit key, no additional data, 120-bit tag decryption 
+PASS AES-GCM 128-bit key, 128-bit tag decryption 
+PASS AES-GCM 128-bit key, no additional data, 128-bit tag decryption 
+PASS AES-GCM 192-bit key, 32-bit tag decryption 
+PASS AES-GCM 192-bit key, no additional data, 32-bit tag decryption 
+PASS AES-GCM 192-bit key, 64-bit tag decryption 
+PASS AES-GCM 192-bit key, no additional data, 64-bit tag decryption 
+PASS AES-GCM 192-bit key, 96-bit tag decryption 
+PASS AES-GCM 192-bit key, no additional data, 96-bit tag decryption 
+PASS AES-GCM 192-bit key, 104-bit tag decryption 
+PASS AES-GCM 192-bit key, no additional data, 104-bit tag decryption 
+PASS AES-GCM 192-bit key, 112-bit tag decryption 
+PASS AES-GCM 192-bit key, no additional data, 112-bit tag decryption 
+PASS AES-GCM 192-bit key, 120-bit tag decryption 
+PASS AES-GCM 192-bit key, no additional data, 120-bit tag decryption 
+PASS AES-GCM 192-bit key, 128-bit tag decryption 
+PASS AES-GCM 192-bit key, no additional data, 128-bit tag decryption 
+PASS AES-GCM 256-bit key, 32-bit tag decryption 
+PASS AES-GCM 256-bit key, no additional data, 32-bit tag decryption 
+PASS AES-GCM 256-bit key, 64-bit tag decryption 
+PASS AES-GCM 256-bit key, no additional data, 64-bit tag decryption 
+PASS AES-GCM 256-bit key, 96-bit tag decryption 
+PASS AES-GCM 256-bit key, no additional data, 96-bit tag decryption 
+PASS AES-GCM 256-bit key, 104-bit tag decryption 
+PASS AES-GCM 256-bit key, no additional data, 104-bit tag decryption 
+PASS AES-GCM 256-bit key, 112-bit tag decryption 
+PASS AES-GCM 256-bit key, no additional data, 112-bit tag decryption 
+PASS AES-GCM 256-bit key, 120-bit tag decryption 
+PASS AES-GCM 256-bit key, no additional data, 120-bit tag decryption 
+PASS AES-GCM 256-bit key, 128-bit tag decryption 
+PASS AES-GCM 256-bit key, no additional data, 128-bit tag decryption 
+PASS AES-GCM 128-bit key, 32-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, no additional data, 32-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, 64-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, no additional data, 64-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, 96-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, no additional data, 96-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, 104-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, no additional data, 104-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, 112-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, no additional data, 112-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, 120-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, no additional data, 120-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, 128-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, no additional data, 128-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, 32-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, no additional data, 32-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, 64-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, no additional data, 64-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, 96-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, no additional data, 96-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, 104-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, no additional data, 104-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, 112-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, no additional data, 112-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, 120-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, no additional data, 120-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, 128-bit tag decryption with altered ciphertext 
+PASS AES-GCM 192-bit key, no additional data, 128-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, 32-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, no additional data, 32-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, 64-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, no additional data, 64-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, 96-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, no additional data, 96-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, 104-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, no additional data, 104-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, 112-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, no additional data, 112-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, 120-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, no additional data, 120-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, 128-bit tag decryption with altered ciphertext 
+PASS AES-GCM 256-bit key, no additional data, 128-bit tag decryption with altered ciphertext 
+PASS AES-GCM 128-bit key, 32-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 32-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, 64-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 64-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, 96-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 96-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, 104-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 104-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, 112-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 112-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, 120-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 120-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, 128-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 128-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, 32-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 32-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, 64-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 64-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, 96-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 96-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, 104-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 104-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, 112-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 112-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, 120-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 120-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, 128-bit tag without encrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 128-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, 32-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 32-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, 64-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 64-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, 96-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 96-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, 104-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 104-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, 112-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 112-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, 120-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 120-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, 128-bit tag without encrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 128-bit tag without encrypt usage 
+PASS AES-GCM 128-bit key, 32-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, no additional data, 32-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, 64-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, no additional data, 64-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, 96-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, no additional data, 96-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, 104-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, no additional data, 104-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, 112-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, no additional data, 112-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, 120-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, no additional data, 120-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, 128-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, no additional data, 128-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, 32-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, no additional data, 32-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, 64-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, no additional data, 64-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, 96-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, no additional data, 96-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, 104-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, no additional data, 104-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, 112-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, no additional data, 112-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, 120-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, no additional data, 120-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, 128-bit tag with mismatched key and algorithm 
+PASS AES-GCM 192-bit key, no additional data, 128-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, 32-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, no additional data, 32-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, 64-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, no additional data, 64-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, 96-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, no additional data, 96-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, 104-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, no additional data, 104-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, 112-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, no additional data, 112-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, 120-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, no additional data, 120-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, 128-bit tag with mismatched key and algorithm 
+PASS AES-GCM 256-bit key, no additional data, 128-bit tag with mismatched key and algorithm 
+PASS AES-GCM 128-bit key, 32-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 32-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, 64-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 64-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, 96-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 96-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, 104-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 104-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, 112-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 112-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, 120-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 120-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, 128-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, no additional data, 128-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, 32-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 32-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, 64-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 64-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, 96-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 96-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, 104-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 104-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, 112-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 112-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, 120-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 120-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, 128-bit tag without decrypt usage 
+PASS AES-GCM 192-bit key, no additional data, 128-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, 32-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 32-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, 64-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 64-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, 96-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 96-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, 104-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 104-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, 112-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 112-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, 120-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 120-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, 128-bit tag without decrypt usage 
+PASS AES-GCM 256-bit key, no additional data, 128-bit tag without decrypt usage 
+PASS AES-GCM 128-bit key, illegal tag length 24-bits 
+PASS AES-GCM 128-bit key, illegal tag length 48-bits 
+PASS AES-GCM 128-bit key, illegal tag length 72-bits 
+PASS AES-GCM 128-bit key, illegal tag length 95-bits 
+PASS AES-GCM 128-bit key, illegal tag length 129-bits 
+PASS AES-GCM 128-bit key, illegal tag length 256-bits 
+PASS AES-GCM 192-bit key, illegal tag length 24-bits 
+PASS AES-GCM 192-bit key, illegal tag length 48-bits 
+PASS AES-GCM 192-bit key, illegal tag length 72-bits 
+PASS AES-GCM 192-bit key, illegal tag length 95-bits 
+PASS AES-GCM 192-bit key, illegal tag length 129-bits 
+PASS AES-GCM 192-bit key, illegal tag length 256-bits 
+PASS AES-GCM 256-bit key, illegal tag length 24-bits 
+PASS AES-GCM 256-bit key, illegal tag length 48-bits 
+PASS AES-GCM 256-bit key, illegal tag length 72-bits 
+PASS AES-GCM 256-bit key, illegal tag length 95-bits 
+PASS AES-GCM 256-bit key, illegal tag length 129-bits 
+PASS AES-GCM 256-bit key, illegal tag length 256-bits 
+PASS AES-GCM 128-bit key, illegal tag length 24-bits decryption 
+PASS AES-GCM 128-bit key, illegal tag length 48-bits decryption 
+PASS AES-GCM 128-bit key, illegal tag length 72-bits decryption 
+PASS AES-GCM 128-bit key, illegal tag length 95-bits decryption 
+PASS AES-GCM 128-bit key, illegal tag length 129-bits decryption 
+PASS AES-GCM 128-bit key, illegal tag length 256-bits decryption 
+PASS AES-GCM 192-bit key, illegal tag length 24-bits decryption 
+PASS AES-GCM 192-bit key, illegal tag length 48-bits decryption 
+PASS AES-GCM 192-bit key, illegal tag length 72-bits decryption 
+PASS AES-GCM 192-bit key, illegal tag length 95-bits decryption 
+PASS AES-GCM 192-bit key, illegal tag length 129-bits decryption 
+PASS AES-GCM 192-bit key, illegal tag length 256-bits decryption 
+PASS AES-GCM 256-bit key, illegal tag length 24-bits decryption 
+PASS AES-GCM 256-bit key, illegal tag length 48-bits decryption 
+PASS AES-GCM 256-bit key, illegal tag length 72-bits decryption 
+PASS AES-GCM 256-bit key, illegal tag length 95-bits decryption 
+PASS AES-GCM 256-bit key, illegal tag length 129-bits decryption 
+PASS AES-GCM 256-bit key, illegal tag length 256-bits decryption 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsWebCryptoAPIgenerateKeyfailures_AESGCMworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.worker-expected.txt (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.worker-expected.txt        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_AES-GCM.worker-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -323,418 +323,418 @@
</span><span class="cx"> PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
</span><span class="cx"> PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
</span><span class="cx"> PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
</span><del>-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;
</del><ins>+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, []) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, []) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, []) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, []) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, []) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, []) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, []) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, []) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, []) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, []) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, []) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, []) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Empty usages: generateKey({length: 128, name: AES-GCM}, false, []) 
+PASS Empty usages: generateKey({length: 128, name: AES-GCM}, true, []) 
+PASS Empty usages: generateKey({length: 192, name: AES-GCM}, false, []) 
+PASS Empty usages: generateKey({length: 192, name: AES-GCM}, true, []) 
+PASS Empty usages: generateKey({length: 256, name: AES-GCM}, false, []) 
+PASS Empty usages: generateKey({length: 256, name: AES-GCM}, true, []) 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsWebCryptoAPIgenerateKeysuccesses_AESGCMworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.worker-expected.txt (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.worker-expected.txt        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_AES-GCM.worker-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -1,290 +1,290 @@
</span><span class="cx"> 
</span><del>-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
</del><ins>+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsWebCryptoAPIgenerateKeytest_failures_AESGCMexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -325,418 +325,418 @@
</span><span class="cx"> PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, true, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
</span><span class="cx"> PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, RED, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
</span><span class="cx"> PASS Bad algorithm: generateKey({name: EC, namedCurve: P521}, 7, [decrypt, sign, deriveBits, decrypt, sign, deriveBits]) 
</span><del>-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;
</del><ins>+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, sign]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, verify]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveKey]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, deriveBits]) 
+PASS Bad usages: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey, deriveBits]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, []) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, []) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 64, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, []) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, []) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 127, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, []) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, []) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 129, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, []) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, []) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 255, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, []) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, []) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 257, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, encrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, decrypt]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey, wrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, []) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, []) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Bad algorithm property: generateKey({length: 512, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Empty usages: generateKey({length: 128, name: AES-GCM}, false, []) 
+PASS Empty usages: generateKey({length: 128, name: AES-GCM}, true, []) 
+PASS Empty usages: generateKey({length: 192, name: AES-GCM}, false, []) 
+PASS Empty usages: generateKey({length: 192, name: AES-GCM}, true, []) 
+PASS Empty usages: generateKey({length: 256, name: AES-GCM}, false, []) 
+PASS Empty usages: generateKey({length: 256, name: AES-GCM}, true, []) 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsWebCryptoAPIgenerateKeytest_successes_AESGCMexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -3,292 +3,292 @@
</span><span class="cx"> Warning! RSA key generation is intrinsically very slow, so the related tests can take up to several minutes to complete, depending on browser!
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-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
</del><ins>+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: AES-GCM}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 128, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 192, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, decrypt, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, encrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, decrypt]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey, wrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, false, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
+PASS Success: generateKey({length: 256, name: Aes-gcm}, true, [encrypt, decrypt, wrapKey, unwrapKey, encrypt, decrypt, wrapKey, unwrapKey]) 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsWebCryptoAPIimport_exportsymmetric_importKeyworkerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.worker-expected.txt (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.worker-expected.txt        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/symmetric_importKey.worker-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -71,42 +71,42 @@
</span><span class="cx"> PASS Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, true, [decrypt]) 
</span><span class="cx"> PASS Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt]) 
</span><span class="cx"> PASS Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, false, [decrypt]) 
</span><del>-FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {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 Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {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 Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {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 Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {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 Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {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 Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {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 Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {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 Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {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 Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {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 Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {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 Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {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 Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {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 Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
</del><ins>+PASS Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt]) 
+PASS Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [encrypt]) 
+PASS Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt]) 
+PASS Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [encrypt]) 
+PASS Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt]) 
+PASS Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [decrypt]) 
+PASS Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt]) 
+PASS Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [decrypt]) 
+PASS Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt]) 
+PASS Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [encrypt]) 
+PASS Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt]) 
+PASS Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [encrypt]) 
+PASS Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt]) 
+PASS Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [decrypt]) 
+PASS Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt]) 
+PASS Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [decrypt]) 
+PASS Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt]) 
+PASS Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [encrypt]) 
+PASS Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt]) 
+PASS Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [encrypt]) 
+PASS Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt]) 
+PASS Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [decrypt]) 
+PASS Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt]) 
+PASS Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [decrypt]) 
</ins><span class="cx"> PASS Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [wrapKey]) 
</span><span class="cx"> PASS Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, true, [wrapKey]) 
</span><span class="cx"> PASS Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [wrapKey]) 
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestsWebCryptoAPIimport_exporttest_symmetric_importKeyexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_symmetric_importKey-expected.txt (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_symmetric_importKey-expected.txt        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_symmetric_importKey-expected.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -71,42 +71,42 @@
</span><span class="cx"> PASS Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, true, [decrypt]) 
</span><span class="cx"> PASS Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CBC}, false, [decrypt]) 
</span><span class="cx"> PASS Good parameters: 256 bits (jwk, {alg: A256CBC, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-CBC}, false, [decrypt]) 
</span><del>-FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {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 Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {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 Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {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 Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {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 Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {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 Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {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 Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {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 Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {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 Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [encrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {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 Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {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 Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {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 Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {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 Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
-FAIL Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [decrypt]) assert_unreached: Threw an unexpected error: NotSupportedError (DOM Exception 9): The operation is not supported. Reached unreachable code
</del><ins>+PASS Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt]) 
+PASS Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [encrypt]) 
+PASS Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt]) 
+PASS Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [encrypt]) 
+PASS Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt]) 
+PASS Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, true, [decrypt]) 
+PASS Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt]) 
+PASS Good parameters: 128 bits (jwk, {alg: A128GCM, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-GCM}, false, [decrypt]) 
+PASS Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt]) 
+PASS Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [encrypt]) 
+PASS Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt]) 
+PASS Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [encrypt]) 
+PASS Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt]) 
+PASS Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, true, [decrypt]) 
+PASS Good parameters: 192 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt]) 
+PASS Good parameters: 192 bits (jwk, {alg: A192GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcY, kty: oct}, {name: AES-GCM}, false, [decrypt]) 
+PASS Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [encrypt]) 
+PASS Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [encrypt]) 
+PASS Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [encrypt]) 
+PASS Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [encrypt]) 
+PASS Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [decrypt, encrypt]) 
+PASS Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [decrypt, encrypt]) 
+PASS Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, true, [decrypt]) 
+PASS Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, true, [decrypt]) 
+PASS Good parameters: 256 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 16: 17, 17: 18, 18: 19, 19: 20, 2: 3, 20: 21, 21: 22, 22: 23, 23: 24, 24: 25, 25: 26, 26: 27, 27: 28, 28: 29, 29: 30, 3: 4, 30: 31, 31: 32, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-GCM}, false, [decrypt]) 
+PASS Good parameters: 256 bits (jwk, {alg: A256GCM, k: AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA, kty: oct}, {name: AES-GCM}, false, [decrypt]) 
</ins><span class="cx"> PASS Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, true, [wrapKey]) 
</span><span class="cx"> PASS Good parameters: 128 bits (jwk, {alg: A128KW, k: AQIDBAUGBwgJCgsMDQ4PEA, kty: oct}, {name: AES-KW}, true, [wrapKey]) 
</span><span class="cx"> PASS Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-KW}, false, [wrapKey]) 
</span></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/Source/WebCore/CMakeLists.txt        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -340,6 +340,7 @@
</span><span class="cx">     crypto/WebKitSubtleCrypto.idl
</span><span class="cx"> 
</span><span class="cx">     crypto/parameters/AesCbcCfbParams.idl
</span><ins>+    crypto/parameters/AesGcmParams.idl
</ins><span class="cx">     crypto/parameters/AesKeyGenParams.idl
</span><span class="cx">     crypto/parameters/HmacKeyParams.idl
</span><span class="cx">     crypto/parameters/RsaHashedImportParams.idl
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/Source/WebCore/ChangeLog        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -1,3 +1,79 @@
</span><ins>+2017-02-22  Jiewen Tan  &lt;jiewen_tan@apple.com&gt;
+
+        WebCrypto API support for AES-GCM
+        https://bugs.webkit.org/show_bug.cgi?id=157175
+        &lt;rdar://problem/27311691&gt;
+
+        Reviewed by Brent Fulgham.
+
+        This patch adds support for AES-GCM. Operations of AES-GCM include: encrypt, decrypt, generateKey,
+        importKey, exportKey, wrapKey, and unwrapKey. https://www.w3.org/TR/WebCryptoAPI/#aes-gcm
+
+        Tests: crypto/subtle/aes-gcm-decrypt-malformed-parameters.html
+               crypto/subtle/aes-gcm-encrypt-malformed-parameters.html
+               crypto/subtle/aes-gcm-generate-export-key-jwk-length-128.html
+               crypto/subtle/aes-gcm-generate-export-key-jwk-length-192.html
+               crypto/subtle/aes-gcm-generate-export-key-jwk-length-256.html
+               crypto/subtle/aes-gcm-generate-export-raw-key.html
+               crypto/subtle/aes-gcm-generate-key-encrypt-decrypt.html
+               crypto/subtle/aes-gcm-generate-key.html
+               crypto/subtle/aes-gcm-import-jwk-key-length-128.html
+               crypto/subtle/aes-gcm-import-jwk-key-length-192.html
+               crypto/subtle/aes-gcm-import-jwk-key-length-256.html
+               crypto/subtle/aes-gcm-import-key-decrypt-additional-data-tag-length-32.html
+               crypto/subtle/aes-gcm-import-key-decrypt-additional-data.html
+               crypto/subtle/aes-gcm-import-key-decrypt-tagLengths.html
+               crypto/subtle/aes-gcm-import-key-decrypt.html
+               crypto/subtle/aes-gcm-import-key-encrypt-additional-data-tag-length-32.html
+               crypto/subtle/aes-gcm-import-key-encrypt-additional-data.html
+               crypto/subtle/aes-gcm-import-key-encrypt-tagLengths.html
+               crypto/subtle/aes-gcm-import-key-encrypt.html
+               crypto/subtle/aes-gcm-import-key-unwrap-jwk-key.html
+               crypto/subtle/aes-gcm-import-key-unwrap-raw-key.html
+               crypto/subtle/aes-gcm-import-key-wrap-jwk-key.html
+               crypto/subtle/aes-gcm-import-key-wrap-raw-key.html
+               crypto/subtle/aes-gcm-import-raw-key.html
+               crypto/workers/subtle/aes-gcm-import-key-decrypt.html
+               crypto/workers/subtle/aes-gcm-import-key-encrypt.html
+               crypto/workers/subtle/aes-gcm-import-key-unwrap-key.html
+               crypto/workers/subtle/aes-gcm-import-key-wrap-key.html
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * PlatformGTK.cmake:
+        * PlatformMac.cmake:
+        Add CryptoAlgorithmAES_CFBMac.cpp as well.
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/JSSubtleCryptoCustom.cpp:
+        (WebCore::normalizeCryptoAlgorithmParameters):
+        Add support for AES-GCM.
+        * crypto/CommonCryptoUtilities.h:
+        Include SPI header for AES-GCM support.
+        * crypto/CryptoAlgorithmParameters.h:
+        * crypto/algorithms/CryptoAlgorithmAES_GCM.cpp: Added.
+        (WebCore::usagesAreInvalidForCryptoAlgorithmAES_GCM):
+        (WebCore::tagLengthIsValid):
+        (WebCore::CryptoAlgorithmAES_GCM::create):
+        (WebCore::CryptoAlgorithmAES_GCM::identifier):
+        (WebCore::CryptoAlgorithmAES_GCM::encrypt):
+        (WebCore::CryptoAlgorithmAES_GCM::decrypt):
+        (WebCore::CryptoAlgorithmAES_GCM::generateKey):
+        (WebCore::CryptoAlgorithmAES_GCM::importKey):
+        (WebCore::CryptoAlgorithmAES_GCM::exportKey):
+        * crypto/algorithms/CryptoAlgorithmAES_GCM.h: Added.
+        * crypto/gnutls/CryptoAlgorithmAES_GCMGnuTLS.cpp: Added.
+        (WebCore::CryptoAlgorithmAES_GCM::platformEncrypt):
+        (WebCore::CryptoAlgorithmAES_GCM::platformDecrypt):
+        * crypto/mac/CryptoAlgorithmAES_GCMMac.cpp: Added.
+        (WebCore::encryptAES_GCM):
+        (WebCore::decyptAES_GCM):
+        (WebCore::CryptoAlgorithmAES_GCM::platformEncrypt):
+        (WebCore::CryptoAlgorithmAES_GCM::platformDecrypt):
+        * crypto/mac/CryptoAlgorithmRegistryMac.cpp:
+        (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
+        * crypto/parameters/AesGcmParams.idl: Added.
+        * crypto/parameters/CryptoAlgorithmAesGcmParams.h: Added.
+
</ins><span class="cx"> 2017-03-02  Alex Christensen  &lt;achristensen@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Continue enabling WebRTC
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources.make (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources.make        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/Source/WebCore/DerivedSources.make        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -272,6 +272,7 @@
</span><span class="cx">     $(WebCore)/crypto/SubtleCrypto.idl \
</span><span class="cx">     $(WebCore)/crypto/WebKitSubtleCrypto.idl \
</span><span class="cx">     $(WebCore)/crypto/parameters/AesCbcCfbParams.idl \
</span><ins>+    $(WebCore)/crypto/parameters/AesGcmParams.idl \
</ins><span class="cx">     $(WebCore)/crypto/parameters/AesKeyGenParams.idl \
</span><span class="cx">     $(WebCore)/crypto/parameters/HmacKeyParams.idl \
</span><span class="cx">     $(WebCore)/crypto/parameters/RsaHashedImportParams.idl \
</span></span></pre></div>
<a id="trunkSourceWebCorePlatformGTKcmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/PlatformGTK.cmake (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/PlatformGTK.cmake        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/Source/WebCore/PlatformGTK.cmake        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -384,6 +384,7 @@
</span><span class="cx"> 
</span><span class="cx">         crypto/algorithms/CryptoAlgorithmAES_CBC.cpp
</span><span class="cx">         crypto/algorithms/CryptoAlgorithmAES_CFB.cpp
</span><ins>+        crypto/algorithms/CryptoAlgorithmAES_GCM.cpp
</ins><span class="cx">         crypto/algorithms/CryptoAlgorithmAES_KW.cpp
</span><span class="cx">         crypto/algorithms/CryptoAlgorithmHMAC.cpp
</span><span class="cx">         crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp
</span><span class="lines">@@ -399,6 +400,7 @@
</span><span class="cx"> 
</span><span class="cx">         crypto/gnutls/CryptoAlgorithmAES_CBCGnuTLS.cpp
</span><span class="cx">         crypto/gnutls/CryptoAlgorithmAES_CFBGnuTLS.cpp
</span><ins>+        crypto/gnutls/CryptoAlgorithmAES_GCMGnuTLS.cpp
</ins><span class="cx">         crypto/gnutls/CryptoAlgorithmAES_KWGnuTLS.cpp
</span><span class="cx">         crypto/gnutls/CryptoAlgorithmRSAES_PKCS1_v1_5GnuTLS.cpp
</span><span class="cx">         crypto/gnutls/CryptoAlgorithmRSASSA_PKCS1_v1_5GnuTLS.cpp
</span></span></pre></div>
<a id="trunkSourceWebCorePlatformMaccmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/PlatformMac.cmake (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/PlatformMac.cmake        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/Source/WebCore/PlatformMac.cmake        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -180,6 +180,7 @@
</span><span class="cx"> 
</span><span class="cx">     crypto/algorithms/CryptoAlgorithmAES_CBC.cpp
</span><span class="cx">     crypto/algorithms/CryptoAlgorithmAES_CFB.cpp
</span><ins>+    crypto/algorithms/CryptoAlgorithmAES_GCM.cpp
</ins><span class="cx">     crypto/algorithms/CryptoAlgorithmAES_KW.cpp
</span><span class="cx">     crypto/algorithms/CryptoAlgorithmHMAC.cpp
</span><span class="cx">     crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp
</span><span class="lines">@@ -198,8 +199,9 @@
</span><span class="cx">     crypto/keys/CryptoKeyRSA.cpp
</span><span class="cx">     crypto/keys/CryptoKeySerializationRaw.cpp
</span><span class="cx"> 
</span><ins>+    crypto/mac/CryptoAlgorithmAES_CBCMac.cpp
</ins><span class="cx">     crypto/mac/CryptoAlgorithmAES_CFBMac.cpp
</span><del>-    crypto/mac/CryptoAlgorithmAES_CBCMac.cpp
</del><ins>+    crypto/mac/CryptoAlgorithmAES_GCMMac.cpp
</ins><span class="cx">     crypto/mac/CryptoAlgorithmAES_KWMac.cpp
</span><span class="cx">     crypto/mac/CryptoAlgorithmHMACMac.cpp
</span><span class="cx">     crypto/mac/CryptoAlgorithmRSAES_PKCS1_v1_5Mac.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -2387,6 +2387,12 @@
</span><span class="cx">                 57C7A6941E578ACA00C67D71 /* BasicCredential.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 57C7A6931E578ACA00C67D71 /* BasicCredential.cpp */; };
</span><span class="cx">                 57C7A69F1E57917800C67D71 /* JSBasicCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 57C7A69D1E57910D00C67D71 /* JSBasicCredential.h */; };
</span><span class="cx">                 57C7A6A01E57919B00C67D71 /* JSBasicCredential.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 57C7A69C1E57910D00C67D71 /* JSBasicCredential.cpp */; };
</span><ins>+                57B5F7F81E5BE84000F34F90 /* CryptoAlgorithmAES_GCM.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 57B5F7F61E5BE84000F34F90 /* CryptoAlgorithmAES_GCM.cpp */; };
+                57B5F7F91E5BE84000F34F90 /* CryptoAlgorithmAES_GCM.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B5F7F71E5BE84000F34F90 /* CryptoAlgorithmAES_GCM.h */; };
+                57B5F8091E5D1A9800F34F90 /* CryptoAlgorithmAesGcmParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B5F8081E5D1A9800F34F90 /* CryptoAlgorithmAesGcmParams.h */; };
+                57B5F80E1E5D2F2D00F34F90 /* CryptoAlgorithmAES_GCMMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 57B5F80D1E5D2F2D00F34F90 /* CryptoAlgorithmAES_GCMMac.cpp */; };
+                57B5F80F1E5E2A4B00F34F90 /* JSAesGcmParams.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 57B5F80A1E5D22DA00F34F90 /* JSAesGcmParams.cpp */; };
+                57B5F8101E5E2A4E00F34F90 /* JSAesGcmParams.h in Headers */ = {isa = PBXBuildFile; fileRef = 57B5F80B1E5D22DA00F34F90 /* JSAesGcmParams.h */; };
</ins><span class="cx">                 57D0018D1DD5413200ED19D9 /* JSCryptoKeyUsage.h in Headers */ = {isa = PBXBuildFile; fileRef = 57D0018C1DD5413200ED19D9 /* JSCryptoKeyUsage.h */; };
</span><span class="cx">                 57D0018F1DD5415300ED19D9 /* JSCryptoKeyUsage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 57D0018E1DD5415300ED19D9 /* JSCryptoKeyUsage.cpp */; };
</span><span class="cx">                 57E2335B1DC7D5E500F28D01 /* JSJsonWebKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 57E2335A1DC7D5E500F28D01 /* JSJsonWebKey.h */; };
</span><span class="lines">@@ -9791,6 +9797,13 @@
</span><span class="cx">                 57C7A6931E578ACA00C67D71 /* BasicCredential.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BasicCredential.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 57C7A69C1E57910D00C67D71 /* JSBasicCredential.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSBasicCredential.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 57C7A69D1E57910D00C67D71 /* JSBasicCredential.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSBasicCredential.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                57B5F7F61E5BE84000F34F90 /* CryptoAlgorithmAES_GCM.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CryptoAlgorithmAES_GCM.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                57B5F7F71E5BE84000F34F90 /* CryptoAlgorithmAES_GCM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoAlgorithmAES_GCM.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                57B5F8071E5D19F200F34F90 /* AesGcmParams.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = AesGcmParams.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
+                57B5F8081E5D1A9800F34F90 /* CryptoAlgorithmAesGcmParams.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoAlgorithmAesGcmParams.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                57B5F80A1E5D22DA00F34F90 /* JSAesGcmParams.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSAesGcmParams.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                57B5F80B1E5D22DA00F34F90 /* JSAesGcmParams.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSAesGcmParams.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                57B5F80D1E5D2F2D00F34F90 /* CryptoAlgorithmAES_GCMMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CryptoAlgorithmAES_GCMMac.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 57D0018B1DD3DBA400ED19D9 /* CryptoKeyUsage.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = CryptoKeyUsage.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 57D0018C1DD5413200ED19D9 /* JSCryptoKeyUsage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCryptoKeyUsage.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 57D0018E1DD5415300ED19D9 /* JSCryptoKeyUsage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCryptoKeyUsage.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -23508,6 +23521,7 @@
</span><span class="cx">                         children = (
</span><span class="cx">                                 E125F843182425C900D84CD9 /* CryptoAlgorithmAES_CBCMac.cpp */,
</span><span class="cx">                                 570440571E53851600356601 /* CryptoAlgorithmAES_CFBMac.cpp */,
</span><ins>+                                57B5F80D1E5D2F2D00F34F90 /* CryptoAlgorithmAES_GCMMac.cpp */,
</ins><span class="cx">                                 E1FE137C184D270200892F13 /* CryptoAlgorithmAES_KWMac.cpp */,
</span><span class="cx">                                 E125F8371822F1EB00D84CD9 /* CryptoAlgorithmHMACMac.cpp */,
</span><span class="cx">                                 E1BB84AC1822CA7400525043 /* CryptoAlgorithmRegistryMac.cpp */,
</span><span class="lines">@@ -23528,6 +23542,8 @@
</span><span class="cx">                                 E125F8401824253A00D84CD9 /* CryptoAlgorithmAES_CBC.h */,
</span><span class="cx">                                 5712526A1E52527C008FF369 /* CryptoAlgorithmAES_CFB.cpp */,
</span><span class="cx">                                 571252681E524EB1008FF369 /* CryptoAlgorithmAES_CFB.h */,
</span><ins>+                                57B5F7F61E5BE84000F34F90 /* CryptoAlgorithmAES_GCM.cpp */,
+                                57B5F7F71E5BE84000F34F90 /* CryptoAlgorithmAES_GCM.h */,
</ins><span class="cx">                                 E1FE1378184D21BB00892F13 /* CryptoAlgorithmAES_KW.cpp */,
</span><span class="cx">                                 E1FE1379184D21BB00892F13 /* CryptoAlgorithmAES_KW.h */,
</span><span class="cx">                                 E125F82F1822F11B00D84CD9 /* CryptoAlgorithmHMAC.cpp */,
</span><span class="lines">@@ -23575,9 +23591,11 @@
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="cx">                                 572093D11DDCEA4B00310AB0 /* AesCbcCfbParams.idl */,
</span><ins>+                                57B5F8071E5D19F200F34F90 /* AesGcmParams.idl */,
</ins><span class="cx">                                 577483101DADC49900716EF9 /* AesKeyGenParams.idl */,
</span><span class="cx">                                 572093D21DDCEB9A00310AB0 /* CryptoAlgorithmAesCbcCfbParams.h */,
</span><span class="cx">                                 E125F8391824104800D84CD9 /* CryptoAlgorithmAesCbcParamsDeprecated.h */,
</span><ins>+                                57B5F8081E5D1A9800F34F90 /* CryptoAlgorithmAesGcmParams.h */,
</ins><span class="cx">                                 577483111DADC55D00716EF9 /* CryptoAlgorithmAesKeyGenParams.h */,
</span><span class="cx">                                 E19AC3F61824E5D100349426 /* CryptoAlgorithmAesKeyGenParamsDeprecated.h */,
</span><span class="cx">                                 577483181DB4491F00716EF9 /* CryptoAlgorithmHmacKeyParams.h */,
</span><span class="lines">@@ -23753,6 +23771,8 @@
</span><span class="cx">                         children = (
</span><span class="cx">                                 5704405B1E53937900356601 /* JSAesCbcCfbParams.cpp */,
</span><span class="cx">                                 570440591E53936200356601 /* JSAesCbcCfbParams.h */,
</span><ins>+                                57B5F80A1E5D22DA00F34F90 /* JSAesGcmParams.cpp */,
+                                57B5F80B1E5D22DA00F34F90 /* JSAesGcmParams.h */,
</ins><span class="cx">                                 577483151DAEC32200716EF9 /* JSAesKeyGenParams.cpp */,
</span><span class="cx">                                 577483131DAEC2EA00716EF9 /* JSAesKeyGenParams.h */,
</span><span class="cx">                                 5739E1301DAC7FD100E14383 /* JSCryptoAlgorithmParameters.cpp */,
</span><span class="lines">@@ -25553,6 +25573,7 @@
</span><span class="cx">                                 BCE789861120E7A60060ECE5 /* BidiRun.h in Headers */,
</span><span class="cx">                                 A8C402931348B2220063F1E5 /* BidiRunList.h in Headers */,
</span><span class="cx">                                 FD31608D12B026F700C1A359 /* Biquad.h in Headers */,
</span><ins>+                                57B5F8091E5D1A9800F34F90 /* CryptoAlgorithmAesGcmParams.h in Headers */,
</ins><span class="cx">                                 FD31602512B0267600C1A359 /* BiquadDSPKernel.h in Headers */,
</span><span class="cx">                                 FDC54F051399B0DA008D9117 /* BiquadFilterNode.h in Headers */,
</span><span class="cx">                                 FD31602712B0267600C1A359 /* BiquadProcessor.h in Headers */,
</span><span class="lines">@@ -26426,6 +26447,7 @@
</span><span class="cx">                                 A871DB310A150BD600B12A68 /* HTMLTableRowElement.h in Headers */,
</span><span class="cx">                                 93442C9E0D2B335C00338FF9 /* HTMLTableRowsCollection.h in Headers */,
</span><span class="cx">                                 A871DB250A150BD600B12A68 /* HTMLTableSectionElement.h in Headers */,
</span><ins>+                                57B5F8101E5E2A4E00F34F90 /* JSAesGcmParams.h in Headers */,
</ins><span class="cx">                                 D66817FB166FE6D700FA07B4 /* HTMLTemplateElement.h in Headers */,
</span><span class="cx">                                 A81369D6097374F600D74463 /* HTMLTextAreaElement.h in Headers */,
</span><span class="cx">                                 9BC6C21B13CCC97B008E0337 /* HTMLTextFormControlElement.h in Headers */,
</span><span class="lines">@@ -27294,6 +27316,7 @@
</span><span class="cx">                                 E1271A580EEECDE400F61213 /* JSWorkerNavigator.h in Headers */,
</span><span class="cx">                                 7C4C96DD1AD4483500365A60 /* JSWritableStream.h in Headers */,
</span><span class="cx">                                 8358CB701C53277500E0C2D8 /* JSXMLDocument.h in Headers */,
</span><ins>+                                57B5F7F91E5BE84000F34F90 /* CryptoAlgorithmAES_GCM.h in Headers */,
</ins><span class="cx">                                 BC348BD40DB7F804004ABAB9 /* JSXMLHttpRequest.h in Headers */,
</span><span class="cx">                                 83D35AF21C718D9000F70D5A /* JSXMLHttpRequestEventTarget.h in Headers */,
</span><span class="cx">                                 F916C48E0DB510F80076CD83 /* JSXMLHttpRequestProgressEvent.h in Headers */,
</span><span class="lines">@@ -30870,6 +30893,7 @@
</span><span class="cx">                                 B658FFA11522EF3A00DD5595 /* JSRadioNodeList.cpp in Sources */,
</span><span class="cx">                                 65DF320109D1CC60000BE325 /* JSRange.cpp in Sources */,
</span><span class="cx">                                 6C4C96DE1AD4483500363F64 /* JSReadableByteStreamController.cpp in Sources */,
</span><ins>+                                57B5F80E1E5D2F2D00F34F90 /* CryptoAlgorithmAES_GCMMac.cpp in Sources */,
</ins><span class="cx">                                 7C4C96DC1AD4483500365A50 /* JSReadableStream.cpp in Sources */,
</span><span class="cx">                                 6C4C96DE1AD4483500365672 /* JSReadableStreamBYOBRequest.cpp in Sources */,
</span><span class="cx">                                 6C4C96DE1AD4483500365A50 /* JSReadableStreamDefaultController.cpp in Sources */,
</span><span class="lines">@@ -31340,6 +31364,7 @@
</span><span class="cx">                                 C9027F411B1D0AD200BFBFEF /* MediaSession.cpp in Sources */,
</span><span class="cx">                                 C96F5EC71B5872260091EA9D /* MediaSessionInterruptionProvider.cpp in Sources */,
</span><span class="cx">                                 C96F5EC61B5872260091EA9D /* MediaSessionInterruptionProviderMac.mm in Sources */,
</span><ins>+                                57B5F80F1E5E2A4B00F34F90 /* JSAesGcmParams.cpp in Sources */,
</ins><span class="cx">                                 C90F65551B2253B1002163A1 /* MediaSessionManager.cpp in Sources */,
</span><span class="cx">                                 CD669D681D23364B004D1866 /* MediaSessionManagerCocoa.cpp in Sources */,
</span><span class="cx">                                 07638A9A1884487200E15A1B /* MediaSessionManagerIOS.mm in Sources */,
</span><span class="lines">@@ -31515,6 +31540,7 @@
</span><span class="cx">                                 2D6E468417D660F500ECF8BB /* PDFDocumentImageMac.mm in Sources */,
</span><span class="cx">                                 41E408391DCB748900EFCE19 /* PeerConnectionBackend.cpp in Sources */,
</span><span class="cx">                                 8A7CC97012076F8A001D4588 /* PendingScript.cpp in Sources */,
</span><ins>+                                57B5F7F81E5BE84000F34F90 /* CryptoAlgorithmAES_GCM.cpp in Sources */,
</ins><span class="cx">                                 E526AF3F1727F8F200E41781 /* Performance.cpp in Sources */,
</span><span class="cx">                                 CB38FD4B1CCCF36600592A3F /* PerformanceEntry.cpp in Sources */,
</span><span class="cx">                                 AD5A0C241DECACC400707054 /* PerformanceLogging.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSSubtleCryptoCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -31,6 +31,7 @@
</span><span class="cx"> #include &quot;CryptoAlgorithm.h&quot;
</span><span class="cx"> #include &quot;CryptoAlgorithmRegistry.h&quot;
</span><span class="cx"> #include &quot;JSAesCbcCfbParams.h&quot;
</span><ins>+#include &quot;JSAesGcmParams.h&quot;
</ins><span class="cx"> #include &quot;JSAesKeyGenParams.h&quot;
</span><span class="cx"> #include &quot;JSCryptoAlgorithmParameters.h&quot;
</span><span class="cx"> #include &quot;JSCryptoKey.h&quot;
</span><span class="lines">@@ -120,6 +121,12 @@
</span><span class="cx">                 result = std::make_unique&lt;CryptoAlgorithmAesCbcCfbParams&gt;(params);
</span><span class="cx">                 break;
</span><span class="cx">             }
</span><ins>+            case CryptoAlgorithmIdentifier::AES_GCM: {
+                auto params = convertDictionary&lt;CryptoAlgorithmAesGcmParams&gt;(state, value);
+                RETURN_IF_EXCEPTION(scope, nullptr);
+                result = std::make_unique&lt;CryptoAlgorithmAesGcmParams&gt;(params);
+                break;
+            }
</ins><span class="cx">             default:
</span><span class="cx">                 throwNotSupportedError(state, scope);
</span><span class="cx">                 return nullptr;
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoCommonCryptoUtilitiesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/CommonCryptoUtilities.h (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CommonCryptoUtilities.h        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/Source/WebCore/crypto/CommonCryptoUtilities.h        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -32,6 +32,7 @@
</span><span class="cx"> #include &lt;wtf/Vector.h&gt;
</span><span class="cx"> 
</span><span class="cx"> #if USE(APPLE_INTERNAL_SDK)
</span><ins>+#include &lt;CommonCrypto/CommonCryptorSPI.h&gt;
</ins><span class="cx"> #include &lt;CommonCrypto/CommonRSACryptor.h&gt;
</span><span class="cx"> #include &lt;CommonCrypto/CommonRandomSPI.h&gt;
</span><span class="cx"> #endif
</span><span class="lines">@@ -81,7 +82,7 @@
</span><span class="cx"> extern &quot;C&quot; void CCRSACryptorRelease(CCRSACryptorRef key);
</span><span class="cx"> extern &quot;C&quot; CCCryptorStatus CCRSAGetKeyComponents(CCRSACryptorRef rsaKey, uint8_t *modulus, size_t *modulusLength, uint8_t *exponent, size_t *exponentLength, uint8_t *p, size_t *pLength, uint8_t *q, size_t *qLength);
</span><span class="cx"> extern &quot;C&quot; CCRSAKeyType CCRSAGetKeyType(CCRSACryptorRef key);
</span><del>-extern &quot;C&quot; CCCryptorStatus CCCryptorGCM(CCOperation op, CCAlgorithm alg, const void* key, size_t keyLength, const void* iv, size_t ivLen, const void* aData, size_t aDataLen, const void* dataIn, size_t dataInLength, void* dataOut, const void* tag, size_t* tagLength);
</del><ins>+extern &quot;C&quot; CCCryptorStatus CCCryptorGCM(CCOperation op, CCAlgorithm alg, const void* key, size_t keyLength, const void* iv, size_t ivLen, const void* aData, size_t aDataLen, const void* dataIn, size_t dataInLength, void* dataOut, void* tag, size_t* tagLength);
</ins><span class="cx"> extern &quot;C&quot; CCCryptorStatus CCRSACryptorImport(const void *keyPackage, size_t keyPackageLen, CCRSACryptorRef *key);
</span><span class="cx"> extern &quot;C&quot; CCCryptorStatus CCRSACryptorExport(CCRSACryptorRef key, void *out, size_t *outLen);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoCryptoAlgorithmParametersh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/CryptoAlgorithmParameters.h (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CryptoAlgorithmParameters.h        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/Source/WebCore/crypto/CryptoAlgorithmParameters.h        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -38,6 +38,7 @@
</span><span class="cx">     enum class Class {
</span><span class="cx">         None,
</span><span class="cx">         AesCbcCfbParams,
</span><ins>+        AesGcmParams,
</ins><span class="cx">         AesKeyGenParams,
</span><span class="cx">         HmacKeyParams,
</span><span class="cx">         RsaHashedKeyGenParams,
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmAES_GCMcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_GCM.cpp (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_GCM.cpp                                (rev 0)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_GCM.cpp        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,229 @@
</span><ins>+/*
+ * Copyright (C) 2017 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;CryptoAlgorithmAES_GCM.h&quot;
+
+#if ENABLE(SUBTLE_CRYPTO)
+
+#include &quot;CryptoAlgorithmAesGcmParams.h&quot;
+#include &quot;CryptoAlgorithmAesKeyGenParams.h&quot;
+#include &quot;CryptoKeyAES.h&quot;
+#include &quot;ExceptionCode.h&quot;
+
+namespace WebCore {
+
+static const char* const ALG128 = &quot;A128GCM&quot;;
+static const char* const ALG192 = &quot;A192GCM&quot;;
+static const char* const ALG256 = &quot;A256GCM&quot;;
+#if __WORDSIZE &gt;= 64
+static const uint64_t PlainTextMaxLength = 549755813632ULL; // 2^39 - 256
+#endif
+static const uint8_t DefaultTagLength = 128;
+static const uint8_t ValidTagLengths[] = { 32, 64, 96, 104, 112, 120, 128 };
+
+static inline bool usagesAreInvalidForCryptoAlgorithmAES_GCM(CryptoKeyUsageBitmap usages)
+{
+    return usages &amp; (CryptoKeyUsageSign | CryptoKeyUsageVerify | CryptoKeyUsageDeriveKey | CryptoKeyUsageDeriveBits);
+}
+
+static inline bool tagLengthIsValid(uint8_t tagLength)
+{
+    for (size_t i = 0; i &lt; sizeof(ValidTagLengths); i++) {
+        if (tagLength == ValidTagLengths[i])
+            return true;
+    }
+    return false;
+}
+
+Ref&lt;CryptoAlgorithm&gt; CryptoAlgorithmAES_GCM::create()
+{
+    return adoptRef(*new CryptoAlgorithmAES_GCM);
+}
+
+CryptoAlgorithmIdentifier CryptoAlgorithmAES_GCM::identifier() const
+{
+    return s_identifier;
+}
+
+void CryptoAlgorithmAES_GCM::encrypt(std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp; parameters, Ref&lt;CryptoKey&gt;&amp;&amp; key, Vector&lt;uint8_t&gt;&amp;&amp; plainText, VectorCallback&amp;&amp; callback, ExceptionCallback&amp;&amp; exceptionCallback, ScriptExecutionContext&amp; context, WorkQueue&amp; workQueue)
+{
+    ASSERT(parameters);
+    auto&amp; aesParameters = downcast&lt;CryptoAlgorithmAesGcmParams&gt;(*parameters);
+
+#if __WORDSIZE &gt;= 64
+    if (plainText.size() &gt; PlainTextMaxLength) {
+        exceptionCallback(OperationError);
+        return;
+    }
+    if (aesParameters.ivVector().size() &gt; UINT64_MAX) {
+        exceptionCallback(OperationError);
+        return;
+    }
+    if (aesParameters.additionalDataVector().size() &gt; UINT64_MAX) {
+        exceptionCallback(OperationError);
+        return;
+    }
+#endif
+
+    aesParameters.tagLength = aesParameters.tagLength ? aesParameters.tagLength : DefaultTagLength;
+    if (!tagLengthIsValid(*(aesParameters.tagLength))) {
+        exceptionCallback(OperationError);
+        return;
+    }
+
+    platformEncrypt(WTFMove(parameters), WTFMove(key), WTFMove(plainText), WTFMove(callback), WTFMove(exceptionCallback), context, workQueue);
+}
+
+void CryptoAlgorithmAES_GCM::decrypt(std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp; parameters, Ref&lt;CryptoKey&gt;&amp;&amp; key, Vector&lt;uint8_t&gt;&amp;&amp; cipherText, VectorCallback&amp;&amp; callback, ExceptionCallback&amp;&amp; exceptionCallback, ScriptExecutionContext&amp; context, WorkQueue&amp; workQueue)
+{
+    ASSERT(parameters);
+    auto&amp; aesParameters = downcast&lt;CryptoAlgorithmAesGcmParams&gt;(*parameters);
+
+    aesParameters.tagLength = aesParameters.tagLength ? aesParameters.tagLength : DefaultTagLength;
+    if (!tagLengthIsValid(*(aesParameters.tagLength))) {
+        exceptionCallback(OperationError);
+        return;
+    }
+    if (cipherText.size() &lt; *(aesParameters.tagLength) / 8) {
+        exceptionCallback(OperationError);
+        return;
+    }
+
+#if __WORDSIZE &gt;= 64
+    if (aesParameters.ivVector().size() &gt; UINT64_MAX) {
+        exceptionCallback(OperationError);
+        return;
+    }
+    if (aesParameters.additionalDataVector().size() &gt; UINT64_MAX) {
+        exceptionCallback(OperationError);
+        return;
+    }
+#endif
+
+    platformDecrypt(WTFMove(parameters), WTFMove(key), WTFMove(cipherText), WTFMove(callback), WTFMove(exceptionCallback), context, workQueue);
+}
+
+void CryptoAlgorithmAES_GCM::generateKey(const CryptoAlgorithmParameters&amp; parameters, bool extractable, CryptoKeyUsageBitmap usages, KeyOrKeyPairCallback&amp;&amp; callback, ExceptionCallback&amp;&amp; exceptionCallback, ScriptExecutionContext&amp;)
+{
+    const auto&amp; aesParameters = downcast&lt;CryptoAlgorithmAesKeyGenParams&gt;(parameters);
+
+    if (usagesAreInvalidForCryptoAlgorithmAES_GCM(usages)) {
+        exceptionCallback(SYNTAX_ERR);
+        return;
+    }
+
+    auto result = CryptoKeyAES::generate(CryptoAlgorithmIdentifier::AES_GCM, aesParameters.length, extractable, usages);
+    if (!result) {
+        exceptionCallback(OperationError);
+        return;
+    }
+
+    callback(WTFMove(result));
+}
+
+void CryptoAlgorithmAES_GCM::importKey(SubtleCrypto::KeyFormat format, KeyData&amp;&amp; data, const std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp; parameters, bool extractable, CryptoKeyUsageBitmap usages, KeyCallback&amp;&amp; callback, ExceptionCallback&amp;&amp; exceptionCallback)
+{
+    ASSERT(parameters);
+    if (usagesAreInvalidForCryptoAlgorithmAES_GCM(usages)) {
+        exceptionCallback(SYNTAX_ERR);
+        return;
+    }
+
+    RefPtr&lt;CryptoKeyAES&gt; result;
+    switch (format) {
+    case SubtleCrypto::KeyFormat::Raw:
+        result = CryptoKeyAES::importRaw(parameters-&gt;identifier, WTFMove(WTF::get&lt;Vector&lt;uint8_t&gt;&gt;(data)), extractable, usages);
+        break;
+    case SubtleCrypto::KeyFormat::Jwk: {
+        auto checkAlgCallback = [](size_t length, const String&amp; alg) -&gt; bool {
+            switch (length) {
+            case CryptoKeyAES::s_length128:
+                return alg.isNull() || alg == ALG128;
+            case CryptoKeyAES::s_length192:
+                return alg.isNull() || alg == ALG192;
+            case CryptoKeyAES::s_length256:
+                return alg.isNull() || alg == ALG256;
+            }
+            return false;
+        };
+        result = CryptoKeyAES::importJwk(parameters-&gt;identifier, WTFMove(WTF::get&lt;JsonWebKey&gt;(data)), extractable, usages, WTFMove(checkAlgCallback));
+        break;
+    }
+    default:
+        exceptionCallback(NOT_SUPPORTED_ERR);
+        return;
+    }
+    if (!result) {
+        exceptionCallback(DataError);
+        return;
+    }
+
+    callback(*result);
+}
+
+void CryptoAlgorithmAES_GCM::exportKey(SubtleCrypto::KeyFormat format, Ref&lt;CryptoKey&gt;&amp;&amp; key, KeyDataCallback&amp;&amp; callback, ExceptionCallback&amp;&amp; exceptionCallback)
+{
+    const auto&amp; aesKey = downcast&lt;CryptoKeyAES&gt;(key.get());
+
+    if (aesKey.key().isEmpty()) {
+        exceptionCallback(OperationError);
+        return;
+    }
+
+    KeyData result;
+    switch (format) {
+    case SubtleCrypto::KeyFormat::Raw:
+        result = Vector&lt;uint8_t&gt;(aesKey.key());
+        break;
+    case SubtleCrypto::KeyFormat::Jwk: {
+        JsonWebKey jwk = aesKey.exportJwk();
+        switch (aesKey.key().size() * 8) {
+        case CryptoKeyAES::s_length128:
+            jwk.alg = String(ALG128);
+            break;
+        case CryptoKeyAES::s_length192:
+            jwk.alg = String(ALG192);
+            break;
+        case CryptoKeyAES::s_length256:
+            jwk.alg = String(ALG256);
+            break;
+        default:
+            ASSERT_NOT_REACHED();
+        }
+        result = WTFMove(jwk);
+        break;
+    }
+    default:
+        exceptionCallback(NOT_SUPPORTED_ERR);
+        return;
+    }
+
+    callback(format, WTFMove(result));
+}
+
+}
+
+#endif // ENABLE(SUBTLE_CRYPTO)
</ins></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmAES_GCMh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_GCM.h (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_GCM.h                                (rev 0)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_GCM.h        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,58 @@
</span><ins>+/*
+ * Copyright (C) 2017 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;CryptoAlgorithm.h&quot;
+
+#if ENABLE(SUBTLE_CRYPTO)
+
+namespace WebCore {
+
+class CryptoKeyAES;
+
+class CryptoAlgorithmAES_GCM final : public CryptoAlgorithm {
+public:
+    static constexpr const char* s_name = &quot;AES-GCM&quot;;
+    static constexpr CryptoAlgorithmIdentifier s_identifier = CryptoAlgorithmIdentifier::AES_GCM;
+    static Ref&lt;CryptoAlgorithm&gt; create();
+
+private:
+    CryptoAlgorithmAES_GCM() = default;
+    CryptoAlgorithmIdentifier identifier() const final;
+
+    void encrypt(std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp;, Ref&lt;CryptoKey&gt;&amp;&amp;, Vector&lt;uint8_t&gt;&amp;&amp;, VectorCallback&amp;&amp;, ExceptionCallback&amp;&amp;, ScriptExecutionContext&amp;, WorkQueue&amp;) final;
+    void decrypt(std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp;, Ref&lt;CryptoKey&gt;&amp;&amp;, Vector&lt;uint8_t&gt;&amp;&amp;, VectorCallback&amp;&amp;, ExceptionCallback&amp;&amp;, ScriptExecutionContext&amp;, WorkQueue&amp;) final;
+    void generateKey(const CryptoAlgorithmParameters&amp;, bool extractable, CryptoKeyUsageBitmap, KeyOrKeyPairCallback&amp;&amp;, ExceptionCallback&amp;&amp;, ScriptExecutionContext&amp;) final;
+    void importKey(SubtleCrypto::KeyFormat, KeyData&amp;&amp;, const std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp;, bool extractable, CryptoKeyUsageBitmap, KeyCallback&amp;&amp;, ExceptionCallback&amp;&amp;) final;
+    void exportKey(SubtleCrypto::KeyFormat, Ref&lt;CryptoKey&gt;&amp;&amp;, KeyDataCallback&amp;&amp;, ExceptionCallback&amp;&amp;) final;
+
+    void platformEncrypt(std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp;, Ref&lt;CryptoKey&gt;&amp;&amp;, Vector&lt;uint8_t&gt;&amp;&amp;, VectorCallback&amp;&amp;, ExceptionCallback&amp;&amp;, ScriptExecutionContext&amp;, WorkQueue&amp;);
+    void platformDecrypt(std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp;, Ref&lt;CryptoKey&gt;&amp;&amp;, Vector&lt;uint8_t&gt;&amp;&amp;, VectorCallback&amp;&amp;, ExceptionCallback&amp;&amp;, ScriptExecutionContext&amp;, WorkQueue&amp;);
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(SUBTLE_CRYPTO)
</ins></span></pre></div>
<a id="trunkSourceWebCorecryptognutlsCryptoAlgorithmAES_GCMGnuTLScppfromrev213300trunkSourceWebCorecryptoCryptoAlgorithmParametersh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/crypto/gnutls/CryptoAlgorithmAES_GCMGnuTLS.cpp (from rev 213300, trunk/Source/WebCore/crypto/CryptoAlgorithmParameters.h) (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/gnutls/CryptoAlgorithmAES_GCMGnuTLS.cpp                                (rev 0)
+++ trunk/Source/WebCore/crypto/gnutls/CryptoAlgorithmAES_GCMGnuTLS.cpp        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,48 @@
</span><ins>+/*
+ * Copyright (C) 2017 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;CryptoAlgorithmAES_GCM.h&quot;
+
+#if ENABLE(SUBTLE_CRYPTO)
+
+#include &quot;ExceptionCode.h&quot;
+#include &quot;NotImplemented.h&quot;
+
+namespace WebCore {
+
+void CryptoAlgorithmAES_GCM::platformEncrypt(std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp;, Ref&lt;CryptoKey&gt;&amp;&amp;, Vector&lt;uint8_t&gt;&amp;&amp;, VectorCallback&amp;&amp;, ExceptionCallback&amp;&amp;, ScriptExecutionContext&amp;, WorkQueue&amp;)
+{
+    notImplemented();
+}
+
+void CryptoAlgorithmAES_GCM::platformDecrypt(std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp;, Ref&lt;CryptoKey&gt;&amp;&amp;, Vector&lt;uint8_t&gt;&amp;&amp;, VectorCallback&amp;&amp;, ExceptionCallback&amp;&amp;, ScriptExecutionContext&amp;, WorkQueue&amp;)
+{
+    notImplemented();
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(SUBTLE_CRYPTO)
</ins></span></pre></div>
<a id="trunkSourceWebCorecryptomacCryptoAlgorithmAES_GCMMaccpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/crypto/mac/CryptoAlgorithmAES_GCMMac.cpp (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/mac/CryptoAlgorithmAES_GCMMac.cpp                                (rev 0)
+++ trunk/Source/WebCore/crypto/mac/CryptoAlgorithmAES_GCMMac.cpp        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,118 @@
</span><ins>+/*
+ * Copyright (C) 2017 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;CryptoAlgorithmAES_GCM.h&quot;
+
+#if ENABLE(SUBTLE_CRYPTO)
+
+#include &quot;CommonCryptoUtilities.h&quot;
+#include &quot;CryptoAlgorithmAesGcmParams.h&quot;
+#include &quot;CryptoKeyAES.h&quot;
+#include &quot;ExceptionCode.h&quot;
+#include &quot;ScriptExecutionContext.h&quot;
+#include &lt;wtf/CryptographicUtilities.h&gt;
+
+namespace WebCore {
+
+static ExceptionOr&lt;Vector&lt;uint8_t&gt;&gt; encryptAES_GCM(const Vector&lt;uint8_t&gt;&amp; iv, const Vector&lt;uint8_t&gt;&amp; key, const Vector&lt;uint8_t&gt;&amp; plainText, const Vector&lt;uint8_t&gt;&amp; additionalData, size_t desiredTagLengthInBytes)
+{
+    Vector&lt;uint8_t&gt; cipherText(plainText.size()); // Per section 5.2.1.2: http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf
+    Vector&lt;uint8_t&gt; tag(desiredTagLengthInBytes);
+    // tagLength is actual an input &lt;rdar://problem/30660074&gt;
+    CCCryptorStatus status = CCCryptorGCM(kCCEncrypt, kCCAlgorithmAES, key.data(), key.size(), iv.data(), iv.size(), additionalData.data(), additionalData.size(), plainText.data(), plainText.size(), cipherText.data(), tag.data(), &amp;desiredTagLengthInBytes);     if (status)
+        return Exception { OperationError };
+
+    cipherText.append(tag.data(), desiredTagLengthInBytes);
+
+    return WTFMove(cipherText);
+}
+
+static ExceptionOr&lt;Vector&lt;uint8_t&gt;&gt; decyptAES_GCM(const Vector&lt;uint8_t&gt;&amp; iv, const Vector&lt;uint8_t&gt;&amp; key, const Vector&lt;uint8_t&gt;&amp; cipherText, const Vector&lt;uint8_t&gt;&amp; additionalData, size_t desiredTagLengthInBytes)
+{
+    Vector&lt;uint8_t&gt; plainText(cipherText.size() - desiredTagLengthInBytes); // Per section 5.2.1.2: http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf
+    Vector&lt;uint8_t&gt; tag(desiredTagLengthInBytes);
+    size_t offset = cipherText.size() - desiredTagLengthInBytes;
+    // tagLength is actual an input &lt;rdar://problem/30660074&gt;
+    CCCryptorStatus status = CCCryptorGCM(kCCDecrypt, kCCAlgorithmAES, key.data(), key.size(), iv.data(), iv.size(), additionalData.data(), additionalData.size(), cipherText.data(), offset, plainText.data(), tag.data(), &amp;desiredTagLengthInBytes);
+    if (status)
+        return Exception { OperationError };
+
+    // Using a constant time comparison to prevent timing attacks.
+    if (constantTimeMemcmp(tag.data(), cipherText.data() + offset, desiredTagLengthInBytes))
+        return Exception { OperationError };
+
+    return WTFMove(plainText);
+}
+
+void CryptoAlgorithmAES_GCM::platformEncrypt(std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp; parameters, Ref&lt;CryptoKey&gt;&amp;&amp; key, Vector&lt;uint8_t&gt;&amp;&amp; plainText, VectorCallback&amp;&amp; callback, ExceptionCallback&amp;&amp; exceptionCallback, ScriptExecutionContext&amp; context, WorkQueue&amp; workQueue)
+{
+    context.ref();
+    workQueue.dispatch([parameters = WTFMove(parameters), key = WTFMove(key), plainText = WTFMove(plainText), callback = WTFMove(callback), exceptionCallback = WTFMove(exceptionCallback), &amp;context]() mutable {
+        auto&amp; aesParameters = downcast&lt;CryptoAlgorithmAesGcmParams&gt;(*parameters);
+        auto&amp; aesKey = downcast&lt;CryptoKeyAES&gt;(key.get());
+        auto result = encryptAES_GCM(aesParameters.ivVector(), aesKey.key(), plainText, aesParameters.additionalDataVector(), *(aesParameters.tagLength) / 8);
+        if (result.hasException()) {
+            // We should only dereference callbacks after being back to the Document/Worker threads.
+            context.postTask([exceptionCallback = WTFMove(exceptionCallback), ec = result.releaseException().code(), callback = WTFMove(callback)](ScriptExecutionContext&amp; context) {
+                exceptionCallback(ec);
+                context.deref();
+            });
+            return;
+        }
+        // We should only dereference callbacks after being back to the Document/Worker threads.
+        context.postTask([callback = WTFMove(callback), result = result.releaseReturnValue(), exceptionCallback = WTFMove(exceptionCallback)](ScriptExecutionContext&amp; context) {
+            callback(result);
+            context.deref();
+        });
+    });
+}
+
+void CryptoAlgorithmAES_GCM::platformDecrypt(std::unique_ptr&lt;CryptoAlgorithmParameters&gt;&amp;&amp; parameters, Ref&lt;CryptoKey&gt;&amp;&amp; key, Vector&lt;uint8_t&gt;&amp;&amp; cipherText, VectorCallback&amp;&amp; callback, ExceptionCallback&amp;&amp; exceptionCallback, ScriptExecutionContext&amp; context, WorkQueue&amp; workQueue)
+{
+    context.ref();
+    workQueue.dispatch([parameters = WTFMove(parameters), key = WTFMove(key), cipherText = WTFMove(cipherText), callback = WTFMove(callback), exceptionCallback = WTFMove(exceptionCallback), &amp;context]() mutable {
+        auto&amp; aesParameters = downcast&lt;CryptoAlgorithmAesGcmParams&gt;(*parameters);
+        auto&amp; aesKey = downcast&lt;CryptoKeyAES&gt;(key.get());
+        auto result = decyptAES_GCM(aesParameters.ivVector(), aesKey.key(), cipherText, aesParameters.additionalDataVector(), *(aesParameters.tagLength) / 8);
+        if (result.hasException()) {
+            // We should only dereference callbacks after being back to the Document/Worker threads.
+            context.postTask([exceptionCallback = WTFMove(exceptionCallback), ec = result.releaseException().code(), callback = WTFMove(callback)](ScriptExecutionContext&amp; context) {
+                exceptionCallback(ec);
+                context.deref();
+            });
+            return;
+        }
+        // We should only dereference callbacks after being back to the Document/Worker threads.
+        context.postTask([callback = WTFMove(callback), result = result.releaseReturnValue(), exceptionCallback = WTFMove(exceptionCallback)](ScriptExecutionContext&amp; context) {
+            callback(result);
+            context.deref();
+        });
+    });
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(SUBTLE_CRYPTO)
</ins></span></pre></div>
<a id="trunkSourceWebCorecryptomacCryptoAlgorithmRegistryMaccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/mac/CryptoAlgorithmRegistryMac.cpp (213300 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/mac/CryptoAlgorithmRegistryMac.cpp        2017-03-02 21:23:07 UTC (rev 213300)
+++ trunk/Source/WebCore/crypto/mac/CryptoAlgorithmRegistryMac.cpp        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;CryptoAlgorithmAES_CBC.h&quot;
</span><span class="cx"> #include &quot;CryptoAlgorithmAES_CFB.h&quot;
</span><ins>+#include &quot;CryptoAlgorithmAES_GCM.h&quot;
</ins><span class="cx"> #include &quot;CryptoAlgorithmAES_KW.h&quot;
</span><span class="cx"> #include &quot;CryptoAlgorithmHMAC.h&quot;
</span><span class="cx"> #include &quot;CryptoAlgorithmRSAES_PKCS1_v1_5.h&quot;
</span><span class="lines">@@ -47,6 +48,7 @@
</span><span class="cx"> {
</span><span class="cx">     registerAlgorithm&lt;CryptoAlgorithmAES_CBC&gt;();
</span><span class="cx">     registerAlgorithm&lt;CryptoAlgorithmAES_CFB&gt;();
</span><ins>+    registerAlgorithm&lt;CryptoAlgorithmAES_GCM&gt;();
</ins><span class="cx">     registerAlgorithm&lt;CryptoAlgorithmAES_KW&gt;();
</span><span class="cx">     registerAlgorithm&lt;CryptoAlgorithmHMAC&gt;();
</span><span class="cx">     registerAlgorithm&lt;CryptoAlgorithmRSAES_PKCS1_v1_5&gt;();
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersAesGcmParamsidlfromrev213300trunkSourceWebCorecryptoCryptoAlgorithmParametersh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/crypto/parameters/AesGcmParams.idl (from rev 213300, trunk/Source/WebCore/crypto/CryptoAlgorithmParameters.h) (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/AesGcmParams.idl                                (rev 0)
+++ trunk/Source/WebCore/crypto/parameters/AesGcmParams.idl        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+/* Copyright (C) 2017 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=CryptoAlgorithmAesGcmParams
+] dictionary AesGcmParams : CryptoAlgorithmParameters {
+    // The initialization vector to use. May be up to 2^64-1 bytes long.
+    required BufferSource iv;
+    // The additional authentication data to include.
+    BufferSource additionalData;
+    // The desired length of the authentication tag. May be 0 - 128.
+    [EnforceRange] octet tagLength;
+};
</ins></span></pre></div>
<a id="trunkSourceWebCorecryptoparametersCryptoAlgorithmAesGcmParamsh"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesGcmParams.h (0 => 213301)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesGcmParams.h                                (rev 0)
+++ trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesGcmParams.h        2017-03-02 21:55:55 UTC (rev 213301)
</span><span class="lines">@@ -0,0 +1,78 @@
</span><ins>+/*
+ * Copyright (C) 2017 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;BufferSource.h&quot;
+#include &quot;CryptoAlgorithmParameters.h&quot;
+#include &lt;wtf/Vector.h&gt;
+
+#if ENABLE(SUBTLE_CRYPTO)
+
+namespace WebCore {
+
+class CryptoAlgorithmAesGcmParams final : public CryptoAlgorithmParameters {
+public:
+    BufferSource iv;
+    // Use additionalDataVector() instead of additionalData. The label will be gone once additionalDataVector() is called.
+    std::optional&lt;BufferSource::VariantType&gt; additionalData;
+    std::optional&lt;uint8_t&gt; tagLength;
+
+    Class parametersClass() const final { return Class::AesGcmParams; }
+
+    const Vector&lt;uint8_t&gt;&amp; ivVector()
+    {
+        if (!m_ivVector.isEmpty() || !iv.length())
+            return m_ivVector;
+
+        m_ivVector.append(iv.data(), iv.length());
+        return m_ivVector;
+    }
+
+    const Vector&lt;uint8_t&gt;&amp; additionalDataVector()
+    {
+        if (!m_additionalDataVector.isEmpty() || !additionalData)
+            return m_additionalDataVector;
+
+        m_additionalDataBuffer = WTFMove(*additionalData);
+        additionalData = std::nullopt;
+        if (!m_additionalDataBuffer.length())
+            return m_additionalDataVector;
+
+        m_additionalDataVector.append(m_additionalDataBuffer.data(), m_additionalDataBuffer.length());
+        return m_additionalDataVector;
+    }
+    
+private:
+    Vector&lt;uint8_t&gt; m_ivVector;
+    Vector&lt;uint8_t&gt; m_additionalDataVector;
+    BufferSource m_additionalDataBuffer;
+};
+
+} // namespace WebCore
+
+SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS(AesGcmParams)
+
+#endif // ENABLE(SUBTLE_CRYPTO)
</ins></span></pre>
</div>
</div>

</body>
</html>