<!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>[158578] 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/158578">158578</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2013-11-04 09:37:20 -0800 (Mon, 04 Nov 2013)</dd>
</dl>

<h3>Log Message</h3>
<pre>Unreviewed, rolling out <a href="http://trac.webkit.org/projects/webkit/changeset/158526">r158526</a>.
http://trac.webkit.org/changeset/158526
https://bugs.webkit.org/show_bug.cgi?id=123744

it broke the build (Requested by jessieberlin on #webkit).

Source/WebCore:

* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::createAesCbcParams):
(WebCore::createHmacParams):
(WebCore::createHmacKeyParams):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey):
* bindings/js/JSSubtleCryptoCustom.cpp:
* crypto/CryptoAlgorithmAesKeyGenParams.h: Removed.
* crypto/CryptoKey.cpp:
* crypto/CryptoKey.h:
* crypto/CryptoKeyAES.cpp:
* crypto/CryptoKeyAES.h:
* crypto/CryptoKeyMac.cpp: Removed.
* crypto/SubtleCrypto.idl:
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
* crypto/keys/CryptoKeyHMAC.cpp:
* crypto/keys/CryptoKeyHMAC.h:
* crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
(WebCore::CryptoAlgorithmAES_CBC::generateKey):
* crypto/mac/CryptoAlgorithmHMACMac.cpp:
(WebCore::CryptoAlgorithmHMAC::generateKey):

LayoutTests:

