--- a/spec/Overview-WebCryptoAPI.xml Mon Dec 10 00:41:49 2012 -0800
+++ b/spec/Overview-WebCryptoAPI.xml Mon Dec 10 00:43:38 2012 -0800
@@ -1346,11 +1346,11 @@
<h2>Crypto interface</h2>
<x:codeblock language="idl">
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);
- <a href="#dfn-CryptoOperation">CryptoOperation</a> <a href="#dfn-Crypto-method-decrypt">decrypt</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm, <a href="#dfn-Key">Key</a> key);
- <a href="#dfn-CryptoOperation">CryptoOperation</a> <a href="#dfn-Crypto-method-sign">sign</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm, <a href="#dfn-Key">Key</a> key);
- <a href="#dfn-CryptoOperation">CryptoOperation</a> <a href="#dfn-Crypto-method-verify">verify</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm, <a href="#dfn-Key">Key</a> key, ArrayBufferView signature);
- <a href="#dfn-CryptoOperation">CryptoOperation</a> <a href="#dfn-Crypto-method-digest">digest</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm);
+ <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);
+ <a href="#dfn-CryptoOperation">CryptoOperation</a> <a href="#dfn-Crypto-method-decrypt">decrypt</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm, <a href="#dfn-Key">Key</a> key, optional ArrayBufferView? buffer = null);
+ <a href="#dfn-CryptoOperation">CryptoOperation</a> <a href="#dfn-Crypto-method-sign">sign</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm, <a href="#dfn-Key">Key</a> key, optional ArrayBufferView? buffer = null);
+ <a href="#dfn-CryptoOperation">CryptoOperation</a> <a href="#dfn-Crypto-method-verify">verify</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm, <a href="#dfn-Key">Key</a> key, ArrayBufferView signature, optional ArrayBufferView? buffer = null);
+ <a href="#dfn-CryptoOperation">CryptoOperation</a> <a href="#dfn-Crypto-method-digest">digest</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm, optional ArrayBufferView? buffer = null);
<span class="comment">// TBD: <a href="https://www.w3.org/2012/webcrypto/track/issues/36">ISSUE-36</a></span>
<a href="#dfn-KeyGenerator">KeyGenerator</a> <a href="#dfn-Crypto-method-generateKey">generateKey</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm,
@@ -1425,7 +1425,7 @@
</li>
<li>
<p>
- Return a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
+ Create a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
<var>S</var> with the following characteristics:
</p>
<ol>
@@ -1449,6 +1449,53 @@
</li>
</ol>
</li>
+ <li>
+ <p>
+ If <var>buffer</var> is specified:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-process"><code>process()</code></a>
+ method on the new object, with <var>buffer</var> as the <code>buffer</code> argument.
+ </p>
+ </li>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-finish"><code>finish()</code></a>
+ method on the new object.
+ </p>
+ </li>
+ </ol>
+ <div class="ednote">
+ <p>
+ Supporting single-part operations is intended to address two use cases:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Developers that "just" want to perform a simple operation. The single-method invocation best matches
+ existing JavaScript cryptographic libraries, particularly the synchronous aspect.
+ </p>
+ </li>
+ <li>
+ <p>
+ User agents that can optimize implementation when there is only a single operation being performed.
+ </p>
+ </li>
+ </ol>
+ <p>
+ Having the single-part operation return a <code>CryptoOperation</code> may change,
+ as may make it easier for developers if a <em>Promise</em> type object (whether through
+ TC39 or through DOM) is returned, since the only possible results are "success" and "error".
+ </p>
+ </div>
+ </li>
+ <li>
+ <p>
+ Return the new object.
+ </p>
+ </li>
</ol>
</div>
@@ -1480,7 +1527,7 @@
</li>
<li>
<p>
- Return a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
+ Create a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
<var>S</var> with the following characteristics:
</p>
<ol>
@@ -1504,6 +1551,53 @@
</li>
</ol>
</li>
+ <li>
+ <p>
+ If <var>buffer</var> is specified:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-process"><code>process()</code></a>
+ method on the new object, with <var>buffer</var> as the <code>buffer</code> argument.
+ </p>
+ </li>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-finish"><code>finish()</code></a>
+ method on the new object.
+ </p>
+ </li>
+ </ol>
+ <div class="ednote">
+ <p>
+ Supporting single-part operations is intended to address two use cases:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Developers that "just" want to perform a simple operation. The single-method invocation best matches
+ existing JavaScript cryptographic libraries, particularly the synchronous aspect.
+ </p>
+ </li>
+ <li>
+ <p>
+ User agents that can optimize implementation when there is only a single operation being performed.
+ </p>
+ </li>
+ </ol>
+ <p>
+ Having the single-part operation return a <code>CryptoOperation</code> may change,
+ as may make it easier for developers if a <em>Promise</em> type object (whether through
+ TC39 or through DOM) is returned, since the only possible results are "success" and "error".
+ </p>
+ </div>
+ </li>
+ <li>
+ <p>
+ Return the new object.
+ </p>
+ </li>
</ol>
</div>
@@ -1534,7 +1628,7 @@
</li>
<li>
<p>
- Return a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
+ Create a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
<var>S</var> with the following characteristics:
</p>
<ol>
@@ -1558,6 +1652,53 @@
</li>
</ol>
</li>
+ <li>
+ <p>
+ If <var>buffer</var> is specified:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-process"><code>process()</code></a>
+ method on the new object, with <var>buffer</var> as the <code>buffer</code> argument.
+ </p>
+ </li>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-finish"><code>finish()</code></a>
+ method on the new object.
+ </p>
+ </li>
+ </ol>
+ <div class="ednote">
+ <p>
+ Supporting single-part operations is intended to address two use cases:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Developers that "just" want to perform a simple operation. The single-method invocation best matches
+ existing JavaScript cryptographic libraries, particularly the synchronous aspect.
+ </p>
+ </li>
+ <li>
+ <p>
+ User agents that can optimize implementation when there is only a single operation being performed.
+ </p>
+ </li>
+ </ol>
+ <p>
+ Having the single-part operation return a <code>CryptoOperation</code> may change,
+ as may make it easier for developers if a <em>Promise</em> type object (whether through
+ TC39 or through DOM) is returned, since the only possible results are "success" and "error".
+ </p>
+ </div>
+ </li>
+ <li>
+ <p>
+ Return the new object.
+ </p>
+ </li>
</ol>
</div>
@@ -1588,7 +1729,7 @@
</li>
<li>
<p>
- Return a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
+ Create a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
<var>S</var> with the following characteristics:
</p>
<ol>
@@ -1612,6 +1753,53 @@
</li>
</ol>
</li>
+ <li>
+ <p>
+ If <var>buffer</var> is specified:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-process"><code>process()</code></a>
+ method on the new object, with <var>buffer</var> as the <code>buffer</code> argument.
+ </p>
+ </li>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-finish"><code>finish()</code></a>
+ method on the new object.
+ </p>
+ </li>
+ </ol>
+ <div class="ednote">
+ <p>
+ Supporting single-part operations is intended to address two use cases:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Developers that "just" want to perform a simple operation. The single-method invocation best matches
+ existing JavaScript cryptographic libraries, particularly the synchronous aspect.
+ </p>
+ </li>
+ <li>
+ <p>
+ User agents that can optimize implementation when there is only a single operation being performed.
+ </p>
+ </li>
+ </ol>
+ <p>
+ Having the single-part operation return a <code>CryptoOperation</code> may change,
+ as may make it easier for developers if a <em>Promise</em> type object (whether through
+ TC39 or through DOM) is returned, since the only possible results are "success" and "error".
+ </p>
+ </div>
+ </li>
+ <li>
+ <p>
+ Return the new object.
+ </p>
+ </li>
</ol>
</div>
@@ -1642,7 +1830,7 @@
</li>
<li>
<p>
- Return a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
+ Create a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
<var>S</var> with the following characteristics:
</p>
<ol>
@@ -1666,6 +1854,53 @@
</li>
</ol>
</li>
+ <li>
+ <p>
+ If <var>buffer</var> is specified:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-process"><code>process()</code></a>
+ method on the new object, with <var>buffer</var> as the <code>buffer</code> argument.
+ </p>
+ </li>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-finish"><code>finish()</code></a>
+ method on the new object.
+ </p>
+ </li>
+ </ol>
+ <div class="ednote">
+ <p>
+ Supporting single-part operations is intended to address two use cases:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Developers that "just" want to perform a simple operation. The single-method invocation best matches
+ existing JavaScript cryptographic libraries, particularly the synchronous aspect.
+ </p>
+ </li>
+ <li>
+ <p>
+ User agents that can optimize implementation when there is only a single operation being performed.
+ </p>
+ </li>
+ </ol>
+ <p>
+ Having the single-part operation return a <code>CryptoOperation</code> may change,
+ as may make it easier for developers if a <em>Promise</em> type object (whether through
+ TC39 or through DOM) is returned, since the only possible results are "success" and "error".
+ </p>
+ </div>
+ </li>
+ <li>
+ <p>
+ Return the new object.
+ </p>
+ </li>
</ol>
</div>
--- a/spec/Overview.html Mon Dec 10 00:41:49 2012 -0800
+++ b/spec/Overview.html Mon Dec 10 00:43:38 2012 -0800
@@ -49,7 +49,7 @@
communications.
</p>
- <div class="ednote"><div class="ednoteHeader">Editorial note</div><p>There are 15 further editorial notes in the document.</p></div>
+ <div class="ednote"><div class="ednoteHeader">Editorial note</div><p>There are 20 further editorial notes in the document.</p></div>
</div>
<div class="section">
@@ -1342,11 +1342,11 @@
<h2>16. Crypto 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-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);
- <a href="#dfn-CryptoOperation">CryptoOperation</a> <a href="#dfn-Crypto-method-decrypt">decrypt</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm, <a href="#dfn-Key">Key</a> key);
- <a href="#dfn-CryptoOperation">CryptoOperation</a> <a href="#dfn-Crypto-method-sign">sign</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm, <a href="#dfn-Key">Key</a> key);
- <a href="#dfn-CryptoOperation">CryptoOperation</a> <a href="#dfn-Crypto-method-verify">verify</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm, <a href="#dfn-Key">Key</a> key, ArrayBufferView signature);
- <a href="#dfn-CryptoOperation">CryptoOperation</a> <a href="#dfn-Crypto-method-digest">digest</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm);
+ <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);
+ <a href="#dfn-CryptoOperation">CryptoOperation</a> <a href="#dfn-Crypto-method-decrypt">decrypt</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm, <a href="#dfn-Key">Key</a> key, optional ArrayBufferView? buffer = null);
+ <a href="#dfn-CryptoOperation">CryptoOperation</a> <a href="#dfn-Crypto-method-sign">sign</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm, <a href="#dfn-Key">Key</a> key, optional ArrayBufferView? buffer = null);
+ <a href="#dfn-CryptoOperation">CryptoOperation</a> <a href="#dfn-Crypto-method-verify">verify</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm, <a href="#dfn-Key">Key</a> key, ArrayBufferView signature, optional ArrayBufferView? buffer = null);
+ <a href="#dfn-CryptoOperation">CryptoOperation</a> <a href="#dfn-Crypto-method-digest">digest</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm, optional ArrayBufferView? buffer = null);
<span class="comment">// TBD: <a href="https://www.w3.org/2012/webcrypto/track/issues/36">ISSUE-36</a></span>
<a href="#dfn-KeyGenerator">KeyGenerator</a> <a href="#dfn-Crypto-method-generateKey">generateKey</a>(<a href="#dfn-AlgorithmIdentifier">AlgorithmIdentifier</a> algorithm,
@@ -1421,7 +1421,7 @@
</li>
<li>
<p>
- Return a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
+ Create a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
<var>S</var> with the following characteristics:
</p>
<ol>
@@ -1445,6 +1445,53 @@
</li>
</ol>
</li>
+ <li>
+ <p>
+ If <var>buffer</var> is specified:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-process"><code>process()</code></a>
+ method on the new object, with <var>buffer</var> as the <code>buffer</code> argument.
+ </p>
+ </li>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-finish"><code>finish()</code></a>
+ method on the new object.
+ </p>
+ </li>
+ </ol>
+ <div class="ednote"><div class="ednoteHeader">Editorial note</div>
+ <p>
+ Supporting single-part operations is intended to address two use cases:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Developers that "just" want to perform a simple operation. The single-method invocation best matches
+ existing JavaScript cryptographic libraries, particularly the synchronous aspect.
+ </p>
+ </li>
+ <li>
+ <p>
+ User agents that can optimize implementation when there is only a single operation being performed.
+ </p>
+ </li>
+ </ol>
+ <p>
+ Having the single-part operation return a <code>CryptoOperation</code> may change,
+ as may make it easier for developers if a <em>Promise</em> type object (whether through
+ TC39 or through DOM) is returned, since the only possible results are "success" and "error".
+ </p>
+ </div>
+ </li>
+ <li>
+ <p>
+ Return the new object.
+ </p>
+ </li>
</ol>
</div>
@@ -1476,7 +1523,7 @@
</li>
<li>
<p>
- Return a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
+ Create a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
<var>S</var> with the following characteristics:
</p>
<ol>
@@ -1500,6 +1547,53 @@
</li>
</ol>
</li>
+ <li>
+ <p>
+ If <var>buffer</var> is specified:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-process"><code>process()</code></a>
+ method on the new object, with <var>buffer</var> as the <code>buffer</code> argument.
+ </p>
+ </li>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-finish"><code>finish()</code></a>
+ method on the new object.
+ </p>
+ </li>
+ </ol>
+ <div class="ednote"><div class="ednoteHeader">Editorial note</div>
+ <p>
+ Supporting single-part operations is intended to address two use cases:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Developers that "just" want to perform a simple operation. The single-method invocation best matches
+ existing JavaScript cryptographic libraries, particularly the synchronous aspect.
+ </p>
+ </li>
+ <li>
+ <p>
+ User agents that can optimize implementation when there is only a single operation being performed.
+ </p>
+ </li>
+ </ol>
+ <p>
+ Having the single-part operation return a <code>CryptoOperation</code> may change,
+ as may make it easier for developers if a <em>Promise</em> type object (whether through
+ TC39 or through DOM) is returned, since the only possible results are "success" and "error".
+ </p>
+ </div>
+ </li>
+ <li>
+ <p>
+ Return the new object.
+ </p>
+ </li>
</ol>
</div>
@@ -1530,7 +1624,7 @@
</li>
<li>
<p>
- Return a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
+ Create a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
<var>S</var> with the following characteristics:
</p>
<ol>
@@ -1554,6 +1648,53 @@
</li>
</ol>
</li>
+ <li>
+ <p>
+ If <var>buffer</var> is specified:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-process"><code>process()</code></a>
+ method on the new object, with <var>buffer</var> as the <code>buffer</code> argument.
+ </p>
+ </li>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-finish"><code>finish()</code></a>
+ method on the new object.
+ </p>
+ </li>
+ </ol>
+ <div class="ednote"><div class="ednoteHeader">Editorial note</div>
+ <p>
+ Supporting single-part operations is intended to address two use cases:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Developers that "just" want to perform a simple operation. The single-method invocation best matches
+ existing JavaScript cryptographic libraries, particularly the synchronous aspect.
+ </p>
+ </li>
+ <li>
+ <p>
+ User agents that can optimize implementation when there is only a single operation being performed.
+ </p>
+ </li>
+ </ol>
+ <p>
+ Having the single-part operation return a <code>CryptoOperation</code> may change,
+ as may make it easier for developers if a <em>Promise</em> type object (whether through
+ TC39 or through DOM) is returned, since the only possible results are "success" and "error".
+ </p>
+ </div>
+ </li>
+ <li>
+ <p>
+ Return the new object.
+ </p>
+ </li>
</ol>
</div>
@@ -1584,7 +1725,7 @@
</li>
<li>
<p>
- Return a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
+ Create a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
<var>S</var> with the following characteristics:
</p>
<ol>
@@ -1608,6 +1749,53 @@
</li>
</ol>
</li>
+ <li>
+ <p>
+ If <var>buffer</var> is specified:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-process"><code>process()</code></a>
+ method on the new object, with <var>buffer</var> as the <code>buffer</code> argument.
+ </p>
+ </li>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-finish"><code>finish()</code></a>
+ method on the new object.
+ </p>
+ </li>
+ </ol>
+ <div class="ednote"><div class="ednoteHeader">Editorial note</div>
+ <p>
+ Supporting single-part operations is intended to address two use cases:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Developers that "just" want to perform a simple operation. The single-method invocation best matches
+ existing JavaScript cryptographic libraries, particularly the synchronous aspect.
+ </p>
+ </li>
+ <li>
+ <p>
+ User agents that can optimize implementation when there is only a single operation being performed.
+ </p>
+ </li>
+ </ol>
+ <p>
+ Having the single-part operation return a <code>CryptoOperation</code> may change,
+ as may make it easier for developers if a <em>Promise</em> type object (whether through
+ TC39 or through DOM) is returned, since the only possible results are "success" and "error".
+ </p>
+ </div>
+ </li>
+ <li>
+ <p>
+ Return the new object.
+ </p>
+ </li>
</ol>
</div>
@@ -1638,7 +1826,7 @@
</li>
<li>
<p>
- Return a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
+ Create a new <a href="#dfn-CryptoOperation"><code>CryptoOperation</code></a> object
<var>S</var> with the following characteristics:
</p>
<ol>
@@ -1662,6 +1850,53 @@
</li>
</ol>
</li>
+ <li>
+ <p>
+ If <var>buffer</var> is specified:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-process"><code>process()</code></a>
+ method on the new object, with <var>buffer</var> as the <code>buffer</code> argument.
+ </p>
+ </li>
+ <li>
+ <p>
+ Queue a task to invoke the <a href="#dfn-CryptoOperation-method-finish"><code>finish()</code></a>
+ method on the new object.
+ </p>
+ </li>
+ </ol>
+ <div class="ednote"><div class="ednoteHeader">Editorial note</div>
+ <p>
+ Supporting single-part operations is intended to address two use cases:
+ </p>
+ <ol>
+ <li>
+ <p>
+ Developers that "just" want to perform a simple operation. The single-method invocation best matches
+ existing JavaScript cryptographic libraries, particularly the synchronous aspect.
+ </p>
+ </li>
+ <li>
+ <p>
+ User agents that can optimize implementation when there is only a single operation being performed.
+ </p>
+ </li>
+ </ol>
+ <p>
+ Having the single-part operation return a <code>CryptoOperation</code> may change,
+ as may make it easier for developers if a <em>Promise</em> type object (whether through
+ TC39 or through DOM) is returned, since the only possible results are "success" and "error".
+ </p>
+ </div>
+ </li>
+ <li>
+ <p>
+ Return the new object.
+ </p>
+ </li>
</ol>
</div>