- From: poot <cvsmail@w3.org>
- Date: Tue, 7 Apr 2009 15:48:07 +0900 (JST)
- To: public-html-diffs@w3.org
First cut at defining <keygen>. Affects parser, rendering, and form submission. (whatwg r2960) 10.5 Frames and framesets http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#frames-and-framesets default button http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#default-button validationMessage http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#dom-cva-validationmessage challenge http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#dom-keygen-challenge 10.2.7 Resetting rules for inherited properties http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#resetting-rules-for-inherited-properties 4.10.16 Form submission http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#form-submission-0 4.10.15.4 Security http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#security-0 10.4.18 The keygen element http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#the-keygen-element-0 4.10.11 The keygen element http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#the-keygen-element appropriate form encoding algorithm http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#appropriate-form-encoding-algorithm text/plain encoding algorithm http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#text-plain-encoding-algorithm Editor's Draft 7 April 2009 http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#editor-s-draft-date-1-january-1970 4.10.14.4 Autofocusing a form control http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#autofocusing-a-form-control 4.10.14.5 Limiting user input length http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#limiting-user-input-length 4.10.14.3 A form control's value http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#a-form-control-s-value 4.10.17 Resetting a form http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#resetting-a-form submitted http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#concept-form-submit Index http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#index application/x-www-form-urlencoded encoding algorithm http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#application-x-www-form-urlencoded-encoding-algorithm htmlFor http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#dom-output-htmlfor broadcast forminput events http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#broadcast-forminput-events multipart/form-data encoding algorithm http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#multipart-form-data-encoding-algorithm 4.10.18 Event dispatch http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#event-dispatch interactively validate the constraints http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#interactively-validate-the-constraints satisfies its constraints http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#concept-fv-valid value http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#concept-fe-value reset algorithm http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#concept-form-reset-control form owner http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#form-owner An end tag whose tag name is one of: "a", "b", "big", "code", "em", "font", "i", "nobr", "s", "small", "strike", "strong", "tt", "u" http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#adoptionAgency keytype http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#attr-keygen-keytype 4.10.16.5 Multipart form data http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#multipart-form-data disabled http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#dom-fe-disabled 4.10.16.1 Introduction http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#introduction-0 4.10.14 Attributes common to form controls http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#attributes-common-to-form-controls disabled http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#concept-fe-disabled challenge http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#attr-keygen-challenge PublicKeyAndChallenge http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#publickeyandchallenge 4.10.14.6 Form submission http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#form-submission autofocus http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#dom-fe-autofocus 4.10.14.2 Enabling and disabling form controls http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#enabling-and-disabling-form-controls name http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#dom-fe-name 4.10.16.2 Implicit submission http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#implicit-submission 4.10.16.6 Plain text form data http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#plain-text-form-data value http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#dom-textarea-value maximum allowed value length http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#maximum-allowed-value-length reset http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#concept-form-reset form http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#dom-fae-form HTML fragment serialization algorithm http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#html-fragment-serialization-algorithm HTMLKeygenElement http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#htmlkeygenelement 10.4.17 The textarea element http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#the-textarea-element-0 4.10.16.3 Form submission algorithm http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#form-submission-algorithm 4.10.13 Association of controls and forms http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#association-of-controls-and-forms type http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#dom-keygen-type 4.10.15.3 The constraint validation API http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#the-constraint-validation-api SignedPublicKeyAndChallenge http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#signedpublickeyandchallenge Status of this document http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#status-of-this-document 4.10.16.4 URL-encoded form data http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#url-encoded-form-data default value http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#concept-output-defaultvalue A start tag whose tag name is "isindex" http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#isindex A vocabulary and associated APIs for HTML and XHTML http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#a-vocabulary-and-associated-apis-for-html-and-xhtml broadcast formchange events http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#broadcast-formchange-events candidate for constraint validation http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#candidate-for-constraint-validation 4.10.12 The output element http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#the-output-element formTarget http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#dom-fs-formtarget statically validate the constraints http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#statically-validate-the-constraints checkedness http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#concept-fe-checked 4.10.15.2 Constraint validation http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#constraint-validation 4.10.15 Constraints http://people.w3.org/mike/diffs/html5/spec/Overview.1.2124.html#constraints http://people.w3.org/mike/diffs/html5/spec/Overview.diff.html http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.2123&r2=1.2124&f=h http://html5.org/tools/web-apps-tracker?from=2959&to=2960 =================================================================== RCS file: /sources/public/html5/spec/Overview.html,v retrieving revision 1.2123 retrieving revision 1.2124 diff -u -d -r1.2123 -r1.2124 --- Overview.html 6 Apr 2009 08:24:32 -0000 1.2123 +++ Overview.html 7 Apr 2009 03:48:42 -0000 1.2124 @@ -146,7 +146,7 @@ <p><a href=http://www.w3.org/><img alt=W3C height=48 src=http://www.w3.org/Icons/w3c_home width=72></a></p> <h1>HTML 5</h1> <h2 class="no-num no-toc" id=a-vocabulary-and-associated-apis-for-html-and-xhtml>A vocabulary and associated APIs for HTML and XHTML</h2> - <h2 class="no-num no-toc" id=editor-s-draft-date-1-january-1970><!--ZZZ: W3C Working Draft 12 February 2009 --><!-- fix date ZZZ --><!----> Editor's Draft 6 April 2009 <!--:ZZZ--></h2> + <h2 class="no-num no-toc" id=editor-s-draft-date-1-january-1970><!--ZZZ: W3C Working Draft 12 February 2009 --><!-- fix date ZZZ --><!----> Editor's Draft 7 April 2009 <!--:ZZZ--></h2> <dl><!-- ZZZ: update the month/day (twice), uncomment out <dt>This Version:</dt> <dd><a href="http://www.w3.org/TR/2009/WD-html5-20090212/">http://www.w3.org/TR/2009/WD-html5-20090212/</a></dd> @@ -237,7 +237,7 @@ track. <!--ZZZ:--> <!-- This specification is the 12 February 2009 Working Draft. --> - This specification is the 6 April 2009 Editor's Draft. + This specification is the 7 April 2009 Editor's Draft. <!--:ZZZ--> </p><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- relationship to other work (required) --><p>This specification is also being produced by the <a href=http://www.whatwg.org/>WHATWG</a>. The two specifications are identical from the table of contents onwards.</p><!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- context and rationale (required) --><p>This specification is intended to replace (be a new version of) @@ -639,32 +639,33 @@ <li><a href=#the-optgroup-element><span class=secno>4.10.8 </span>The <code>optgroup</code> element</a></li> <li><a href=#the-option-element><span class=secno>4.10.9 </span>The <code>option</code> element</a></li> <li><a href=#the-textarea-element><span class=secno>4.10.10 </span>The <code>textarea</code> element</a></li> - <li><a href=#the-output-element><span class=secno>4.10.11 </span>The <code>output</code> element</a></li> - <li><a href=#association-of-controls-and-forms><span class=secno>4.10.12 </span>Association of controls and forms</a></li> - <li><a href=#attributes-common-to-form-controls><span class=secno>4.10.13 </span>Attributes common to form controls</a> + <li><a href=#the-keygen-element><span class=secno>4.10.11 </span>The <code>keygen</code> element</a></li> + <li><a href=#the-output-element><span class=secno>4.10.12 </span>The <code>output</code> element</a></li> + <li><a href=#association-of-controls-and-forms><span class=secno>4.10.13 </span>Association of controls and forms</a></li> + <li><a href=#attributes-common-to-form-controls><span class=secno>4.10.14 </span>Attributes common to form controls</a> <ol> - <li><a href=#naming-form-controls><span class=secno>4.10.13.1 </span>Naming form controls</a></li> - <li><a href=#enabling-and-disabling-form-controls><span class=secno>4.10.13.2 </span>Enabling and disabling form controls</a></li> - <li><a href=#a-form-control-s-value><span class=secno>4.10.13.3 </span>A form control's value</a></li> - <li><a href=#autofocusing-a-form-control><span class=secno>4.10.13.4 </span>Autofocusing a form control</a></li> - <li><a href=#limiting-user-input-length><span class=secno>4.10.13.5 </span>Limiting user input length</a></li> - <li><a href=#form-submission><span class=secno>4.10.13.6 </span>Form submission</a></ol></li> - <li><a href=#constraints><span class=secno>4.10.14 </span>Constraints</a> + <li><a href=#naming-form-controls><span class=secno>4.10.14.1 </span>Naming form controls</a></li> + <li><a href=#enabling-and-disabling-form-controls><span class=secno>4.10.14.2 </span>Enabling and disabling form controls</a></li> + <li><a href=#a-form-control-s-value><span class=secno>4.10.14.3 </span>A form control's value</a></li> + <li><a href=#autofocusing-a-form-control><span class=secno>4.10.14.4 </span>Autofocusing a form control</a></li> + <li><a href=#limiting-user-input-length><span class=secno>4.10.14.5 </span>Limiting user input length</a></li> + <li><a href=#form-submission><span class=secno>4.10.14.6 </span>Form submission</a></ol></li> + <li><a href=#constraints><span class=secno>4.10.15 </span>Constraints</a> <ol> - <li><a href=#definitions><span class=secno>4.10.14.1 </span>Definitions</a></li> - <li><a href=#constraint-validation><span class=secno>4.10.14.2 </span>Constraint validation</a></li> - <li><a href=#the-constraint-validation-api><span class=secno>4.10.14.3 </span>The constraint validation API</a></li> - <li><a href=#security-0><span class=secno>4.10.14.4 </span>Security</a></ol></li> - <li><a href=#form-submission-0><span class=secno>4.10.15 </span>Form submission</a> + <li><a href=#definitions><span class=secno>4.10.15.1 </span>Definitions</a></li> + <li><a href=#constraint-validation><span class=secno>4.10.15.2 </span>Constraint validation</a></li> + <li><a href=#the-constraint-validation-api><span class=secno>4.10.15.3 </span>The constraint validation API</a></li> + <li><a href=#security-0><span class=secno>4.10.15.4 </span>Security</a></ol></li> + <li><a href=#form-submission-0><span class=secno>4.10.16 </span>Form submission</a> <ol> - <li><a href=#introduction-0><span class=secno>4.10.15.1 </span>Introduction</a></li> - <li><a href=#implicit-submission><span class=secno>4.10.15.2 </span>Implicit submission</a></li> - <li><a href=#form-submission-algorithm><span class=secno>4.10.15.3 </span>Form submission algorithm</a></li> - <li><a href=#url-encoded-form-data><span class=secno>4.10.15.4 </span>URL-encoded form data</a></li> - <li><a href=#multipart-form-data><span class=secno>4.10.15.5 </span>Multipart form data</a></li> - <li><a href=#plain-text-form-data><span class=secno>4.10.15.6 </span>Plain text form data</a></ol></li> - <li><a href=#resetting-a-form><span class=secno>4.10.16 </span>Resetting a form</a></li> - <li><a href=#event-dispatch><span class=secno>4.10.17 </span>Event dispatch</a></ol></li> + <li><a href=#introduction-0><span class=secno>4.10.16.1 </span>Introduction</a></li> + <li><a href=#implicit-submission><span class=secno>4.10.16.2 </span>Implicit submission</a></li> + <li><a href=#form-submission-algorithm><span class=secno>4.10.16.3 </span>Form submission algorithm</a></li> + <li><a href=#url-encoded-form-data><span class=secno>4.10.16.4 </span>URL-encoded form data</a></li> + <li><a href=#multipart-form-data><span class=secno>4.10.16.5 </span>Multipart form data</a></li> + <li><a href=#plain-text-form-data><span class=secno>4.10.16.6 </span>Plain text form data</a></ol></li> + <li><a href=#resetting-a-form><span class=secno>4.10.17 </span>Resetting a form</a></li> + <li><a href=#event-dispatch><span class=secno>4.10.18 </span>Event dispatch</a></ol></li> <li><a href=#interactive-elements><span class=secno>4.11 </span>Interactive elements</a> <ol> <li><a href=#the-details-element><span class=secno>4.11.1 </span>The <code>details</code> element</a></li> @@ -1064,7 +1065,8 @@ <li><a href=#the-meter-element-0><span class=secno>10.4.14 </span>The <code>meter</code> element</a></li> <li><a href=#the-progress-element-0><span class=secno>10.4.15 </span>The <code>progress</code> element</a></li> <li><a href=#the-select-element-0><span class=secno>10.4.16 </span>The <code>select</code> element</a></li> - <li><a href=#the-textarea-element-0><span class=secno>10.4.17 </span>The <code>textarea</code> element</a></ol></li> + <li><a href=#the-textarea-element-0><span class=secno>10.4.17 </span>The <code>textarea</code> element</a></li> + <li><a href=#the-keygen-element-0><span class=secno>10.4.18 </span>The <code>keygen</code> element</a></ol></li> <li><a href=#frames-and-framesets><span class=secno>10.5 </span>Frames and framesets</a></li> <li><a href=#interactive-media><span class=secno>10.6 </span>Interactive media</a> <ol> @@ -29743,7 +29745,244 @@ and <code title=dom-textarea/input-setSelectionRange><a href=#dom-textarea-input-setselectionrange>setSelectionRange()</a></code> methods and attributes expose the element's text selection.</p> - </div><h4 id=the-output-element><span class=secno>4.10.11 </span>The <dfn><code>output</code></dfn> element</h4><dl class=element><dt>Categories</dt> + </div><h4 id=the-keygen-element><span class=secno>4.10.11 </span>The <dfn><code>keygen</code></dfn> element</h4><dl class=element><dt>Categories</dt> + <dd><a href=#flow-content-0>Flow content</a>.</dd> + <dd><a href=#phrasing-content-0>Phrasing content</a>.</dd> + <dd><a href=#interactive-content-0>Interactive content</a>.</dd> + <dd><a href=#category-listed title=category-listed>Listed</a>, <a href=#category-label title=category-label>labelable</a>, <a href=#category-submit title=category-submit>submittable</a>, and <a href=#category-reset title=category-reset>resettable</a> <a href=#form-associated-element>form-associated element</a>.</dd> + <dt>Contexts in which this element may be used:</dt> + <dd>Where <a href=#phrasing-content-0>phrasing content</a> is expected.</dd> + <dt>Content model:</dt> + <dd>Empty.</dd> + <dt>Content attributes:</dt> + <dd><a href=#global-attributes>Global attributes</a></dd> + <dd><code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code></dd> + <dd><code title=attr-keygen-challenge><a href=#attr-keygen-challenge>challenge</a></code></dd> + <dd><code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code></dd> + <dd><code title=attr-fae-form><a href=#attr-fae-form>form</a></code></dd> + <dd><code title=attr-keygen-keytype><a href=#attr-keygen-keytype>keytype</a></code></dd> + <dd><code title=attr-fe-name><a href=#attr-fe-name>name</a></code></dd> + <dt>DOM interface:</dt> + <dd> +<pre class=idl>interface <dfn id=htmlkeygenelement>HTMLKeygenElement</dfn> : <a href=#htmlelement>HTMLElement</a> { + attribute boolean <a href=#dom-fe-autofocus title=dom-fe-autofocus>autofocus</a>; + attribute DOMString <a href=#dom-keygen-challenge title=dom-keygen-challenge>challenge</a>; + attribute boolean <a href=#dom-fe-disabled title=dom-fe-disabled>disabled</a>; + readonly attribute <a href=#htmlformelement>HTMLFormElement</a> <a href=#dom-fae-form title=dom-fae-form>form</a>; + attribute DOMString <a href=#dom-keygen-keytype title=dom-keygen-keytype>keytype</a>; + attribute DOMString <a href=#dom-fe-name title=dom-fe-name>name</a>; + + readonly attribute DOMString <a href=#dom-keygen-type title=dom-keygen-type>type</a>; + + readonly attribute boolean <a href=#dom-cva-willvalidate title=dom-cva-willValidate>willValidate</a>; + readonly attribute <a href=#validitystate>ValidityState</a> <a href=#dom-cva-validity title=dom-cva-validity>validity</a>; + readonly attribute DOMString <a href=#dom-cva-validationmessage title=dom-cva-validationMessage>validationMessage</a>; + boolean <a href=#dom-cva-checkvalidatity title=dom-cva-checkValidatity>checkValidity</a>(); + void <a href=#dom-cva-setcustomvalidity title=dom-cva-setCustomValidity>setCustomValidity</a>(in DOMString error); + + readonly attribute <span>NodeList</span> <a href=#dom-lfe-labels title=dom-lfe-labels>labels</a>; +};</pre> + </dd> + </dl><p>The <code><a href=#the-keygen-element>keygen</a></code> element <a href=#represents>represents</a> a key + pair generator control. When the control's form is submitted, the + private key is stored in the local keystore, and the public key is + packaged and sent to the server.<p>The <dfn id=attr-keygen-challenge title=attr-keygen-challenge><code>challenge</code></dfn> attribute + may be specified. Its value will be packaged with the submitted + key.<p>The <dfn id=attr-keygen-keytype title=attr-keygen-keytype><code>keytype</code></dfn> + attribute is an <a href=#enumerated-attribute>enumerated attribute</a>. The following + table lists the keywords and states for the attribute — the + keywords in the left column map to the states listed in the cell in + the second column on the same row as the keyword.<table><thead><tr><th> Keyword <th> State + <tbody><tr><td> <code title="">rsa</code> + <td> <i title="">RSA</i> + </table><p>The <i>invalid value default</i> state is the <i title="">unknown</i> state. The <i>missing value default</i> state + is the <i title="">RSA</i> state.<div class=impl> + + <p>The user agent may expose a user interface for each + <code><a href=#the-keygen-element>keygen</a></code> element to allow the user to configure settings + of the element's key pair generator, e.g. the key length.</p> + + <p>The <a href=#concept-form-reset-control title=concept-form-reset-control>reset + algorithm</a> for <code><a href=#the-keygen-element>keygen</a></code> elements is to set these + various configuration settings back to their defaults.</p> + + <p>The element's <a href=#concept-fe-value title=concept-fe-value>value</a> is the + string returned from the following algorithm:</p> + + <!-- XXXrefs: + [X690] http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf + --> + + <ol><li> + + <p>Use the appropriate step from the following list:</p> + + <dl class=switch><!-- + + <dt>If the <code title="attr-keygen-keytype">keytype</code> + attribute is in the <i title="">EC</i> state</dt> + + <dd> + + <p>... + + </dd> + + http://www.mail-archive.com/dev-tech-crypto@lists.mozilla.org/msg05902.html + + --><dt>If the <code title=attr-keygen-keytype><a href=#attr-keygen-keytype>keytype</a></code> + attribute is in the <i title="">RSA</i> state</dt> + + <dd> + + <p>Generate an RSA key pair using the settings given by the + user, if appropriate.</p> + + <p>Select an RSA signature algorithm from those listed in + section 7.2.1 ("RSA Signature Algorithm") of RFC2459. <a href=#references>[RFC2459]</a></p> + + </dd> + + <dt>Otherwise, the <code title=attr-keygen-keytype><a href=#attr-keygen-keytype>keytype</a></code> attribute is in the <i title="">unknown</i> state</dt> + + <dd> + + <p>The given key type is not supported. Return the empty string + and abort this algorithm.</p> + + </dd> + + </dl><p>Let <var title="">private key</var> be the generated private key.</p> + + <p>Let <var title="">public key</var> be the generated public key.</p> + + <p>Let <var title="">signature algorithm</var> be the selected + signature algorithm.</p> + + </li> + + <li> + + <p>If the element has a <code title=attr-keygen-challenge><a href=#attr-keygen-challenge>challenge</a></code> attribute, then let + <var title="">challenge</var> be that attribute's value. + Otherwise, let <var title="">challenge</var> be the empty + string.</p> + + </li> + + <li> + + <p>Let <var title="">algorithm</var> be an ASN.1 <code title="">AlgorithmIdentifier</code> structure as defined by + RFC2459, with the <code title="">algorithm</code> field giving the + ASN.1 OID used to identify <var title="">signature + algorithm</var>, using the OIDs defined in section 7.2 ("Signature + Algorithms") of RFC2459, and the <code title="">parameters</code> + field set up as required by RFC2459 for <code title="">AlgorithmIdentifier</code> structures for that + algorithm. <a href=#references>[X690]</a> <a href=#references>[RFC2459]</a></p> + + </li> + + <li> + + <p>Let <var title="">spki</var> be an ASN.1 <code title="">SubjectPublicKeyInfo</code> structure as defined by + RFC2459, with the <code title="">algorithm</code> field set to the + <var title="">algorithm</var> structure from the previous step, + and the <code title="">subjectPublicKey</code> field set to the + BIT STRING value resulting from ASN.1 DER encoding the <var title="">public key</var>. <a href=#references>[X690]</a> <a href=#references>[RFC2459]</a></p> + + </li> + + <li> + + <p>Let <var title="">publicKeyAndChallenge</var> be an ASN.1 + <code><a href=#publickeyandchallenge>PublicKeyAndChallenge</a></code> structure as defined below, + with the <code title="">spki</code> field set to the <var title="">spki</var> structure from the previous step, and the + <code title="">challenge</code> field set to the string <var title="">challenge</var> obtained earlier. <a href=#references>[X690]</a></p> + + </li> + + <li> + + <p>Let <var title="">signature</var> be the BIT STRING value + resulting from ASN.1 DER encoding the signature generated by + applying the <var title="">signature algorithm</var> to the byte + string obtained by ASN.1 DER encoding the <var title="">publicKeyAndChallenge</var> structure, using <var title="">private key</var> as the signing key. <a href=#references>[X690]</a></p> + + </li> + + <li> + + <p>Let <var title="">signedPublicKeyAndChallenge</var> be an ASN.1 + <code><a href=#signedpublickeyandchallenge>SignedPublicKeyAndChallenge</a></code> structure as defined + below, with the <code title="">publicKeyAndChallenge</code> field + set to the <var title="">publicKeyAndChallenge</var> structure, + the <code title="">signatureAlgorithm</code> field set to the <var title="">algorithm</var> structure, and the <code title="">signature</code> field set to the BIT STRING <var title="">signature</var> from the previous step. <a href=#references>[X690]</a></p> + + </li> + + <li> + + <p>Return the result of base64 encoding the result of ASN.1 DER + encoding the <var title="">signedPublicKeyAndChallenge</var> + structure. <a href=#references>[RFC3548]</a><!--base64--> <a href=#references>[X690]</a></p> + + </li> + + </ol><p>The data objects used by the above algorithm are defined as + follows. These definitions use the same "ASN.1-like" syntax defined + by RFC2459. <a href=#references>[RFC2459]</a></p> + + <pre class=asn><dfn id=publickeyandchallenge>PublicKeyAndChallenge</dfn> ::= SEQUENCE { + spki <span>SubjectPublicKeyInfo</span>, + challenge IA5STRING +} + +<dfn id=signedpublickeyandchallenge>SignedPublicKeyAndChallenge</dfn> ::= SEQUENCE { + publicKeyAndChallenge <a href=#publickeyandchallenge>PublicKeyAndChallenge</a>, + signatureAlgorithm <span>AlgorithmIdentifier</span>, + signature BIT STRING +}</pre> + + <hr><p><strong>Constraint validation:</strong> The <code><a href=#the-keygen-element>keygen</a></code> + element is <a href=#barred-from-constraint-validation>barred from constraint validation</a>.</p> + + </div><p>The <code title=attr-fae-form><a href=#attr-fae-form>form</a></code> attribute is used to + explicitly associate the <code><a href=#the-keygen-element>keygen</a></code> element with its + <a href=#form-owner>form owner</a>. The <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> + attribute represents the element's name. The <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code> attribute is used to make + the control non-interactive and to prevent its value from being + submitted. The <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code> + attribute controls focus.<dl class=domintro><dt><var title="">keygen</var> . <code title=attr-keygen-type>type</code></dt> + + <dd> + + <p>Returns the string "<code title="">keygen</code>".</p> + + </dd> + + </dl><div class=impl> + + <p>The <dfn id=dom-keygen-challenge title=dom-keygen-challenge><code>challenge</code></dfn> and <dfn id=dom-keygen-keytype title=dom-keygen-keytype><code>keytype</code></dfn> DOM attributes + must <a href=#reflect>reflect</a> the respective content attributes of the + same name.</p> + + <p>The <dfn id=dom-keygen-type title=dom-keygen-type><code>type</code></dfn> DOM + attribute must return the value "<code title="">keygen</code>".</p> + + <p>The <code title=dom-cva-willValidate><a href=#dom-cva-willvalidate>willValidate</a></code>, <code title=dom-cva-validity><a href=#dom-cva-validity>validity</a></code>, and <code title=dom-cva-validationMessage><a href=#dom-cva-validationmessage>validationMessage</a></code> + attributes, and the <code title=dom-cva-checkValidatity><a href=#dom-cva-checkvalidatity>checkValidity()</a></code> and <code title=dom-cva-setCustomValidity><a href=#dom-cva-setcustomvalidity>setCustomValidity()</a></code> + methods, are part of the <a href=#the-constraint-validation-api>constraint validation API</a>. The + <code title=dom-lfe-labels><a href=#dom-lfe-labels>labels</a></code> attribute provides a list + of the element's <code><a href=#the-label-element>label</a></code>s.</p> + + </div><p class=note>This specification does not specify how the private + key generated is to be used. It is expected that after receiving the + <code><a href=#signedpublickeyandchallenge>SignedPublicKeyAndChallenge</a></code> (SPKAC) structure, the + server will generate a client certificate and offer it back to the + user for download; this certificate, once downloaded and stored in + the key store along with the private key, can then be used to + authenticate to services that use SSL and certificate + authentication.<h4 id=the-output-element><span class=secno>4.10.12 </span>The <dfn><code>output</code></dfn> element</h4><dl class=element><dt>Categories</dt> <dd><a href=#flow-content-0>Flow content</a>.</dd> <dd><a href=#phrasing-content-0>Phrasing content</a>.</dd> <dd><a href=#category-listed title=category-listed>Listed</a> and <a href=#category-reset title=category-reset>resettable</a> <a href=#form-associated-element>form-associated element</a>.</dd> @@ -29812,7 +30051,7 @@ attribute.</p> <p>The <a href=#concept-form-reset-control title=concept-form-reset-control>reset - algorithm</a> for <code><a href=#the-textarea-element>textarea</a></code> elements is to set the + algorithm</a> for <code><a href=#the-output-element>output</a></code> elements is to set the element's <code><a href=#textcontent>textContent</a></code> DOM attribute to the value of the element's <code title=dom-output-defaultValue><a href=#dom-output-defaultvalue>defaultValue</a></code> DOM attribute (thus replacing the element's child nodes), and then @@ -29877,7 +30116,7 @@ elements are always <a href=#barred-from-constraint-validation>barred from constraint validation</a>.</p> - </div><h4 id=association-of-controls-and-forms><span class=secno>4.10.12 </span>Association of controls and forms</h4><!-- XXX consider xreffing the 'ID' term in this section --><p>A <a href=#form-associated-element>form-associated element</a> can have a relationship + </div><h4 id=association-of-controls-and-forms><span class=secno>4.10.13 </span>Association of controls and forms</h4><!-- XXX consider xreffing the 'ID' term in this section --><p>A <a href=#form-associated-element>form-associated element</a> can have a relationship with a <code><a href=#the-form-element>form</a></code> element, which is called the element's <dfn id=form-owner>form owner</dfn>. If a <a href=#form-associated-element>form-associated element</a> is not associated with a <code><a href=#the-form-element>form</a></code> element, its <a href=#form-owner>form @@ -29993,7 +30232,7 @@ <a href=#form-owner>form owner</a>, it is <a href=#barred-from-constraint-validation>barred from constraint validation</a>.</p> - </div><h4 id=attributes-common-to-form-controls><span class=secno>4.10.13 </span><dfn>Attributes common to form controls</dfn></h4><h5 id=naming-form-controls><span class=secno>4.10.13.1 </span>Naming form controls</h5><p>The <dfn id=attr-fe-name title=attr-fe-name><code>name</code></dfn> content + </div><h4 id=attributes-common-to-form-controls><span class=secno>4.10.14 </span><dfn>Attributes common to form controls</dfn></h4><h5 id=naming-form-controls><span class=secno>4.10.14.1 </span>Naming form controls</h5><p>The <dfn id=attr-fe-name title=attr-fe-name><code>name</code></dfn> content attribute gives the name of the form control, as used in <a href=#form-submission-0>form submission</a> and in the <code><a href=#the-form-element>form</a></code> element's <code title=dom-form-elements><a href=#dom-form-elements>elements</a></code> object. If the attribute is specified, its value must not be the empty string.<div class=impl> @@ -30007,7 +30246,7 @@ <p>The <dfn id=dom-fe-name title=dom-fe-name><code>name</code></dfn> DOM attribute must <a href=#reflect>reflect</a> the <code title=attr-fe-name><a href=#attr-fe-name>name</a></code> content attribute.</p> - </div><h5 id=enabling-and-disabling-form-controls><span class=secno>4.10.13.2 </span>Enabling and disabling form controls</h5><p>The <dfn id=attr-fe-disabled title=attr-fe-disabled><code>disabled</code></dfn> + </div><h5 id=enabling-and-disabling-form-controls><span class=secno>4.10.14.2 </span>Enabling and disabling form controls</h5><p>The <dfn id=attr-fe-disabled title=attr-fe-disabled><code>disabled</code></dfn> content attribute is a <a href=#boolean-attribute>boolean attribute</a>.<p>A form control is <dfn id=concept-fe-disabled title=concept-fe-disabled>disabled</dfn> if its <code title=attr-fe-disabled><a href=#attr-fe-disabled>disabled</a></code> attribute is set, or if it is a descendant of a <code><a href=#the-fieldset-element>fieldset</a></code> element @@ -30026,14 +30265,14 @@ </div><div class=impl> - <h5 id=a-form-control-s-value><span class=secno>4.10.13.3 </span>A form control's value</h5> + <h5 id=a-form-control-s-value><span class=secno>4.10.14.3 </span>A form control's value</h5> <p>Form controls have a <dfn id=concept-fe-value title=concept-fe-value>value</dfn> and a <dfn id=concept-fe-checked title=concept-fe-checked>checkedness</dfn>. (The latter is only used by <code><a href=#the-input-element>input</a></code> elements.) These are used to describe how the user interacts with the control.</p> - </div><h5 id=autofocusing-a-form-control><span class=secno>4.10.13.4 </span>Autofocusing a form control</h5><p>The <dfn id=attr-fe-autofocus title=attr-fe-autofocus><code>autofocus</code></dfn> + </div><h5 id=autofocusing-a-form-control><span class=secno>4.10.14.4 </span>Autofocusing a form control</h5><p>The <dfn id=attr-fe-autofocus title=attr-fe-autofocus><code>autofocus</code></dfn> content attribute allows the user to indicate that a control is to be focused as soon as the page is loaded, allowing the user to just start typing without having to manually focus the main control.<p>The <code title=attr-fe-autofocus><a href=#attr-fe-autofocus>autofocus</a></code> attribute is @@ -30067,7 +30306,7 @@ the document was loaded.</p> <pre><input maxlength="256" name="q" value="" autofocus> <input type="submit" value="Search"></pre> - </div><h5 id=limiting-user-input-length><span class=secno>4.10.13.5 </span>Limiting user input length</h5><p>A <dfn id=attr-fe-maxlength title=attr-fe-maxlength>form control <code title="">maxlength</code> attribute</dfn>, controlled by a <var title="">dirty value flag</var> declares a limit on the number of + </div><h5 id=limiting-user-input-length><span class=secno>4.10.14.5 </span>Limiting user input length</h5><p>A <dfn id=attr-fe-maxlength title=attr-fe-maxlength>form control <code title="">maxlength</code> attribute</dfn>, controlled by a <var title="">dirty value flag</var> declares a limit on the number of characters a user can input.<p>If an element has its <a href=#attr-fe-maxlength title=attr-fe-maxlength>form control <code title="">maxlength</code> attribute</a> specified, the attribute's value must be a <a href=#valid-non-negative-integer>valid non-negative @@ -30088,7 +30327,7 @@ <a href=#codepoint-length>codepoint length</a> is greater than the element's <a href=#maximum-allowed-value-length>maximum allowed value length</a>.</p> - </div><h5 id=form-submission><span class=secno>4.10.13.6 </span>Form submission</h5><p><dfn id=attributes-for-form-submission>Attributes for form submission</dfn> can be specified both + </div><h5 id=form-submission><span class=secno>4.10.14.6 </span>Form submission</h5><p><dfn id=attributes-for-form-submission>Attributes for form submission</dfn> can be specified both on <code><a href=#the-form-element>form</a></code> elements and on <a href=#concept-submit-button title=concept-submit-button>submit button</a> (elements that represent buttons that submit forms, e.g. an <code><a href=#the-input-element>input</a></code> element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is @@ -30182,7 +30421,7 @@ attribute. The <dfn id=dom-fs-formtarget title=dom-fs-formTarget><code>formTarget</code></dfn> DOM attribute must reflect the <code title=attr-fs-formtarget><a href=#attr-fs-formtarget>formtarget</a></code> content attribute. - </div><h4 id=constraints><span class=secno>4.10.14 </span>Constraints</h4><h5 id=definitions><span class=secno>4.10.14.1 </span>Definitions</h5><div class=impl> + </div><h4 id=constraints><span class=secno>4.10.15 </span>Constraints</h4><h5 id=definitions><span class=secno>4.10.15.1 </span>Definitions</h5><div class=impl> <p>A <a href=#category-listed title=category-listed>listed form-associated element</a> is a <dfn id=candidate-for-constraint-validation>candidate for constraint validation</dfn> @@ -30263,7 +30502,7 @@ </div><div class=impl> - <h5 id=constraint-validation><span class=secno>4.10.14.2 </span>Constraint validation</h5> + <h5 id=constraint-validation><span class=secno>4.10.15.2 </span>Constraint validation</h5> <p>When the user agent is required to <dfn id=statically-validate-the-constraints>statically validate the constraints</dfn> of <code><a href=#the-form-element>form</a></code> element <var title="">form</var>, it must run the following steps, which return @@ -30343,7 +30582,7 @@ <li><p>Return a <i>negative</i> result.</li> - </ol></div><h5 id=the-constraint-validation-api><span class=secno>4.10.14.3 </span>The <dfn>constraint validation API</dfn></h5><dl class=domintro><dt><var title="">element</var> . <code title=dom-cva-willValidate><a href=#dom-cva-willvalidate>willValidate</a></code></dt> + </ol></div><h5 id=the-constraint-validation-api><span class=secno>4.10.15.3 </span>The <dfn>constraint validation API</dfn></h5><dl class=domintro><dt><var title="">element</var> . <code title=dom-cva-willValidate><a href=#dom-cva-willvalidate>willValidate</a></code></dt> <dd> @@ -30536,7 +30775,7 @@ </div><div class=impl> - <h5 id=security-0><span class=secno>4.10.14.4 </span>Security</h5> + <h5 id=security-0><span class=secno>4.10.15.4 </span>Security</h5> <p>Servers should not rely on client-side validation. Client-side validation can be intentionally bypassed by hostile users, and @@ -30545,15 +30784,15 @@ validation features are only intended to improve the user experience, not to provide any kind of security mechanism.</p> - </div><h4 id=form-submission-0><span class=secno>4.10.15 </span><dfn>Form submission</dfn></h4><div class=impl> + </div><h4 id=form-submission-0><span class=secno>4.10.16 </span><dfn>Form submission</dfn></h4><div class=impl> - <h5 id=introduction-0><span class=secno>4.10.15.1 </span>Introduction</h5> + <h5 id=introduction-0><span class=secno>4.10.16.1 </span>Introduction</h5> <p><em>This section is non-normative.</em></p> </div><p class=XXX> ... <div class=impl> - <h5 id=implicit-submission><span class=secno>4.10.15.2 </span>Implicit submission</h5> + <h5 id=implicit-submission><span class=secno>4.10.16.2 </span>Implicit submission</h5> <p>User agents may establish a <a href=#concept-button title=concept-button>button</a> in each form as being the form's <dfn id=default-button>default button</dfn>. This should be the first <a href=#concept-submit-button title=concept-submit-button>submit button</a> in <a href=#tree-order>tree @@ -30579,7 +30818,7 @@ </div><div class=impl> - <h5 id=form-submission-algorithm><span class=secno>4.10.15.3 </span>Form submission algorithm</h5> + <h5 id=form-submission-algorithm><span class=secno>4.10.16.3 </span>Form submission algorithm</h5> <p>When a form <var title="">form</var> is <dfn id=concept-form-submit title=concept-form-submit>submitted</dfn> from an element <var title="">submitter</var> (typically a button), the user agent must run the following steps:</p> @@ -31107,7 +31346,7 @@ </ol></div><div class=impl> - <h5 id=url-encoded-form-data><span class=secno>4.10.15.4 </span>URL-encoded form data</h5> + <h5 id=url-encoded-form-data><span class=secno>4.10.16.4 </span>URL-encoded form data</h5> <p>The <dfn id=application-x-www-form-urlencoded-encoding-algorithm><code title="">application/x-www-form-urlencoded</code> encoding algorithm</dfn> is as follows:</p> @@ -31200,7 +31439,7 @@ </ol></div><div class=impl> - <h5 id=multipart-form-data><span class=secno>4.10.15.5 </span>Multipart form data</h5> + <h5 id=multipart-form-data><span class=secno>4.10.16.5 </span>Multipart form data</h5> <p>The <dfn id=multipart-form-data-encoding-algorithm><code title="">multipart/form-data</code> encoding algorithm</dfn> is to encode the <var title="">form data set</var> @@ -31218,7 +31457,7 @@ </div><div class=impl> - <h5 id=plain-text-form-data><span class=secno>4.10.15.6 </span>Plain text form data</h5> + <h5 id=plain-text-form-data><span class=secno>4.10.16.6 </span>Plain text form data</h5> <p>The <dfn id=text-plain-encoding-algorithm><code title="">text/plain</code> encoding algorithm</dfn> is as follows:</p> @@ -31273,7 +31512,7 @@ </ol></div><div class=impl> - <h4 id=resetting-a-form><span class=secno>4.10.16 </span>Resetting a form</h4> + <h4 id=resetting-a-form><span class=secno>4.10.17 </span>Resetting a form</h4> <p>When a form <var title="">form</var> is <dfn id=concept-form-reset title=concept-form-reset>reset</dfn>, the user agent must invoke the <a href=#concept-form-reset-control title=concept-form-reset-control>reset algorithm</a> @@ -31290,7 +31529,7 @@ </div><div class=impl> - <h4 id=event-dispatch><span class=secno>4.10.17 </span>Event dispatch</h4> + <h4 id=event-dispatch><span class=secno>4.10.18 </span>Event dispatch</h4> <p>When the user agent is to <dfn id=broadcast-forminput-events>broadcast <code title=event-forminput>forminput</code> events</dfn> or <dfn id=broadcast-formchange-events>broadcast <code title=event-formchange>formchange</code> @@ -49860,7 +50099,8 @@ </dd> <dt>A start tag whose tag name is one of: "area", "basefont", - "bgsound", "br", "embed", "img", "input", "spacer", "wbr"</dt> + "bgsound", "br", "embed", "img", "input", "keygen", "spacer", + "wbr"</dt> <dd> <p><a href=#reconstruct-the-active-formatting-elements>Reconstruct the active formatting elements</a>, if @@ -49984,15 +50224,6 @@ </dd> -<!-- XXX keygen support; don't forget form element pointer! - Search for 'keygen' elsewhere in the spec when doing this. - - <dt>A start tag whose tag name is "keygen"</dt> - <dd> - ... - </dd> ---> - <dt>A start tag whose tag name is "textarea"</dt> <dd> @@ -50188,10 +50419,9 @@ "thead", "tr"</dt> <!--<dt>An end tag whose tag name is one of: "area", "base", "basefont", "bgsound", "command", "embed", "hr", "iframe", "image", - "img", "input", "isindex", "link", "meta", "noembed", "noframes", - "param", "script", "select", "source", "spacer", "style", "table", - "textarea", "title", "wbr"</dt>--> <!-- add keygen if we add the - start tag --> + "img", "input", "isindex", "keygen", "link", "meta", "noembed", + "noframes", "param", "script", "select", "source", "spacer", + "style", "table", "textarea", "title", "wbr"</dt>--> <!--<dt>An end tag whose tag name is "noscript", if the <span>scripting flag</span> is enabled</dt>--> <dd> @@ -51911,13 +52141,13 @@ <code><a href=#the-area-element>area</a></code>, <code><a href=#the-base-element>base</a></code>, <code>basefont</code>, <code>bgsound</code>, <code><a href=#the-br-element>br</a></code>, <code><a href=#the-col-element>col</a></code>, <code><a href=#the-embed-element>embed</a></code>, <code>frame</code>, <code><a href=#the-hr-element>hr</a></code>, - <code><a href=#the-img-element>img</a></code>, <code><a href=#the-input-element>input</a></code>, <code><a href=#the-link-element>link</a></code>, - <code><a href=#meta>meta</a></code>, <code><a href=#the-param-element>param</a></code>, <code>spacer</code>, or - <code>wbr</code> element, then continue on to the next child - node at this point.</p> <!-- also, i guess: image, isindex, - and keygen, but we don't list those because we don't consider - those "elements", more "macros", and thus we should never - serialize them --> + <code><a href=#the-img-element>img</a></code>, <code><a href=#the-input-element>input</a></code>, <code><a href=#the-keygen-element>keygen</a></code>, + <code><a href=#the-link-element>link</a></code>, <code><a href=#meta>meta</a></code>, <code><a href=#the-param-element>param</a></code>, + <code>spacer</code>, or <code>wbr</code> element, then + continue on to the next child node at this point.</p> <!-- + also, i guess: image and isindex, but we don't list those + because we don't consider those "elements", more "macros", and + thus we should never serialize them --> <p>If <var title="">current node</var> is a <code><a href=#the-pre-element>pre</a></code>, <code><a href=#the-textarea-element>textarea</a></code>, or <code>listing</code> element, append @@ -55418,7 +55648,7 @@ <pre class=css>@namespace url(http://www.w3.org/1999/xhtml); -table, input, select, option, optgroup, button, textarea<!--, keygen --> { +table, input, select, option, optgroup, button, textarea, keygen { text-indent: initial; }</pre> @@ -56206,6 +56436,19 @@ + <h4 id=the-keygen-element-0><span class=secno>10.4.18 </span>The <code><a href=#the-keygen-element>keygen</a></code> element</h4> + + <pre class=css>@namespace url(http://www.w3.org/1999/xhtml); + +keygen { binding: <i title="">keygen</i>; }</pre> + + <p>When the <i title="">keygen</i> binding applies to a + <code><a href=#the-keygen-element>keygen</a></code> element, the element is expected to render as an + 'inline-block' box containing a user interface to configure the key + pair to be generated.</p> + + + <h3 id=frames-and-framesets><span class=secno>10.5 </span>Frames and framesets</h3> <p>When an <code><a href=#the-html-element>html</a></code> element's second child element is a @@ -57118,6 +57361,7 @@ Lachlan Hunt, Larry Page, Lars Gunther<!-- Keryx Web -->, + Lars Sunberg<!-- surname uncertain -->, Laura L. Carlson, Laura Wisewell, Laurens Holst, @@ -57257,6 +57501,7 @@ Wladimir Palant, Wolfram Kriesing, Yi-An Huang, + Yngve Nysaeter Pettersen, Zhenbin Xu, and Øistein E. Andersen,
Received on Tuesday, 7 April 2009 06:48:54 UTC