* crypto/subtle/aes-cbc-generate-key-expected.txt: Removed.
* crypto/subtle/aes-cbc-generate-key.html: Removed.
* crypto/subtle/hmac-generate-key-expected.txt: Removed.
* crypto/subtle/hmac-generate-key.html: Removed.
* crypto/subtle/sha-1-expected.txt:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestscryptosubtlesha1expectedtxt">trunk/LayoutTests/crypto/subtle/sha-1-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSCryptoAlgorithmDictionarycpp">trunk/Source/WebCore/bindings/js/JSCryptoAlgorithmDictionary.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSSubtleCryptoCustomcpp">trunk/Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoCryptoKeycpp">trunk/Source/WebCore/crypto/CryptoKey.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoCryptoKeyh">trunk/Source/WebCore/crypto/CryptoKey.h</a></li>
<li><a href="#trunkSourceWebCorecryptoCryptoKeyAEScpp">trunk/Source/WebCore/crypto/CryptoKeyAES.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoCryptoKeyAESh">trunk/Source/WebCore/crypto/CryptoKeyAES.h</a></li>
<li><a href="#trunkSourceWebCorecryptoSubtleCryptoidl">trunk/Source/WebCore/crypto/SubtleCrypto.idl</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmAES_CBCcpp">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmHMACcpp">trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptokeysCryptoKeyHMACcpp">trunk/Source/WebCore/crypto/keys/CryptoKeyHMAC.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptokeysCryptoKeyHMACh">trunk/Source/WebCore/crypto/keys/CryptoKeyHMAC.h</a></li>
<li><a href="#trunkSourceWebCorecryptomacCryptoAlgorithmAES_CBCMaccpp">trunk/Source/WebCore/crypto/mac/CryptoAlgorithmAES_CBCMac.cpp</a></li>
<li><a href="#trunkSourceWebCorecryptomacCryptoAlgorithmHMACMaccpp">trunk/Source/WebCore/crypto/mac/CryptoAlgorithmHMACMac.cpp</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestscryptosubtleaescbcgeneratekeyexpectedtxt">trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtleaescbcgeneratekeyhtml">trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key.html</a></li>
<li><a href="#trunkLayoutTestscryptosubtlehmacgeneratekeyexpectedtxt">trunk/LayoutTests/crypto/subtle/hmac-generate-key-expected.txt</a></li>
<li><a href="#trunkLayoutTestscryptosubtlehmacgeneratekeyhtml">trunk/LayoutTests/crypto/subtle/hmac-generate-key.html</a></li>
<li><a href="#trunkSourceWebCorecryptoCryptoAlgorithmAesKeyGenParamsh">trunk/Source/WebCore/crypto/CryptoAlgorithmAesKeyGenParams.h</a></li>
<li><a href="#trunkSourceWebCorecryptoCryptoKeyMaccpp">trunk/Source/WebCore/crypto/CryptoKeyMac.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/LayoutTests/ChangeLog        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2013-11-04  Commit Queue  &lt;commit-queue@webkit.org&gt;
+
+        Unreviewed, rolling out r158526.
+        http://trac.webkit.org/changeset/158526
+        https://bugs.webkit.org/show_bug.cgi?id=123744
+
+        it broke the build (Requested by jessieberlin on #webkit).
+
+        * crypto/subtle/aes-cbc-generate-key-expected.txt: Removed.
+        * crypto/subtle/aes-cbc-generate-key.html: Removed.
+        * crypto/subtle/hmac-generate-key-expected.txt: Removed.
+        * crypto/subtle/hmac-generate-key.html: Removed.
+        * crypto/subtle/sha-1-expected.txt:
+
</ins><span class="cx"> 2013-11-04  Robert Plociennik  &lt;r.plociennik@samsung.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [EFL] accessibility/textarea-line-for-index.html is failing
</span></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaescbcgeneratekeyexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-expected.txt (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-expected.txt        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key-expected.txt        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -1,19 +0,0 @@
</span><del>-Test generating an AES key using AES-CBC algorithm.
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-PASS crypto.subtle.generateKey(&quot;aes-cbc&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) threw exception TypeError: Type error.
-PASS crypto.subtle.generateKey({name: &quot;aes-cbc&quot;}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) threw exception TypeError: Type error.
-PASS crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: undefined}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) threw exception TypeError: Type error.
-PASS crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: {}}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]) threw exception TypeError: Type error.
-Generating a key...
-PASS key.type is 'secret'
-PASS key.extractable is true
-PASS key.algorithm.name is 'aes-cbc'
-PASS key.algorithm.length is 128
-PASS key.usages is ['encrypt', 'decrypt']
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="trunkLayoutTestscryptosubtleaescbcgeneratekeyhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key.html (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key.html        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/LayoutTests/crypto/subtle/aes-cbc-generate-key.html        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -1,42 +0,0 @@
</span><del>-&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 using AES-CBC algorithm.&quot;);
-
-jsTestIsAsync = true;
-
-if (!window.subtle)
-    window.crypto.subtle = window.crypto.webkitSubtle;
-
-var extractable = true;
-
-shouldThrow('crypto.subtle.generateKey(&quot;aes-cbc&quot;, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
-shouldThrow('crypto.subtle.generateKey({name: &quot;aes-cbc&quot;}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
-shouldThrow('crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: undefined}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
-shouldThrow('crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: {}}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;])');
-
-debug(&quot;Generating a key...&quot;);
-crypto.subtle.generateKey({name: &quot;aes-cbc&quot;, length: 128}, extractable, [&quot;encrypt&quot;, &quot;decrypt&quot;]).then(function(result) {
-    key = result;
-
-    shouldBe(&quot;key.type&quot;, &quot;'secret'&quot;);
-    shouldBe(&quot;key.extractable&quot;, &quot;true&quot;);
-    shouldBe(&quot;key.algorithm.name&quot;, &quot;'aes-cbc'&quot;);
-    shouldBe(&quot;key.algorithm.length&quot;, &quot;128&quot;);
-    shouldBe(&quot;key.usages&quot;, &quot;['encrypt', 'decrypt']&quot;);
-
-    finishJSTest();
-});
-&lt;/script&gt;
-
-&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestscryptosubtlehmacgeneratekeyexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/crypto/subtle/hmac-generate-key-expected.txt (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/hmac-generate-key-expected.txt        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/LayoutTests/crypto/subtle/hmac-generate-key-expected.txt        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -1,27 +0,0 @@
</span><del>-Test generating a HMAC key.
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-PASS crypto.subtle.generateKey(&quot;hmac&quot;, extractable, [&quot;sign&quot;, &quot;verify&quot;]) threw exception TypeError: Type error.
-PASS crypto.subtle.generateKey({name: &quot;hmac&quot;}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) threw exception Error: NotSupportedError: DOM Exception 9.
-PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, length: undefined}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) threw exception Error: NotSupportedError: DOM Exception 9.
-PASS crypto.subtle.generateKey({name: &quot;hmac&quot;, length: {}}, extractable, [&quot;sign&quot;, &quot;verify&quot;]) threw exception Error: NotSupportedError: DOM Exception 9.
-
-Generating a key with default length...
-PASS key.type is 'secret'
-PASS key.extractable is true
-PASS key.algorithm.name is 'hmac'
-PASS key.algorithm.length is 64
-PASS key.usages is [&quot;sign&quot;, &quot;verify&quot;]
-
-Generating a key with custom length...
-PASS key.type is 'secret'
-PASS key.extractable is true
-PASS key.algorithm.name is 'hmac'
-PASS key.algorithm.length is 5
-PASS key.usages is [&quot;sign&quot;]
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="trunkLayoutTestscryptosubtlehmacgeneratekeyhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/crypto/subtle/hmac-generate-key.html (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/hmac-generate-key.html        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/LayoutTests/crypto/subtle/hmac-generate-key.html        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -1,52 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;resources/common.js&quot;&gt;&lt;/script&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
-&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
-
-&lt;script&gt;
-description(&quot;Test generating a HMAC key.&quot;);
-
-jsTestIsAsync = true;
-
-if (!window.subtle)
-    window.crypto.subtle = window.crypto.webkitSubtle;
-
-var extractable = true;
-
-shouldThrow('crypto.subtle.generateKey(&quot;hmac&quot;, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
-shouldThrow('crypto.subtle.generateKey({name: &quot;hmac&quot;}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
-shouldThrow('crypto.subtle.generateKey({name: &quot;hmac&quot;, length: undefined}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
-shouldThrow('crypto.subtle.generateKey({name: &quot;hmac&quot;, length: {}}, extractable, [&quot;sign&quot;, &quot;verify&quot;])');
-
-debug(&quot;\nGenerating a key with default length...&quot;);
-crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;}, extractable, [&quot;sign&quot;, &quot;verify&quot;]).then(function(result) {
-    key = result;
-
-    shouldBe(&quot;key.type&quot;, &quot;'secret'&quot;);
-    shouldBe(&quot;key.extractable&quot;, &quot;true&quot;);
-    shouldBe(&quot;key.algorithm.name&quot;, &quot;'hmac'&quot;);
-    shouldBe(&quot;key.algorithm.length&quot;, &quot;64&quot;);
-    shouldBe(&quot;key.usages&quot;, '[&quot;sign&quot;, &quot;verify&quot;]');
-
-    debug(&quot;\nGenerating a key with custom length...&quot;);
-    return crypto.subtle.generateKey({name: &quot;hmac&quot;, hash: &quot;sha-1&quot;, length: 5}, extractable, [&quot;sign&quot;]);
-}).then(function(result) {
-    key = result;
-
-    shouldBe(&quot;key.type&quot;, &quot;'secret'&quot;);
-    shouldBe(&quot;key.extractable&quot;, &quot;true&quot;);
-    shouldBe(&quot;key.algorithm.name&quot;, &quot;'hmac'&quot;);
-    shouldBe(&quot;key.algorithm.length&quot;, &quot;5&quot;);
-    shouldBe(&quot;key.usages&quot;, '[&quot;sign&quot;]');
-    finishJSTest();
-});
-&lt;/script&gt;
-
-&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestscryptosubtlesha1expectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/crypto/subtle/sha-1-expected.txt (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/crypto/subtle/sha-1-expected.txt        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/LayoutTests/crypto/subtle/sha-1-expected.txt        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx">     = [2c 7e 7c 38 4f 78 29 69 42 82 b1 e3 a6 21 6d ef 80 82 d0 55]
</span><span class="cx"> SHA1 of [new Uint8Array([0, 1, 2, 3, 4]), new Uint8Array(5, 6, 7, 8, 9, 10])]
</span><span class="cx">     = [2c 7e 7c 38 4f 78 29 69 42 82 b1 e3 a6 21 6d ef 80 82 d0 55]
</span><del>-PASS crypto.subtle.generateKey('sha-1') threw exception Error: NotSupportedError: DOM Exception 9.
</del><ins>+PASS crypto.subtle.generateKey('sha-1') threw exception TypeError: undefined is not a function (evaluating 'crypto.subtle.generateKey('sha-1')').
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/Source/WebCore/ChangeLog        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -1,3 +1,34 @@
</span><ins>+2013-11-04  Commit Queue  &lt;commit-queue@webkit.org&gt;
+
+        Unreviewed, rolling out r158526.
+        http://trac.webkit.org/changeset/158526
+        https://bugs.webkit.org/show_bug.cgi?id=123744
+
+        it broke the build (Requested by jessieberlin on #webkit).
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/JSCryptoAlgorithmDictionary.cpp:
+        (WebCore::createAesCbcParams):
+        (WebCore::createHmacParams):
+        (WebCore::createHmacKeyParams):
+        (WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey):
+        * bindings/js/JSSubtleCryptoCustom.cpp:
+        * crypto/CryptoAlgorithmAesKeyGenParams.h: Removed.
+        * crypto/CryptoKey.cpp:
+        * crypto/CryptoKey.h:
+        * crypto/CryptoKeyAES.cpp:
+        * crypto/CryptoKeyAES.h:
+        * crypto/CryptoKeyMac.cpp: Removed.
+        * crypto/SubtleCrypto.idl:
+        * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
+        * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
+        * crypto/keys/CryptoKeyHMAC.cpp:
+        * crypto/keys/CryptoKeyHMAC.h:
+        * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
+        (WebCore::CryptoAlgorithmAES_CBC::generateKey):
+        * crypto/mac/CryptoAlgorithmHMACMac.cpp:
+        (WebCore::CryptoAlgorithmHMAC::generateKey):
+
</ins><span class="cx"> 2013-11-04  Przemyslaw Szymanski  &lt;p.szymanski3@samsung.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Texmap] Remove redundant calls in CoordinatedGraphicsScene
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -20176,7 +20176,6 @@
</span><span class="cx">                                 E19AC3DF1824DC6900349426 /* CryptoAlgorithmSHA256Mac.cpp */,
</span><span class="cx">                                 E19AC3E01824DC6900349426 /* CryptoAlgorithmSHA384Mac.cpp */,
</span><span class="cx">                                 E19AC3E11824DC6900349426 /* CryptoAlgorithmSHA512Mac.cpp */,
</span><del>-                                E19AC3F8182566F700349426 /* CryptoKeyMac.cpp */,
</del><span class="cx">                         );
</span><span class="cx">                         name = mac;
</span><span class="cx">                         sourceTree = &quot;&lt;group&gt;&quot;;
</span><span class="lines">@@ -20217,7 +20216,6 @@
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="cx">                                 E125F8391824104800D84CD9 /* CryptoAlgorithmAesCbcParams.h */,
</span><del>-                                E19AC3F61824E5D100349426 /* CryptoAlgorithmAesKeyGenParams.h */,
</del><span class="cx">                                 E19DA29B18189ADD00088BC8 /* CryptoAlgorithmHmacKeyParams.h */,
</span><span class="cx">                                 E1C6571E1816E50300256CDD /* CryptoAlgorithmHmacParams.h */,
</span><span class="cx">                         );
</span><span class="lines">@@ -23193,7 +23191,6 @@
</span><span class="cx">                                 D359D8BF129CA55C0006E5D2 /* JSHTMLDetailsElement.h in Headers */,
</span><span class="cx">                                 76808B50159DADFA002B5233 /* JSHTMLDialogElement.h in Headers */,
</span><span class="cx">                                 1A85B1E70A1B240500D8C87C /* JSHTMLDirectoryElement.h in Headers */,
</span><del>-                                E19AC3F71824E5D100349426 /* CryptoAlgorithmAesKeyGenParams.h in Headers */,
</del><span class="cx">                                 1A85B2B70A1B2AC700D8C87C /* JSHTMLDivElement.h in Headers */,
</span><span class="cx">                                 1A85B1E90A1B240500D8C87C /* JSHTMLDListElement.h in Headers */,
</span><span class="cx">                                 1A494E350A12358B00FDAFC1 /* JSHTMLDocument.h in Headers */,
</span><span class="lines">@@ -27012,7 +27009,6 @@
</span><span class="cx">                                 C6F0900E14327B6100685849 /* MutationObserver.cpp in Sources */,
</span><span class="cx">                                 E19AC3E51824DC6900349426 /* CryptoAlgorithmSHA512Mac.cpp in Sources */,
</span><span class="cx">                                 D6E528A3149A926D00EFE1F3 /* MutationObserverInterestGroup.cpp in Sources */,
</span><del>-                                E19AC3F9182566F700349426 /* CryptoKeyMac.cpp in Sources */,
</del><span class="cx">                                 D6E276AF14637455001D280A /* MutationObserverRegistration.cpp in Sources */,
</span><span class="cx">                                 C6F08FBC1430FE8F00685849 /* MutationRecord.cpp in Sources */,
</span><span class="cx">                                 52B6C9C515E3F4DF00690B05 /* NamedFlowCollection.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSCryptoAlgorithmDictionarycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSCryptoAlgorithmDictionary.cpp (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSCryptoAlgorithmDictionary.cpp        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/Source/WebCore/bindings/js/JSCryptoAlgorithmDictionary.cpp        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx"> #if ENABLE(SUBTLE_CRYPTO)
</span><span class="cx"> 
</span><span class="cx"> #include &quot;CryptoAlgorithmAesCbcParams.h&quot;
</span><del>-#include &quot;CryptoAlgorithmAesKeyGenParams.h&quot;
</del><span class="cx"> #include &quot;CryptoAlgorithmHmacKeyParams.h&quot;
</span><span class="cx"> #include &quot;CryptoAlgorithmHmacParams.h&quot;
</span><span class="cx"> #include &quot;CryptoAlgorithmRegistry.h&quot;
</span><span class="lines">@@ -127,7 +126,7 @@
</span><span class="cx">     if (exec-&gt;hadException())
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    auto result = std::make_unique&lt;CryptoAlgorithmAesCbcParams&gt;();
</del><ins>+    std::unique_ptr&lt;CryptoAlgorithmAesCbcParams&gt; result = std::make_unique&lt;CryptoAlgorithmAesCbcParams&gt;();
</ins><span class="cx"> 
</span><span class="cx">     CryptoOperationData ivData;
</span><span class="cx">     if (!cryptoOperationDataFromJSValue(exec, iv, ivData)) {
</span><span class="lines">@@ -145,24 +144,6 @@
</span><span class="cx">     return std::move(result);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static std::unique_ptr&lt;CryptoAlgorithmParameters&gt; createAesKeyGenParams(JSC::ExecState* exec, JSC::JSValue value)
-{
-    if (!value.isObject()) {
-        throwTypeError(exec);
-        return nullptr;
-    }
-
-    auto result = std::make_unique&lt;CryptoAlgorithmAesKeyGenParams&gt;();
-
-    JSValue lengthValue = getProperty(exec, value.getObject(), &quot;length&quot;);
-    if (exec-&gt;hadException())
-        return nullptr;
-
-    result-&gt;length = toUInt16(exec, lengthValue, EnforceRange);
-
-    return std::move(result);
-}
-
</del><span class="cx"> static std::unique_ptr&lt;CryptoAlgorithmParameters&gt; createHmacParams(JSC::ExecState* exec, JSC::JSValue value)
</span><span class="cx"> {
</span><span class="cx">     if (!value.isObject()) {
</span><span class="lines">@@ -171,7 +152,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     JSDictionary jsDictionary(exec, value.getObject());
</span><del>-    auto result = std::make_unique&lt;CryptoAlgorithmHmacParams&gt;();
</del><ins>+    std::unique_ptr&lt;CryptoAlgorithmHmacParams&gt; result = std::make_unique&lt;CryptoAlgorithmHmacParams&gt;();
</ins><span class="cx"> 
</span><span class="cx">     if (!getHashAlgorithm(jsDictionary, result-&gt;hash)) {
</span><span class="cx">         ASSERT(exec-&gt;hadException());
</span><span class="lines">@@ -189,7 +170,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     JSDictionary jsDictionary(exec, value.getObject());
</span><del>-    auto result = std::make_unique&lt;CryptoAlgorithmHmacKeyParams&gt;();
</del><ins>+    std::unique_ptr&lt;CryptoAlgorithmHmacKeyParams&gt; result = std::make_unique&lt;CryptoAlgorithmHmacKeyParams&gt;();
</ins><span class="cx"> 
</span><span class="cx">     if (!getHashAlgorithm(jsDictionary, result-&gt;hash)) {
</span><span class="cx">         ASSERT(exec-&gt;hadException());
</span><span class="lines">@@ -363,7 +344,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-std::unique_ptr&lt;CryptoAlgorithmParameters&gt; JSCryptoAlgorithmDictionary::createParametersForGenerateKey(JSC::ExecState* exec, CryptoAlgorithmIdentifier algorithm, JSC::JSValue value)
</del><ins>+std::unique_ptr&lt;CryptoAlgorithmParameters&gt; JSCryptoAlgorithmDictionary::createParametersForGenerateKey(JSC::ExecState* exec, CryptoAlgorithmIdentifier algorithm, JSC::JSValue)
</ins><span class="cx"> {
</span><span class="cx">     switch (algorithm) {
</span><span class="cx">     case CryptoAlgorithmIdentifier::RSAES_PKCS1_v1_5:
</span><span class="lines">@@ -372,16 +353,12 @@
</span><span class="cx">     case CryptoAlgorithmIdentifier::RSA_OAEP:
</span><span class="cx">     case CryptoAlgorithmIdentifier::ECDSA:
</span><span class="cx">     case CryptoAlgorithmIdentifier::ECDH:
</span><del>-        setDOMException(exec, NOT_SUPPORTED_ERR);
-        return nullptr;
</del><span class="cx">     case CryptoAlgorithmIdentifier::AES_CTR:
</span><span class="cx">     case CryptoAlgorithmIdentifier::AES_CBC:
</span><span class="cx">     case CryptoAlgorithmIdentifier::AES_CMAC:
</span><span class="cx">     case CryptoAlgorithmIdentifier::AES_GCM:
</span><span class="cx">     case CryptoAlgorithmIdentifier::AES_CFB:
</span><del>-        return createAesKeyGenParams(exec, value);
</del><span class="cx">     case CryptoAlgorithmIdentifier::HMAC:
</span><del>-        return createHmacKeyParams(exec, value);
</del><span class="cx">     case CryptoAlgorithmIdentifier::DH:
</span><span class="cx">     case CryptoAlgorithmIdentifier::SHA_1:
</span><span class="cx">     case CryptoAlgorithmIdentifier::SHA_224:
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSSubtleCryptoCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -337,51 +337,6 @@
</span><span class="cx">     return promise;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-JSValue JSSubtleCrypto::generateKey(JSC::ExecState* exec)
-{
-    if (exec-&gt;argumentCount() &lt; 1)
-        return exec-&gt;vm().throwException(exec, createNotEnoughArgumentsError(exec));
-
-    auto algorithm = createAlgorithmFromJSValue(exec, exec-&gt;uncheckedArgument(0));
-    if (!algorithm) {
-        ASSERT(exec-&gt;hadException());
-        return jsUndefined();
-    }
-
-    auto parameters = JSCryptoAlgorithmDictionary::createParametersForGenerateKey(exec, algorithm-&gt;identifier(), exec-&gt;uncheckedArgument(0));
-    if (!parameters) {
-        ASSERT(exec-&gt;hadException());
-        return jsUndefined();
-    }
-
-    bool extractable = false;
-    if (exec-&gt;argumentCount() &gt;= 2) {
-        extractable = exec-&gt;uncheckedArgument(1).toBoolean(exec);
-        if (exec-&gt;hadException())
-            return jsUndefined();
-    }
-
-    CryptoKeyUsage keyUsages = 0;
-    if (exec-&gt;argumentCount() &gt;= 3) {
-        if (!cryptoKeyUsagesFromJSValue(exec, exec-&gt;argument(2), keyUsages)) {
-            ASSERT(exec-&gt;hadException());
-            return jsUndefined();
-        }
-    }
-
-    JSPromise* promise = JSPromise::createWithResolver(exec-&gt;vm(), globalObject());
-    auto promiseWrapper = PromiseWrapper::create(globalObject(), promise);
-
-    ExceptionCode ec = 0;
-    algorithm-&gt;generateKey(*parameters, extractable, keyUsages, std::move(promiseWrapper), ec);
-    if (ec) {
-        setDOMException(exec, ec);
-        return jsUndefined();
-    }
-
-    return promise;
-}
-
</del><span class="cx"> JSValue JSSubtleCrypto::importKey(JSC::ExecState* exec)
</span><span class="cx"> {
</span><span class="cx">     if (exec-&gt;argumentCount() &lt; 3)
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoCryptoAlgorithmAesKeyGenParamsh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/crypto/CryptoAlgorithmAesKeyGenParams.h (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CryptoAlgorithmAesKeyGenParams.h        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/Source/WebCore/crypto/CryptoAlgorithmAesKeyGenParams.h        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -1,44 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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.
- */
-
-#ifndef CryptoAlgorithmAesKeyGenParams_h
-#define CryptoAlgorithmAesKeyGenParams_h
-
-#include &quot;CryptoAlgorithmParameters.h&quot;
-
-#if ENABLE(SUBTLE_CRYPTO)
-
-namespace WebCore {
-
-class CryptoAlgorithmAesKeyGenParams FINAL : public CryptoAlgorithmParameters {
-public:
-    // The length, in bits, of the key.
-    unsigned length;
-};
-
-}
-
-#endif // ENABLE(SUBTLE_CRYPTO)
-#endif // CryptoAlgorithmAesKeyGenParams_h
</del></span></pre></div>
<a id="trunkSourceWebCorecryptoCryptoKeycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/CryptoKey.cpp (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CryptoKey.cpp        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/Source/WebCore/crypto/CryptoKey.cpp        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -30,7 +30,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;CryptoAlgorithmDescriptionBuilder.h&quot;
</span><span class="cx"> #include &quot;CryptoAlgorithmRegistry.h&quot;
</span><del>-#include &lt;wtf/CryptographicallyRandomNumber.h&gt;
</del><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -88,14 +87,6 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-#if !PLATFORM(MAC)
-Vector&lt;char&gt; CryptoKey::randomData(size_t size)
-{
-    Vector&lt;char&gt; result(size);
-    cryptographicallyRandomValues(result.data(), result.size());
-    return result;
-}
-#endif
</del><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(SUBTLE_CRYPTO)
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoCryptoKeyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/CryptoKey.h (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CryptoKey.h        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/Source/WebCore/crypto/CryptoKey.h        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -58,8 +58,6 @@
</span><span class="cx"> 
</span><span class="cx">     bool allows(CryptoKeyUsage usage) const { return usage == (m_usages &amp; usage); }
</span><span class="cx"> 
</span><del>-    static Vector&lt;char&gt; randomData(size_t);
-
</del><span class="cx"> private:
</span><span class="cx">     CryptoAlgorithmIdentifier m_algorithm;
</span><span class="cx">     CryptoKeyType m_type;
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoCryptoKeyAEScpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/CryptoKeyAES.cpp (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CryptoKeyAES.cpp        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/Source/WebCore/crypto/CryptoKeyAES.cpp        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -49,13 +49,6 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;CryptoKeyAES&gt; CryptoKeyAES::generate(CryptoAlgorithmIdentifier algorithm, size_t lengthBits, bool extractable, CryptoKeyUsage usages)
-{
-    if (lengthBits % 8)
-        return nullptr;
-    return adoptRef(new CryptoKeyAES(algorithm, randomData(lengthBits / 8), extractable, usages));
-}
-
</del><span class="cx"> void CryptoKeyAES::buildAlgorithmDescription(CryptoAlgorithmDescriptionBuilder&amp; builder) const
</span><span class="cx"> {
</span><span class="cx">     CryptoKey::buildAlgorithmDescription(builder);
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoCryptoKeyAESh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/CryptoKeyAES.h (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CryptoKeyAES.h        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/Source/WebCore/crypto/CryptoKeyAES.h        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -42,8 +42,6 @@
</span><span class="cx">     }
</span><span class="cx">     virtual ~CryptoKeyAES();
</span><span class="cx"> 
</span><del>-    static PassRefPtr&lt;CryptoKeyAES&gt; generate(CryptoAlgorithmIdentifier, size_t lengthBits, bool extractable, CryptoKeyUsage);
-
</del><span class="cx">     virtual CryptoKeyClass keyClass() const OVERRIDE { return CryptoKeyClass::AES; }
</span><span class="cx"> 
</span><span class="cx">     const Vector&lt;char&gt;&amp; key() const { return m_key; }
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoCryptoKeyMaccpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/crypto/CryptoKeyMac.cpp (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/CryptoKeyMac.cpp        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/Source/WebCore/crypto/CryptoKeyMac.cpp        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -1,52 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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;CryptoKey.h&quot;
-
-#if ENABLE(SUBTLE_CRYPTO)
-
-#ifdef __has_include
-#if __has_include(&lt;CommonCrypto/CommonRandomSPI.h&gt;)
-#include &lt;CommonCrypto/CommonRandomSPI.h&gt;
-#endif
-#endif
-
-typedef struct __CCRandom *CCRandomRef;
-extern const CCRandomRef kCCRandomDefault;
-extern &quot;C&quot; int CCRandomCopyBytes(CCRandomRef rnd, void *bytes, size_t count);
-
-namespace WebCore {
-
-Vector&lt;char&gt; CryptoKey::randomData(size_t size)
-{
-    Vector&lt;char&gt; result(size);
-    CCRandomCopyBytes(kCCRandomDefault, result.data(), result.size());
-    return result;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(SUBTLE_CRYPTO)
</del></span></pre></div>
<a id="trunkSourceWebCorecryptoSubtleCryptoidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/SubtleCrypto.idl (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/SubtleCrypto.idl        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/Source/WebCore/crypto/SubtleCrypto.idl        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -35,6 +35,5 @@
</span><span class="cx">     [Custom] Promise sign(AlgorithmIdentifier algorithm, Key key, sequence&lt;CryptoOperationData&gt; data);
</span><span class="cx">     [Custom] Promise verify(AlgorithmIdentifier algorithm, Key key, CryptoOperationData signature, sequence&lt;CryptoOperationData&gt; data);
</span><span class="cx">     [Custom] Promise digest(AlgorithmIdentifier algorithm, sequence&lt;CryptoOperationData&gt; data);
</span><del>-    [Custom] Promise generateKey(AlgorithmIdentifier algorithm, optional boolean extractable, optional KeyUsage[] keyUsages);
</del><span class="cx">     [Custom] Promise importKey(KeyFormat format, CryptoOperationData keyData, AlgorithmIdentifier? algorithm, optional boolean extractable, optional KeyUsage[] keyUsages);
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmAES_CBCcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.cpp        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -28,7 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SUBTLE_CRYPTO)
</span><span class="cx"> 
</span><del>-#include &quot;CryptoAlgorithmAesKeyGenParams.h&quot;
</del><ins>+#include &quot;CryptoAlgorithmAesCbcParams.h&quot;
</ins><span class="cx"> #include &quot;CryptoKeyAES.h&quot;
</span><span class="cx"> #include &quot;ExceptionCode.h&quot;
</span><span class="cx"> #include &quot;JSDOMPromise.h&quot;
</span><span class="lines">@@ -55,19 +55,6 @@
</span><span class="cx">     return s_identifier;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CryptoAlgorithmAES_CBC::generateKey(const CryptoAlgorithmParameters&amp; parameters, bool extractable, CryptoKeyUsage usages, std::unique_ptr&lt;PromiseWrapper&gt; promise, ExceptionCode&amp;)
-{
-    const CryptoAlgorithmAesKeyGenParams&amp; aesParameters = static_cast&lt;const CryptoAlgorithmAesKeyGenParams&amp;&gt;(parameters);
-
-    RefPtr&lt;CryptoKeyAES&gt; result = CryptoKeyAES::generate(CryptoAlgorithmIdentifier::AES_CBC, aesParameters.length, extractable, usages);
-    if (!result) {
-        promise-&gt;reject(nullptr);
-        return;
-    }
-
-    promise-&gt;fulfill(result.release());
-}
-
</del><span class="cx"> void CryptoAlgorithmAES_CBC::importKey(const CryptoAlgorithmParameters&amp;, CryptoKeyFormat format, const CryptoOperationData&amp; data, bool extractable, CryptoKeyUsage usage, std::unique_ptr&lt;PromiseWrapper&gt; promise, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><span class="cx">     if (format != CryptoKeyFormat::Raw) {
</span></span></pre></div>
<a id="trunkSourceWebCorecryptoalgorithmsCryptoAlgorithmHMACcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.cpp (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.cpp        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.cpp        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SUBTLE_CRYPTO)
</span><span class="cx"> 
</span><del>-#include &quot;CryptoAlgorithmHmacKeyParams.h&quot;
</del><span class="cx"> #include &quot;CryptoAlgorithmHmacParams.h&quot;
</span><span class="cx"> #include &quot;CryptoKeyHMAC.h&quot;
</span><span class="cx"> #include &quot;ExceptionCode.h&quot;
</span><span class="lines">@@ -56,19 +55,6 @@
</span><span class="cx">     return s_identifier;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CryptoAlgorithmHMAC::generateKey(const CryptoAlgorithmParameters&amp; parameters, bool extractable, CryptoKeyUsage usages, std::unique_ptr&lt;PromiseWrapper&gt; promise, ExceptionCode&amp;)
-{
-    const CryptoAlgorithmHmacKeyParams&amp; hmacParameters = static_cast&lt;const CryptoAlgorithmHmacKeyParams&amp;&gt;(parameters);
-
-    RefPtr&lt;CryptoKeyHMAC&gt; result = CryptoKeyHMAC::generate(hmacParameters.hasLength ? hmacParameters.length : 0, hmacParameters.hash, extractable, usages);
-    if (!result) {
-        promise-&gt;reject(nullptr);
-        return;
-    }
-
-    promise-&gt;fulfill(result.release());
-}
-
</del><span class="cx"> void CryptoAlgorithmHMAC::importKey(const CryptoAlgorithmParameters&amp; parameters, CryptoKeyFormat format, const CryptoOperationData&amp; data, bool extractable, CryptoKeyUsage usage, std::unique_ptr&lt;PromiseWrapper&gt; promise, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><span class="cx">     if (format != CryptoKeyFormat::Raw) {
</span></span></pre></div>
<a id="trunkSourceWebCorecryptokeysCryptoKeyHMACcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/keys/CryptoKeyHMAC.cpp (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/keys/CryptoKeyHMAC.cpp        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/Source/WebCore/crypto/keys/CryptoKeyHMAC.cpp        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -45,27 +45,6 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;CryptoKeyHMAC&gt; CryptoKeyHMAC::generate(size_t lengthBytes, CryptoAlgorithmIdentifier hash, bool extractable, CryptoKeyUsage usages)
-{
-    if (!lengthBytes) {
-        switch (hash) {
-        case CryptoAlgorithmIdentifier::SHA_1:
-        case CryptoAlgorithmIdentifier::SHA_224:
-        case CryptoAlgorithmIdentifier::SHA_256:
-            lengthBytes = 64;
-            break;
-        case CryptoAlgorithmIdentifier::SHA_384:
-        case CryptoAlgorithmIdentifier::SHA_512:
-            lengthBytes = 128;
-            break;
-        default:
-            return nullptr;
-        }
-    }
-
-    return adoptRef(new CryptoKeyHMAC(randomData(lengthBytes), hash, extractable, usages));
-}
-
</del><span class="cx"> void CryptoKeyHMAC::buildAlgorithmDescription(CryptoAlgorithmDescriptionBuilder&amp; builder) const
</span><span class="cx"> {
</span><span class="cx">     CryptoKey::buildAlgorithmDescription(builder);
</span></span></pre></div>
<a id="trunkSourceWebCorecryptokeysCryptoKeyHMACh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/keys/CryptoKeyHMAC.h (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/keys/CryptoKeyHMAC.h        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/Source/WebCore/crypto/keys/CryptoKeyHMAC.h        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -41,9 +41,6 @@
</span><span class="cx">     }
</span><span class="cx">     virtual ~CryptoKeyHMAC();
</span><span class="cx"> 
</span><del>-    // If lengthBytes is 0, a recommended length is used, which is the size of the associated hash function's block size.
-    static PassRefPtr&lt;CryptoKeyHMAC&gt; generate(size_t lengthBytes, CryptoAlgorithmIdentifier hash, bool extractable, CryptoKeyUsage);
-
</del><span class="cx">     virtual CryptoKeyClass keyClass() const OVERRIDE { return CryptoKeyClass::HMAC; }
</span><span class="cx"> 
</span><span class="cx">     const Vector&lt;char&gt;&amp; key() const { return m_key; }
</span></span></pre></div>
<a id="trunkSourceWebCorecryptomacCryptoAlgorithmAES_CBCMaccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/mac/CryptoAlgorithmAES_CBCMac.cpp (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/mac/CryptoAlgorithmAES_CBCMac.cpp        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/Source/WebCore/crypto/mac/CryptoAlgorithmAES_CBCMac.cpp        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -115,6 +115,12 @@
</span><span class="cx">     transformAES_CBC(kCCDecrypt, aesCBCParameters, *aesKey, data, std::move(promise));
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void CryptoAlgorithmAES_CBC::generateKey(const CryptoAlgorithmParameters&amp;, bool /*extractable*/, CryptoKeyUsage, std::unique_ptr&lt;PromiseWrapper&gt;, ExceptionCode&amp; ec)
+{
+    // Not yet implemented.
+    ec = NOT_SUPPORTED_ERR;
+}
+
</ins><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(SUBTLE_CRYPTO)
</span></span></pre></div>
<a id="trunkSourceWebCorecryptomacCryptoAlgorithmHMACMaccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/crypto/mac/CryptoAlgorithmHMACMac.cpp (158577 => 158578)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/crypto/mac/CryptoAlgorithmHMACMac.cpp        2013-11-04 16:08:49 UTC (rev 158577)
+++ trunk/Source/WebCore/crypto/mac/CryptoAlgorithmHMACMac.cpp        2013-11-04 17:37:20 UTC (rev 158578)
</span><span class="lines">@@ -136,6 +136,13 @@
</span><span class="cx">     promise-&gt;fulfill(result);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void CryptoAlgorithmHMAC::generateKey(const CryptoAlgorithmParameters&amp;, bool /*extractable*/, CryptoKeyUsage, std::unique_ptr&lt;PromiseWrapper&gt;, ExceptionCode&amp; ec)
+{
+    // Not yet implemented.
+    ec = NOT_SUPPORTED_ERR;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+
+}
+
</ins><span class="cx"> #endif // ENABLE(SUBTLE_CRYPTO)
</span></span></pre>
</div>
</div>

</body>
</html>