メインコンテンツへスキップ

keygen要素


1.仕様

KEYGEN要素は、
一対の鍵作成コントロールを
備えています。

keygen

一対の鍵作成コントロール (key pair generator control.)

HTML5.1 で非推奨, HTML5.2 で廃止の要素です。

種類
空要素

任意のコンテンツを持つことができない要素です。

カテゴリ

コンテンツモデル
何もない

要素のコンテンツモデルが「何もない」の場合、要素にはテキストノード (要素間の空白以外) と要素ノードが含まれていてはなりません。

タグの省略

終了タグはありません。

コンテンツ属性
グローバル属性 他
autofocus属性
ページが読み込まれたときにフォームコントロールに自動的にフォーカスする
challenge属性
生成され署名された公開鍵をパッケージ化する文字列
disabled属性
フォームコントロールが無効かどうか
form属性
コントロールをフォーム要素に関連付けます
keytype属性
生成する暗号鍵の種類
name属性
§4.10.22 フォーム送信および form.elements API で使用するフォームコントロールの名前
DOM インターフェイス

HTMLKeygenElement

ARIA in HTML
暗黙的="No" ARIAロール="No" aria-* 属性="Global"

暗黙的な ARIAセマンティクスがありませんが、意味はあり、この意味は、ARIA によって提供されず、ARIA のユーザーに公開されていないロール、状態、プロパティで表現される可能性があります。

作成者は、暗黙的な ARIAセマンティクス, または HTML要素のネイティブセマンティクスを上書きしてはいけません。

グローバル aria-* 属性が記述できます。

レンダリング
インラインレベルボックス
フォームコントロール
  1. keygen {
  2. display: inline-block;
  3. binding: keygen;
  4. }

CSS を大雑把に読むと、 インラインレベルのブロックコンテナボックス(インラインブロック)を生成します。 などになります。

説明
keygen要素は、コントロールのフォームが送信されると、秘密キーがローカルキーストアに保存され、公開キーがパッケージ化されてサーバーに送信されます。

keygen要素は、サポートされていない可能性もあるので、デモというよりとりあえずのソースコードの例示と思って頂けたら幸いです。

  1. <!DOCTYPE html>
  2. <html lang="ja">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>keygen要素の例 - (Example of keygen element) | 離珠のHTMLでしぃ!</title>
  6. </head>
  7. <body>
  8. <h1>keygen要素の例</h1>
  9. <form action="../Html/fmreceive.htm">
  10. <keygen>
  11. <input name="nipInput" value="abc">
  12. <button name="nbtSender" value="../Html/exkeygen.htm">ボタン</button>
  13. <br>受信用の<br>ページへ
  14. </form>
  15. <p>デモというより、とりあえずのソースコードの例示と思って頂けたら幸いです。</p>
  16. </body>
  17. </html>

このサンプルへのリンクです。
(./exkeygen.htm)

参照元
参照元
JSONデータ
JSON形式での、データのイメージです。
  1. {
  2. "keygen": {
  3. "check": "2024-09-01",
  4. "group": "Form",
  5. "element": "- X EMPTY -- key pair generator control. (Void elements.) [Flow|Phrasing|Interactive|Listed|Labelable|Submittable|Resettable|Form|Palpable] --",
  6. "attlist": {
  7. "%Global;": "",
  8. "autofocus": "(autofocus) #IMPLIED -- Automatically focus the form control when the page is loaded --",
  9. "challenge": "CDATA #IMPLIED -- String to package with the generated and signed public key --",
  10. "disabled": "(disabled) #IMPLIED -- Whether the form control is disabled --",
  11. "form": "IDREF #IMPLIED -- Associates the control with a form element --",
  12. "keytype": "(rsa) rsa -- The type of cryptographic key to generate --",
  13. "name": "CDATA #IMPLIED -- Name of form control to use for §4.10.22 Form submission and in the form.elements API --",
  14. },
  15. "comment": "一対の鍵作成コントロール (key pair generator control.)",
  16. "point": "コントロールのフォームが送信されると、秘密キーがローカルキーストアに保存され、公開キーがパッケージ化されてサーバーに送信されます。",
  17. "description": "サポートされていない可能性もあるので、デモというよりとりあえずのソースコードの例示と思って頂けたら幸いです。",
  18. "kind": "Void",
  19. "categories": [
  20. "Flow",
  21. "Phrasing",
  22. "Interactive",
  23. "Listed",
  24. "Labelable",
  25. "Submittable",
  26. "Resettable",
  27. "Formassociated",
  28. "Palpable",
  29. ],
  30. "used": "parent (%Phrasing)*",
  31. "contentmodel": "%Nothing",
  32. "tag": [
  33. "-",
  34. "X",
  35. ],
  36. "attributes": {
  37. "autofocus": "ページが読み込まれたときにフォームコントロールに自動的にフォーカスする",
  38. "challenge": "生成され署名された公開鍵をパッケージ化する文字列",
  39. "disabled": "フォームコントロールが無効かどうか",
  40. "form": "コントロールをフォーム要素に関連付けます",
  41. "keytype": "生成する暗号鍵の種類",
  42. "name": "§4.10.22 フォーム送信および form.elements API で使用するフォームコントロールの名前",
  43. },
  44. "dominterface": "HTMLKeygenElement",
  45. "rendering": [
  46. "Form",
  47. "Bidirectional",
  48. ],
  49. "reference": [
  50. {
  51. "title": "HTML Living Standard. 16.2 Non-conforming features.",
  52. "href": "https://html.spec.whatwg.org/multipage/obsolete.html#keygen",
  53. "heading": "HTML Living Standard. 16.2 Non-conforming features",
  54. "sub": "Last Updated 27 August 2024",
  55. },
  56. {
  57. "title": "HTML 5.1 W3C Recommendation. 4.10.12. The keygen element. W3C Recommendation, 1 November 2016.",
  58. "href": "https://www.w3.org/TR/2016/REC-html51-20161101/sec-forms.html#the-keygen-element",
  59. "heading": "HTML 5.1 W3C 勧告. 4.10.12. The keygen element",
  60. "sub": "W3C勧告、2016年11月1日",
  61. },
  62. {
  63. "title": "HTML 5.1 W3C Recommendation. 10.5.16. The keygen element. W3C Recommendation, 1 November 2016.",
  64. "href": "https://www.w3.org/TR/2016/REC-html51-20161101/rendering.html#the-keygen-element-rendering",
  65. "heading": "HTML 5.1 W3C 勧告. 10.5.16. The keygen element",
  66. "sub": "W3C勧告、2016年11月1日",
  67. },
  68. {
  69. "title": "HTML 5 W3C Recommendation. 4.10.12 The keygen element. W3C Recommendation, 28 October 2014.",
  70. "href": "https://www.w3.org/TR/2014/REC-html5-20141028/forms.html#the-keygen-element",
  71. "heading": "HTML 5 W3C 勧告. 4.10.12 The keygen element",
  72. "sub": "W3C勧告、2014年10月28日",
  73. },
  74. {
  75. "title": "HTML 5 W3C Recommendation. 10.5.15 The keygen element. W3C Recommendation, 28 October 2014.",
  76. "href": "https://www.w3.org/TR/2014/REC-html5-20141028/rendering.html#the-keygen-element-0",
  77. "heading": "HTML 5 W3C 勧告. 10.5.15 The keygen element.",
  78. "sub": "W3C勧告、2014年10月28日",
  79. },
  80. ],
  81. "version": {
  82. "first": "HTML5",
  83. "latest": "HTML5.1",
  84. },
  85. }
  86. }

