--- a/spec/Overview-WebCryptoAPI.xml Mon Dec 17 18:06:32 2012 -0800
+++ b/spec/Overview-WebCryptoAPI.xml Mon Dec 17 19:59:49 2012 -0800
@@ -76,15 +76,13 @@
<div class='section'>
<h2>Status of this Document</h2>
+ <?sotd-top public-webcrypto-comments@w3.org http://lists.w3.org/Archives/Public/public-webcrypto-comments/ ?>
+
<p>
- <em>
- This section describes the status of this document at the time of its publication.
- Other documents may supersede this document. A list of current W3C publications and
- the most recently formally published revision of this technical report can be found
- in the <a href="http://www.w3.org/TR/">W3C technical reports index</a> at
- http://www.w3.org/TR/.
- </em>
+ This document is produced by the <a href="http://www.w3.org/2012/webcrypto">Web Cryptography
+ <acronym title="Working Group">WG</acronym></a> of the <acronym title="World Wide Web Consortium">W3C</acronym>.
</p>
+
<p class="XXX">
Implementors should be aware that this specification is not stable.
<strong>Implementors who are not taking part in the discussions are likely to find the
@@ -104,12 +102,6 @@
<li>potential missing functionalities to deploy secure web applications.</li>
</ul>
<p>
- This is the W3C Editor's Draft of the Web Cryptography API. Please send comments to
- <a href="mailto:public-webcrypto-comments@w3.org">public-webcrypto-comments@w3.org</a>
- (<a href="http://lists.w3.org/Archives/Public/public-webcrypto-comments">archived</a>).
- This is an unfinished <strong>work in progress</strong>.
- </p>
- <p>
Previous discussion of this specification has taken place on three other
mailing lists: <a href="mailto:whatwg@whatwg.org">whatwg@whatwg.org</a>
@@ -120,20 +112,8 @@
Ongoing discussion will be on the <a href="mailto:public-webcrypto@w3.org">public-webcrypto@w3.org</a>
mailing list.
</p>
- <p>
- <em>This section describes the status of this document at the time of its publication.
- Other documents may supersede this document, since it is only an editor's draft.
- A list of current <acronym title="World Wide Web Consortium">W3C</acronym>
- publications and the latest revision of this technical report can be found in the
- <a href="http://www.w3.org/TR/"><acronym title="World Wide Web Consortium">W3C</acronym>
- technical reports index</a> at <a href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>.</em>
- </p>
<p>
- This document is produced by the <a href="http://www.w3.org/2012/webcrypto">Web Cryptography
- <acronym title="Working Group">WG</acronym></a> of the <acronym title="World Wide Web Consortium">W3C</acronym>.
- </p>
- <p>
Web content and browser developers are encouraged to review this draft. Please send comments to
<a href="mailto:public-webcrypto-comments@w3.org">public-webcrypto-comments@w3.org</a>,
the <acronym title="World Wide Web Consortium">W3C</acronym>'s public email list for issues related
@@ -146,7 +126,8 @@
Changes made to this document can be found in the
<a href='https://dvcs.w3.org/hg/webcrypto-api/file/tip/spec/'>W3C public Mercurial server</a>.
</p>
- <?sotd-bottom http://www.w3.org/2004/01/pp-impl/42538/status?>
+
+ <?sotd-bottom http://www.w3.org/2004/01/pp-impl/54174/status?>
</div>
<div id='toc'>
@@ -810,13 +791,13 @@
<div id="key-interface-clone" class="section">
<h3>Structured clone algorithm</h3>
<p>
- When a user agent is required to obtain a <a href="#dfn-structured-clone">structured clone</a>
+ When a user agent is required to obtain a <a href="#structured-clone">structured clone</a>
of a <a href="#dfn-Key">Key</a> object, it must run the following steps.
</p>
<ol>
<li>
Let <var>input</var> and <var>memory</var> be the corresponding inputs defined
- by the <a href="#dfn-structured-clone">internal structured cloning algorithm</a>,
+ by the <a href="#structured-clone">internal structured cloning algorithm</a>,
where <var>input</var> represents a <a href="#dfn-Key">Key</a> object to be cloned.
</li>
<li>Let <var>output</var> be a newly constructed <a href="#dfn-Key">Key</a> object.</li>
@@ -852,8 +833,8 @@
<div id="cryptooperation-interface" class="section">
<h2>CryptoOperation interface</h2>
<x:codeblock language="idl">
-interface <dfn id="dfn-CryptoOperation">CryptoOperation</dfn> : <a href="#dfn-EventTarget">EventTarget</a> {
- void <a href="#dfn-CryptoOperation-method-process">process</a>(<a href="#dfn-ArrayBuffer">ArrayBufferView</a> buffer);
+interface <dfn id="dfn-CryptoOperation">CryptoOperation</dfn> : EventTarget {
+ void <a href="#dfn-CryptoOperation-method-process">process</a>(ArrayBufferView buffer);
void <a href="#dfn-CryptoOperation-method-finish">finish</a>();
void <a href="#dfn-CryptoOperation-method-abort">abort</a>();
@@ -1148,19 +1129,19 @@
<tbody>
<tr>
<td><dfn id="dfn-CryptoOperation-onabort">onabort</dfn></td>
- <td><a href="#dfn-onabort-event">abort</a></td>
+ <td>abort</td>
</tr>
<tr>
<td><dfn id="dfn-CryptoOperation-onerror">onerror</dfn></td>
- <td><a href="#dfn-onerror-event">error</a></td>
+ <td>error</td>
</tr>
<tr>
<td><dfn id="dfn-CryptoOperation-onprogress">onprogress</dfn></td>
- <td><a href="#dfn-onprogress-event">progress</a></td>
+ <td>progress</td>
</tr>
<tr>
<td><dfn id="dfn-CryptoOperation-oncomplete">oncomplete</dfn></td>
- <td><a href="#dfn-oncomplete-event">complete</a></td>
+ <td>complete</td>
</tr>
</tbody>
</table>
@@ -1304,7 +1285,7 @@
<li>
<a href="#queue-a-task">Queue a task</a> to
<a href="#fire-a-simple-event">fire a simple event</a> called
- <a href="#dfn-onabort-event"><code>onabort</code></a> at the
+ <a href="#dfn-CryptoOperation-onabort"><code>onabort</code></a> at the
<a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a>.
</li>
</ol>
@@ -1323,10 +1304,10 @@
<h2>KeyOperation interface</h2>
<x:codeblock language="idl">
interface <dfn id="dfn-KeyOperation">KeyOperation</dfn> : EventTarget {
- readonly attribute any result;
+ readonly attribute any <dfn id="dfn-KeyOperation-result">result</dfn>;
- [TreatNonCallableAsNull] attribute Function? onerror;
- [TreatNonCallableAsNull] attribute Function? oncomplete;
+ [TreatNonCallableAsNull] attribute Function? <dfn id="dfn-KeyOperation-onerror">onerror</dfn>;
+ [TreatNonCallableAsNull] attribute Function? <dfn id="dfn-KeyOperation-oncomplete">oncomplete</dfn>;
};
</x:codeblock>
</div>
@@ -1345,7 +1326,7 @@
"jwk",
};
-interface <dfn id="dfn-crypto">Crypto</dfn> {
+interface <dfn id="dfn-Crypto">Crypto</dfn> {
<a href="#dfn-CryptoOperation">CryptoOperation</a> <a href="#dfn-Crypto-method-encrypt">encrypt</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm,
<a href="#dfn-Key">Key</a> key,
optional ArrayBufferView? buffer = null);
@@ -2124,11 +2105,11 @@
</div>
<div id="Crypto-method-importKey" class="section">
- <h4>The importKey method</h4>
+ <h4>The <dfn id="dfn-Crypto-method-importKey">importKey</dfn> method</h4>
<p></p>
</div>
<div id="Crypto-method-exportKey" class="section">
- <h4>The exportKey method</h4>
+ <h4>The <dfn id="dfn-Crypto-method-exportKey">exportKey</dfn> method</h4>
<p></p>
</div>
@@ -2138,7 +2119,7 @@
<div id="WorkerCrypto-interface" class="section">
<h2>WorkerCrypto interface</h2>
<x:codeblock language="idl">
-interface WorkerCrypto {
+interface <dfn id="dfn-WorkerCrypto">WorkerCrypto</dfn> {
};
<a href="#dfn-WorkerCrypto">WorkerCrypto</a> implements <a href="#dfn-RandomSource">RandomSource</a>;
@@ -2251,13 +2232,13 @@
<p>
However, in order to promote interoperability for developers, there are a number of
recommended algorithms. The recommended algorithms are:
- <ul>
- <li><a href="#hmac">HMAC</a> using <a href="#alg-sha-256">SHA-256</a></li>
- <li><a href="#rsassa-pkcs1">RSASSA-PKCS1-v1_5</a> using <a href="#alg-sha-256">SHA-256</a></li>
- <li><a href="#ecdsa">ECDSA</a> using <a href="#dfn-NamedCurve-p256">P-256</a> curve and <a href="#alg-sha-256">SHA-256</a></li>
- <li><a href="#aes-cbc">AES-CBC</a></li>
- </ul>
</p>
+ <ul>
+ <li><a href="#hmac">HMAC</a> using <a href="#alg-sha-256">SHA-256</a></li>
+ <li><a href="#rsassa-pkcs1">RSASSA-PKCS1-v1_5</a> using <a href="#alg-sha-256">SHA-256</a></li>
+ <li><a href="#ecdsa">ECDSA</a> using <a href="#dfn-NamedCurve-p256">P-256</a> curve and <a href="#alg-sha-256">SHA-256</a></li>
+ <li><a href="#aes-cbc">AES-CBC</a></li>
+ </ul>
<p>To see the results of test-cases between implementations, please see the [@@Upcoming]
Web Cryptography Test Cases Working Group.
</p>
@@ -2310,8 +2291,7 @@
Each registered algorithm <span class="RFC2119">MUST</span> define the contents
of the <a href="#dfn-CryptoOperation-result"><code>result</code></a> attribute of the
<a href="#dfn-CryptoOperation">CryptoOperation</a> object for every
- <a href="#supported-operations">supported operation</a> and for every
- <a href="#CryptoOperation-states"><code>state</code></a>.
+ <a href="#supported-operations">supported operation</a>.
</p>
</div>
<div id="algorithm-alias" class="section">
@@ -2811,7 +2791,7 @@
shall behave as follows:
<ol>
<li>
- Upon invoking <code><a href="#dfn-CryptoOperation-method-init">init</a></code>:
+ Upon invoking <code>init</code>:
<ol>
<li>
If <code><a href="#dfn-CryptoOperation-key">key</a></code> does not describe an
@@ -2870,7 +2850,7 @@
shall behave as follows:
<ol>
<li>
- Upon invoking <code><a href="#dfn-CryptoOperation-method-init">init</a></code>:
+ Upon invoking <code>init</code>:
<ol>
<li>
If <code><a href="#dfn-CryptoOperation-key">key</a></code> does not describe an
@@ -2983,17 +2963,18 @@
<h4>Operations</h4>
<ul>
<li>Generate Key</li>
- <li>Derive Key</li>
- <p>
- Perform the standard ECDH primitive specified in <a href="#X9.63">X9.63</a> Section 5.4.1.
- The output of ECDH key agreement is the x-coordinate of the shared secret value <var>P</var>.
- </p>
- <p>
- Note: <a href="#X9.63">X9.63</a> Section 5.4.2 and <a href="#SP800-56A">NIST SP 800-56A</a>
- Section 5.7.1.2 specify a modified ECDH primitive that multiplies the shared secret value by
- the cofactor of the curve. The cofactor of the NIST recommended curves P-256, P-384, and P-521
- is 1, so the standard and modified ECDH primitives are equivalent for those curves.
- </p>
+ <li>Derive Key
+ <p>
+ Perform the standard ECDH primitive specified in <a href="#X9.63">X9.63</a> Section 5.4.1.
+ The output of ECDH key agreement is the x-coordinate of the shared secret value <var>P</var>.
+ </p>
+ <p>
+ Note: <a href="#X9.63">X9.63</a> Section 5.4.2 and <a href="#SP800-56A">NIST SP 800-56A</a>
+ Section 5.7.1.2 specify a modified ECDH primitive that multiplies the shared secret value by
+ the cofactor of the curve. The cofactor of the NIST recommended curves P-256, P-384, and P-521
+ is 1, so the standard and modified ECDH primitives are equivalent for those curves.
+ </p>
+ </li>
</ul>
</div>
</div>
@@ -3226,7 +3207,7 @@
</tr>
<tr>
<td>generateKey</td>
- <td><a href="#dfn-HmacKeyGenParams">HmacKeyGenParams</a></td>
+ <td><a href="#dfn-HmacParams">HmacParams</a></td>
<td><a href="#dfn-Key">Key</a>?</td>
</tr>
</tbody>
@@ -3515,7 +3496,7 @@
restarted.
</li>
<li>
- Otherwise, throw an <a href="#dfn-InvalidAlgorithmError"><code>InvalidAlgorithmError</code></a>
+ Otherwise, throw an <code>InvalidAlgorithmError</code>
exception and return from this algorithm.
</li>
</ol>
@@ -3534,7 +3515,7 @@
<li>
If <var>name</var> does not contain a recognized
<a href="#recognized-algorithm-name">algorithm name</a>, throw an
- <a href="#dfn-InvalidAlgorithmError"><code>InvalidAlgorithmError</code></a> exception
+ <code>InvalidAlgorithmError</code> exception
and return from this algorithm.
</li>
<li>
@@ -3542,8 +3523,7 @@
of the <a href="#dfn-Algorithm"><code>Algorithm</code></a> dictionary.
</li>
<li>
- Process <var>params</var> according to the algorithm-defined
- <a href="#algorithm-params-normalizing-rules">algorithm parameter normalizing rules</a>.
+ Process <var>params</var> according to the algorithm-defined algorithm parameter normalizing rules.
</li>
<li>
If an exception was raised during parameter processing, propagate the exception.
--- a/spec/Overview.html Mon Dec 17 18:06:32 2012 -0800
+++ b/spec/Overview.html Mon Dec 17 19:59:49 2012 -0800
@@ -54,15 +54,26 @@
<div class="section">
<h2>Status of this Document</h2>
+ <p><em>
+ This section describes the status of this document at the time of
+ its publication. Other documents may supersede this document. A list
+ of current W3C publications and the latest revision of this technical
+ report can be found in the <a href="http://www.w3.org/TR/">W3C technical
+ reports index</a> at http://www.w3.org/TR/.
+ </em></p><p>
+ This document is the 17 December 2012 <b>Editor’s Draft</b> of the
+ <cite>Web Cryptography API</cite> specification.
+
+ Please send comments about this document to
+ <a href="mailto:public-webcrypto-comments@w3.org">public-webcrypto-comments@w3.org</a>
+ (<a href="http://lists.w3.org/Archives/Public/public-webcrypto-comments/">archived</a>).
+ </p>
+
<p>
- <em>
- This section describes the status of this document at the time of its publication.
- Other documents may supersede this document. A list of current W3C publications and
- the most recently formally published revision of this technical report can be found
- in the <a href="http://www.w3.org/TR/">W3C technical reports index</a> at
- http://www.w3.org/TR/.
- </em>
+ This document is produced by the <a href="http://www.w3.org/2012/webcrypto">Web Cryptography
+ <acronym title="Working Group">WG</acronym></a> of the <acronym title="World Wide Web Consortium">W3C</acronym>.
</p>
+
<p class="XXX">
Implementors should be aware that this specification is not stable.
<strong>Implementors who are not taking part in the discussions are likely to find the
@@ -82,12 +93,6 @@
<li>potential missing functionalities to deploy secure web applications.</li>
</ul>
<p>
- This is the W3C Editor's Draft of the Web Cryptography API. Please send comments to
- <a href="mailto:public-webcrypto-comments@w3.org">public-webcrypto-comments@w3.org</a>
- (<a href="http://lists.w3.org/Archives/Public/public-webcrypto-comments">archived</a>).
- This is an unfinished <strong>work in progress</strong>.
- </p>
- <p>
Previous discussion of this specification has taken place on three other
mailing lists: <a href="mailto:whatwg@whatwg.org">whatwg@whatwg.org</a>
@@ -98,20 +103,8 @@
Ongoing discussion will be on the <a href="mailto:public-webcrypto@w3.org">public-webcrypto@w3.org</a>
mailing list.
</p>
- <p>
- <em>This section describes the status of this document at the time of its publication.
- Other documents may supersede this document, since it is only an editor's draft.
- A list of current <acronym title="World Wide Web Consortium">W3C</acronym>
- publications and the latest revision of this technical report can be found in the
- <a href="http://www.w3.org/TR/"><acronym title="World Wide Web Consortium">W3C</acronym>
- technical reports index</a> at <a href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>.</em>
- </p>
<p>
- This document is produced by the <a href="http://www.w3.org/2012/webcrypto">Web Cryptography
- <acronym title="Working Group">WG</acronym></a> of the <acronym title="World Wide Web Consortium">W3C</acronym>.
- </p>
- <p>
Web content and browser developers are encouraged to review this draft. Please send comments to
<a href="mailto:public-webcrypto-comments@w3.org">public-webcrypto-comments@w3.org</a>,
the <acronym title="World Wide Web Consortium">W3C</acronym>'s public email list for issues related
@@ -124,6 +117,7 @@
Changes made to this document can be found in the
<a href="https://dvcs.w3.org/hg/webcrypto-api/file/tip/spec/">W3C public Mercurial server</a>.
</p>
+
<p>
Publication as an Editor’s Draft does not imply endorsement by the
W3C Membership. This is a draft document and may be updated, replaced
@@ -133,7 +127,7 @@
This document was produced by a group operating under the
<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February
2004 W3C Patent Policy</a>. W3C maintains a
- <a href="http://www.w3.org/2004/01/pp-impl/42538/status">public list of
+ <a href="http://www.w3.org/2004/01/pp-impl/54174/status">public list of
any patent disclosures</a> made in connection with the deliverables of
the group; that page also includes instructions for disclosing a patent.
An individual who has actual knowledge of a patent which the individual
@@ -806,13 +800,13 @@
<div id="key-interface-clone" class="section">
<h3>11.3. Structured clone algorithm</h3>
<p>
- When a user agent is required to obtain a <a href="#dfn-structured-clone">structured clone</a>
+ When a user agent is required to obtain a <a href="#structured-clone">structured clone</a>
of a <a href="#dfn-Key">Key</a> object, it must run the following steps.
</p>
<ol>
<li>
Let <var>input</var> and <var>memory</var> be the corresponding inputs defined
- by the <a href="#dfn-structured-clone">internal structured cloning algorithm</a>,
+ by the <a href="#structured-clone">internal structured cloning algorithm</a>,
where <var>input</var> represents a <a href="#dfn-Key">Key</a> object to be cloned.
</li>
<li>Let <var>output</var> be a newly constructed <a href="#dfn-Key">Key</a> object.</li>
@@ -848,8 +842,8 @@
<div id="cryptooperation-interface" class="section">
<h2>12. CryptoOperation interface</h2>
<div class="block"><div class="blockTitleDiv"><span class="blockTitle">IDL</span></div><div class="blockContent"><pre class="code"><code class="idl-code">
-interface <dfn id="dfn-CryptoOperation">CryptoOperation</dfn> : <a href="#dfn-EventTarget">EventTarget</a> {
- void <a href="#dfn-CryptoOperation-method-process">process</a>(<a href="#dfn-ArrayBuffer">ArrayBufferView</a> buffer);
+interface <dfn id="dfn-CryptoOperation">CryptoOperation</dfn> : EventTarget {
+ void <a href="#dfn-CryptoOperation-method-process">process</a>(ArrayBufferView buffer);
void <a href="#dfn-CryptoOperation-method-finish">finish</a>();
void <a href="#dfn-CryptoOperation-method-abort">abort</a>();
@@ -1144,19 +1138,19 @@
<tbody>
<tr>
<td><dfn id="dfn-CryptoOperation-onabort">onabort</dfn></td>
- <td><a href="#dfn-onabort-event">abort</a></td>
+ <td>abort</td>
</tr>
<tr>
<td><dfn id="dfn-CryptoOperation-onerror">onerror</dfn></td>
- <td><a href="#dfn-onerror-event">error</a></td>
+ <td>error</td>
</tr>
<tr>
<td><dfn id="dfn-CryptoOperation-onprogress">onprogress</dfn></td>
- <td><a href="#dfn-onprogress-event">progress</a></td>
+ <td>progress</td>
</tr>
<tr>
<td><dfn id="dfn-CryptoOperation-oncomplete">oncomplete</dfn></td>
- <td><a href="#dfn-oncomplete-event">complete</a></td>
+ <td>complete</td>
</tr>
</tbody>
</table>
@@ -1300,7 +1294,7 @@
<li>
<a href="#queue-a-task">Queue a task</a> to
<a href="#fire-a-simple-event">fire a simple event</a> called
- <a href="#dfn-onabort-event"><code>onabort</code></a> at the
+ <a href="#dfn-CryptoOperation-onabort"><code>onabort</code></a> at the
<a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a>.
</li>
</ol>
@@ -1319,10 +1313,10 @@
<h2>13. KeyOperation interface</h2>
<div class="block"><div class="blockTitleDiv"><span class="blockTitle">IDL</span></div><div class="blockContent"><pre class="code"><code class="idl-code">
interface <dfn id="dfn-KeyOperation">KeyOperation</dfn> : EventTarget {
- readonly attribute any result;
+ readonly attribute any <dfn id="dfn-KeyOperation-result">result</dfn>;
- [TreatNonCallableAsNull] attribute Function? onerror;
- [TreatNonCallableAsNull] attribute Function? oncomplete;
+ [TreatNonCallableAsNull] attribute Function? <dfn id="dfn-KeyOperation-onerror">onerror</dfn>;
+ [TreatNonCallableAsNull] attribute Function? <dfn id="dfn-KeyOperation-oncomplete">oncomplete</dfn>;
};
</code></pre></div></div>
</div>
@@ -1341,7 +1335,7 @@
"jwk",
};
-interface <dfn id="dfn-crypto">Crypto</dfn> {
+interface <dfn id="dfn-Crypto">Crypto</dfn> {
<a href="#dfn-CryptoOperation">CryptoOperation</a> <a href="#dfn-Crypto-method-encrypt">encrypt</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm,
<a href="#dfn-Key">Key</a> key,
optional ArrayBufferView? buffer = null);
@@ -2120,11 +2114,11 @@
</div>
<div id="Crypto-method-importKey" class="section">
- <h4>14.1.8. The importKey method</h4>
+ <h4>14.1.8. The <dfn id="dfn-Crypto-method-importKey">importKey</dfn> method</h4>
<p></p>
</div>
<div id="Crypto-method-exportKey" class="section">
- <h4>14.1.9. The exportKey method</h4>
+ <h4>14.1.9. The <dfn id="dfn-Crypto-method-exportKey">exportKey</dfn> method</h4>
<p></p>
</div>
@@ -2134,7 +2128,7 @@
<div id="WorkerCrypto-interface" class="section">
<h2>15. WorkerCrypto interface</h2>
<div class="block"><div class="blockTitleDiv"><span class="blockTitle">IDL</span></div><div class="blockContent"><pre class="code"><code class="idl-code">
-interface WorkerCrypto {
+interface <dfn id="dfn-WorkerCrypto">WorkerCrypto</dfn> {
};
<a href="#dfn-WorkerCrypto">WorkerCrypto</a> implements <a href="#dfn-RandomSource">RandomSource</a>;
@@ -2247,13 +2241,13 @@
<p>
However, in order to promote interoperability for developers, there are a number of
recommended algorithms. The recommended algorithms are:
- <ul>
- <li><a href="#hmac">HMAC</a> using <a href="#alg-sha-256">SHA-256</a></li>
- <li><a href="#rsassa-pkcs1">RSASSA-PKCS1-v1_5</a> using <a href="#alg-sha-256">SHA-256</a></li>
- <li><a href="#ecdsa">ECDSA</a> using <a href="#dfn-NamedCurve-p256">P-256</a> curve and <a href="#alg-sha-256">SHA-256</a></li>
- <li><a href="#aes-cbc">AES-CBC</a></li>
- </ul>
</p>
+ <ul>
+ <li><a href="#hmac">HMAC</a> using <a href="#alg-sha-256">SHA-256</a></li>
+ <li><a href="#rsassa-pkcs1">RSASSA-PKCS1-v1_5</a> using <a href="#alg-sha-256">SHA-256</a></li>
+ <li><a href="#ecdsa">ECDSA</a> using <a href="#dfn-NamedCurve-p256">P-256</a> curve and <a href="#alg-sha-256">SHA-256</a></li>
+ <li><a href="#aes-cbc">AES-CBC</a></li>
+ </ul>
<p>To see the results of test-cases between implementations, please see the [@@Upcoming]
Web Cryptography Test Cases Working Group.
</p>
@@ -2306,8 +2300,7 @@
Each registered algorithm <span class="RFC2119">MUST</span> define the contents
of the <a href="#dfn-CryptoOperation-result"><code>result</code></a> attribute of the
<a href="#dfn-CryptoOperation">CryptoOperation</a> object for every
- <a href="#supported-operations">supported operation</a> and for every
- <a href="#CryptoOperation-states"><code>state</code></a>.
+ <a href="#supported-operations">supported operation</a>.
</p>
</div>
<div id="algorithm-alias" class="section">
@@ -2807,7 +2800,7 @@
shall behave as follows:
<ol>
<li>
- Upon invoking <code><a href="#dfn-CryptoOperation-method-init">init</a></code>:
+ Upon invoking <code>init</code>:
<ol>
<li>
If <code><a href="#dfn-CryptoOperation-key">key</a></code> does not describe an
@@ -2866,7 +2859,7 @@
shall behave as follows:
<ol>
<li>
- Upon invoking <code><a href="#dfn-CryptoOperation-method-init">init</a></code>:
+ Upon invoking <code>init</code>:
<ol>
<li>
If <code><a href="#dfn-CryptoOperation-key">key</a></code> does not describe an
@@ -2979,17 +2972,18 @@
<h4>19.8.4. Operations</h4>
<ul>
<li>Generate Key</li>
- <li>Derive Key</li>
- <p>
- Perform the standard ECDH primitive specified in <a href="#X9.63">X9.63</a> Section 5.4.1.
- The output of ECDH key agreement is the x-coordinate of the shared secret value <var>P</var>.
- </p>
- <p>
- Note: <a href="#X9.63">X9.63</a> Section 5.4.2 and <a href="#SP800-56A">NIST SP 800-56A</a>
- Section 5.7.1.2 specify a modified ECDH primitive that multiplies the shared secret value by
- the cofactor of the curve. The cofactor of the NIST recommended curves P-256, P-384, and P-521
- is 1, so the standard and modified ECDH primitives are equivalent for those curves.
- </p>
+ <li>Derive Key
+ <p>
+ Perform the standard ECDH primitive specified in <a href="#X9.63">X9.63</a> Section 5.4.1.
+ The output of ECDH key agreement is the x-coordinate of the shared secret value <var>P</var>.
+ </p>
+ <p>
+ Note: <a href="#X9.63">X9.63</a> Section 5.4.2 and <a href="#SP800-56A">NIST SP 800-56A</a>
+ Section 5.7.1.2 specify a modified ECDH primitive that multiplies the shared secret value by
+ the cofactor of the curve. The cofactor of the NIST recommended curves P-256, P-384, and P-521
+ is 1, so the standard and modified ECDH primitives are equivalent for those curves.
+ </p>
+ </li>
</ul>
</div>
</div>
@@ -3222,7 +3216,7 @@
</tr>
<tr>
<td>generateKey</td>
- <td><a href="#dfn-HmacKeyGenParams">HmacKeyGenParams</a></td>
+ <td><a href="#dfn-HmacParams">HmacParams</a></td>
<td><a href="#dfn-Key">Key</a>?</td>
</tr>
</tbody>
@@ -3511,7 +3505,7 @@
restarted.
</li>
<li>
- Otherwise, throw an <a href="#dfn-InvalidAlgorithmError"><code>InvalidAlgorithmError</code></a>
+ Otherwise, throw an <code>InvalidAlgorithmError</code>
exception and return from this algorithm.
</li>
</ol>
@@ -3530,7 +3524,7 @@
<li>
If <var>name</var> does not contain a recognized
<a href="#recognized-algorithm-name">algorithm name</a>, throw an
- <a href="#dfn-InvalidAlgorithmError"><code>InvalidAlgorithmError</code></a> exception
+ <code>InvalidAlgorithmError</code> exception
and return from this algorithm.
</li>
<li>
@@ -3538,8 +3532,7 @@
of the <a href="#dfn-Algorithm"><code>Algorithm</code></a> dictionary.
</li>
<li>
- Process <var>params</var> according to the algorithm-defined
- <a href="#algorithm-params-normalizing-rules">algorithm parameter normalizing rules</a>.
+ Process <var>params</var> according to the algorithm-defined algorithm parameter normalizing rules.
</li>
<li>
If an exception was raised during parameter processing, propagate the exception.