注意: 簡易に描画する為に、各項目の後ろに , を付与しています。JSON の形式では、末尾の項目の後には , は付けません。

最終確認日

2024-09-01


2.使用可能な箇所

フレージングコンテンツ
受け入れる要素に
配置できます。

keygen要素を使用できる状態(コンテキストContext)は、フレージングコンテンツを受け入れる要素に配置できます。

フレージングコンテンツを受け入れる要素は、h1要素, h2要素, h3要素, h4要素, h5要素, h6要素, p要素, pre要素, output要素, progress要素, meter要素, label要素, datalist要素, body要素, section要素, nav要素, aside要素, article要素, header要素, footer要素, main要素, address要素, li要素, dt要素, dd要素, caption要素, th要素, td要素, form要素, fieldset要素, search要素, blockquote要素, figure要素, figcaption要素, div要素, dialog要素, abbr要素, b要素, bdi要素, bdo要素, cite要素, code要素, data要素, dfn要素, em要素, i要素, kbd要素, mark要素, q要素, s要素, samp要素, small要素, span要素, strong要素, sub要素, sup要素, u要素, var要素 です。

尚 厳密に言うと、コンテンツモデルフレージングコンテンツ, フローコンテンツのいずれかである要素に配置できます。少なくとも現在は、カテゴリフレージングコンテンツである要素はフローコンテンツでもあります。なので、コンテンツモデルフローコンテンツである要素にはカテゴリフレージングコンテンツである要素も配置できるのが現状です。


3.配置できるコンテンツ

配置可能なコンテンツは
ありません。

keygenは、(内容コンテンツContent)を持つことができない空要素です。


4.属性

グローバル属性と、
autofocus
challenge
disabled
form
keytype
name を
設定できます。

keygenは、グローバル属性autofocus属性, challenge属性, disabled属性, form属性, keytype属性, name属性を設定できます。

autofocus属性

ページが読み込まれたときにフォームコントロールに自動的にフォーカスする。

challenge属性

生成され署名された公開鍵をパッケージ化する文字列。

disabled属性

フォームコントロールが無効かどうか。

form属性

コントロールをフォーム要素に関連付けます。

keytype属性

生成する暗号鍵の種類。

name属性

§4.10.22 フォーム送信および form.elements API で使用するフォームコントロールの名前。


5.Web API

name属性を用いて
form要素
(HTMLFormElement
オブジェクト)の
プロパティとして
要素を取得する方法が
お勧めです。

keygen要素単体を表すプロパティはないですが、まずform要素を取得して、nameの属性値を名称とするそれのプロパティとして要素を取得する方法がお勧めです。


6.レンダリング

  1. keygen {
  2. display: inline-block;
  3. binding: keygen;
  4. }

keygen要素は、インラインレベルのブロックコンテナボックス(インラインブロック)を生成します。

keygen バインディングがkeygen要素に適用される場合、その要素は、生成されるキーペアを構成するためのユーザーインターフェイスを含む「インラインブロック」ボックスとしてレンダリングされることが予想されます。


7.気を付ける点

非準拠機能

keygenは、HTML Living Standard で非準拠機能となっており、サポートされていない場合もあり、使わない方が良いと思います。

keygenは、HTML Living Standard で、
「エンタープライズデバイス管理のユースケースでは、ネイティブのデバイス管理機能を使用します。 証明書登録のユースケースでは、Web 暗号化 API を使用して証明書のキーペアを生成し、証明書とキーをエクスポートしてユーザーが手動でインストールできるようにします。」
とあります。


8.付記