asciidoctor-rfc 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -0
  3. data/.oss-guides.rubocop.yml +1077 -0
  4. data/.rspec +1 -0
  5. data/.rubocop.yml +19 -1063
  6. data/.travis.yml +3 -2
  7. data/Guardfile +22 -0
  8. data/README.adoc +1151 -0
  9. data/Rakefile +1 -1
  10. data/asciidoctor-rfc.gemspec +20 -3
  11. data/bin/asciidoctor-rfc2 +15 -0
  12. data/bin/asciidoctor-rfc3 +15 -0
  13. data/bin/rspec +0 -1
  14. data/lib/asciidoctor-rfc.rb +4 -0
  15. data/lib/asciidoctor/rfc/common/base.rb +218 -0
  16. data/lib/asciidoctor/rfc/common/front.rb +120 -0
  17. data/lib/asciidoctor/rfc/v2/base.rb +341 -0
  18. data/lib/asciidoctor/rfc/v2/blocks.rb +192 -0
  19. data/lib/asciidoctor/rfc/v2/converter.rb +64 -0
  20. data/lib/asciidoctor/rfc/v2/front.rb +69 -0
  21. data/lib/asciidoctor/rfc/v2/inline_anchor.rb +102 -0
  22. data/lib/asciidoctor/rfc/v2/lists.rb +134 -0
  23. data/lib/asciidoctor/rfc/v2/table.rb +112 -0
  24. data/lib/asciidoctor/rfc/v2/validate.rb +738 -0
  25. data/lib/asciidoctor/rfc/v2/validate2.rng +716 -0
  26. data/lib/asciidoctor/rfc/v3/base.rb +358 -0
  27. data/lib/asciidoctor/rfc/v3/blocks.rb +203 -0
  28. data/lib/asciidoctor/rfc/v3/converter.rb +64 -0
  29. data/lib/asciidoctor/rfc/v3/front.rb +115 -0
  30. data/lib/asciidoctor/rfc/v3/inline_anchor.rb +90 -0
  31. data/lib/asciidoctor/rfc/v3/lists.rb +190 -0
  32. data/lib/asciidoctor/rfc/v3/svg.rng +9081 -0
  33. data/lib/asciidoctor/rfc/v3/table.rb +65 -0
  34. data/lib/asciidoctor/rfc/v3/validate.rb +2168 -0
  35. data/lib/asciidoctor/rfc/v3/validate.rng +2143 -0
  36. data/lib/asciidoctor/rfc/version.rb +2 -2
  37. data/spec/asciidoctor/rfc/v2/appendix_spec.rb +124 -0
  38. data/spec/asciidoctor/rfc/v2/area_spec.rb +60 -0
  39. data/spec/asciidoctor/rfc/v2/author_spec.rb +444 -0
  40. data/spec/asciidoctor/rfc/v2/comments_spec.rb +316 -0
  41. data/spec/asciidoctor/rfc/v2/crossref_spec.rb +205 -0
  42. data/spec/asciidoctor/rfc/v2/date_spec.rb +166 -0
  43. data/spec/asciidoctor/rfc/v2/dlist_spec.rb +108 -0
  44. data/spec/asciidoctor/rfc/v2/document_spec.rb +161 -0
  45. data/spec/asciidoctor/rfc/v2/example_spec.rb +50 -0
  46. data/spec/asciidoctor/rfc/v2/front_spec.rb +75 -0
  47. data/spec/asciidoctor/rfc/v2/image_spec.rb +81 -0
  48. data/spec/asciidoctor/rfc/v2/indexterm_spec.rb +66 -0
  49. data/spec/asciidoctor/rfc/v2/inline_formatting_spec.rb +177 -0
  50. data/spec/asciidoctor/rfc/v2/keyword_spec.rb +63 -0
  51. data/spec/asciidoctor/rfc/v2/listing_spec.rb +59 -0
  52. data/spec/asciidoctor/rfc/v2/literal_spec.rb +53 -0
  53. data/spec/asciidoctor/rfc/v2/olist_spec.rb +147 -0
  54. data/spec/asciidoctor/rfc/v2/paragraph_spec.rb +68 -0
  55. data/spec/asciidoctor/rfc/v2/preamble_spec.rb +140 -0
  56. data/spec/asciidoctor/rfc/v2/quote_spec.rb +24 -0
  57. data/spec/asciidoctor/rfc/v2/references_spec.rb +96 -0
  58. data/spec/asciidoctor/rfc/v2/section_spec.rb +260 -0
  59. data/spec/asciidoctor/rfc/v2/sidebar_spec.rb +32 -0
  60. data/spec/asciidoctor/rfc/v2/table_spec.rb +293 -0
  61. data/spec/asciidoctor/rfc/v2/ulist_spec.rb +96 -0
  62. data/spec/asciidoctor/rfc/v2/workgroup_spec.rb +60 -0
  63. data/spec/asciidoctor/rfc/v3/appendix_spec.rb +130 -0
  64. data/spec/asciidoctor/rfc/v3/area_spec.rb +63 -0
  65. data/spec/asciidoctor/rfc/v3/author_spec.rb +540 -0
  66. data/spec/asciidoctor/rfc/v3/comments_spec.rb +308 -0
  67. data/spec/asciidoctor/rfc/v3/crossref_spec.rb +269 -0
  68. data/spec/asciidoctor/rfc/v3/date_spec.rb +149 -0
  69. data/spec/asciidoctor/rfc/v3/dlist_spec.rb +121 -0
  70. data/spec/asciidoctor/rfc/v3/document_spec.rb +109 -0
  71. data/spec/asciidoctor/rfc/v3/example_spec.rb +34 -0
  72. data/spec/asciidoctor/rfc/v3/front_spec.rb +43 -0
  73. data/spec/asciidoctor/rfc/v3/image_spec.rb +81 -0
  74. data/spec/asciidoctor/rfc/v3/indexterm_spec.rb +69 -0
  75. data/spec/asciidoctor/rfc/v3/inline_formatting_spec.rb +319 -0
  76. data/spec/asciidoctor/rfc/v3/keyword_spec.rb +33 -0
  77. data/spec/asciidoctor/rfc/v3/link_spec.rb +34 -0
  78. data/spec/asciidoctor/rfc/v3/listing_spec.rb +59 -0
  79. data/spec/asciidoctor/rfc/v3/literal_spec.rb +51 -0
  80. data/spec/asciidoctor/rfc/v3/olist_spec.rb +168 -0
  81. data/spec/asciidoctor/rfc/v3/paragraph_spec.rb +73 -0
  82. data/spec/asciidoctor/rfc/v3/preamble_spec.rb +112 -0
  83. data/spec/asciidoctor/rfc/v3/quote_spec.rb +91 -0
  84. data/spec/asciidoctor/rfc/v3/references_spec.rb +147 -0
  85. data/spec/asciidoctor/rfc/v3/section_spec.rb +198 -0
  86. data/spec/asciidoctor/rfc/v3/series_info_spec.rb +151 -0
  87. data/spec/asciidoctor/rfc/v3/sidebar_spec.rb +30 -0
  88. data/spec/asciidoctor/rfc/v3/table_spec.rb +275 -0
  89. data/spec/asciidoctor/rfc/v3/ulist_spec.rb +74 -0
  90. data/spec/asciidoctor/rfc/v3/workgroup_spec.rb +33 -0
  91. data/spec/examples/davies-template-bare-06.adoc +361 -0
  92. data/spec/examples/davies-template-bare-06.xml.orig +426 -0
  93. data/spec/examples/example-v2.adoc +181 -0
  94. data/spec/examples/example-v2.xml +675 -0
  95. data/spec/examples/example-v3.adoc +185 -0
  96. data/spec/examples/example-v3.xml +1009 -0
  97. data/spec/examples/mib-doc-template-xml-06.adoc +596 -0
  98. data/spec/examples/mib-doc-template-xml-06.xml.orig +654 -0
  99. data/spec/examples/rfc1149.md +76 -0
  100. data/spec/examples/rfc1149.md.2.xml +94 -0
  101. data/spec/examples/rfc1149.md.3.xml +93 -0
  102. data/spec/examples/rfc1149.md.adoc +65 -0
  103. data/spec/examples/rfc2100.md +149 -0
  104. data/spec/examples/rfc2100.md.2.xml +169 -0
  105. data/spec/examples/rfc2100.md.3.xml +163 -0
  106. data/spec/examples/rfc2100.md.adoc +136 -0
  107. data/spec/examples/rfc3514.md +203 -0
  108. data/spec/examples/rfc3514.md.2.xml +238 -0
  109. data/spec/examples/rfc3514.md.3.xml +258 -0
  110. data/spec/examples/rfc3514.md.adoc +324 -0
  111. data/spec/examples/rfc5841.md +342 -0
  112. data/spec/examples/rfc5841.md.2.xml +393 -0
  113. data/spec/examples/rfc5841.md.3.xml +449 -0
  114. data/spec/examples/rfc5841.md.adoc +414 -0
  115. data/spec/examples/rfc6350.adoc +3499 -0
  116. data/spec/examples/rfc6350.bib +763 -0
  117. data/spec/examples/rfc748.md +79 -0
  118. data/spec/examples/rfc748.md.2.xml +116 -0
  119. data/spec/examples/rfc748.md.3.xml +109 -0
  120. data/spec/examples/rfc748.md.adoc +80 -0
  121. data/spec/examples/rfc7511.md +257 -0
  122. data/spec/examples/rfc7511.md.2.xml +300 -0
  123. data/spec/examples/rfc7511.md.3.xml +347 -0
  124. data/spec/examples/rfc7511.md.adoc +417 -0
  125. data/spec/spec_helper.rb +115 -5
  126. metadata +274 -9
  127. data/.hound.yml +0 -3
  128. data/README.md +0 -84
  129. data/lib/asciidoctor/rfc.rb +0 -7
  130. data/spec/asciidoctor-rfc/.keep +0 -0
@@ -0,0 +1,185 @@
1
+ = RFC XML v3 Example: A Standard for the Transmission of IP Datagrams on Avian Carriers
2
+ David Waitzman <dwaitzman@BBN.COM>; Nick Nicholas <opoudjis@gmail.com>
3
+ :doctype: rfc
4
+ :abbrev: IP Datagrams on Avian Carriers
5
+ :obsoletes: 10, 120
6
+ :updates: 2010, 2120
7
+ :name: rfc-1149
8
+ :status: full-standard 1149
9
+ :ipr: trust200902
10
+ :area: Internet
11
+ :workgroup: Network Working Group
12
+ :keyword: this, that
13
+ :revdate: 1990-04-01T00:00:00Z
14
+ :organization: BBN STC
15
+ :phone: (617) 873-4323
16
+ :uri: http://bbn.com
17
+ :street: 10 Moulton Street
18
+ :city: Cambridge
19
+ :code: MA 02238
20
+ :organization_2: BBN STC
21
+ :phone_2: (617) 873-4323
22
+ :street_2: 10 Moulton Street
23
+ :city_2: Cambridge
24
+ :code_2: MA 02238
25
+ :uri_2: http://opoudjis.net
26
+ :link: http://example1.com,http://example2.com author
27
+
28
+ [abstract]
29
+ Avian carriers can provide high delay, low throughput, and low
30
+ altitude service. The connection topology is limited to a single
31
+ point-to-point path for each carrier, used with standard carriers,
32
+ but many carriers can be used without significant interference with
33
+ each other, outside of early spring. This is because of the 3D ether
34
+ space available to the carriers, in contrast to the 1D ether used by
35
+ IEEE802.3. The carriers have an intrinsic collision avoidance
36
+ system, which increases availability. Unlike some network
37
+ technologies, such as packet radio, communication is not limited to
38
+ line-of-sight distance. Connection oriented service is available in
39
+ some cities, usually based upon a central hub topology.
40
+
41
+ NOTE: Yes, this is an April Fool's RFC.
42
+
43
+ [[frame]]
44
+ == Frame Format
45
+
46
+ The IP _datagram_ is *printed*, on a small scroll of paper, in
47
+ hexadecimal, with each octet separated by whitestuff and blackstuff.
48
+ The scroll of paper is wrapped around one leg of the avian carrier.
49
+ A band of duct tape is used to secure the datagram's edges. The
50
+ bandwidth is limited to the leg length. The MTU is variable, and
51
+ paradoxically, generally increases with increased carrier age. A
52
+ typical MTU is 256 milligrams. Some datagram padding may be needed.<<RFC7253,alt>>
53
+
54
+ Upon receipt, the duct tape is removed and the paper copy of the
55
+ datagram is optically scanned into a electronically transmittable
56
+ form.<<RFC7253>>
57
+
58
+ This document extends OpenPGP and its ECC extension to support SM2, SM3 and SM4:
59
+
60
+ * support the SM3 hash algorithm for data validation purposes
61
+ * support signatures utilizing the combination of SM3 with other digital
62
+ signing algorithms, such as RSA, ECDSA and SM2
63
+ * support the SM2 asymmetric encryption algorithm for public key
64
+ operations
65
+ * support usage of SM2 in combination with supported hash algorithms, such as
66
+ SHA-256 and SM3
67
+ * support the SM4 symmetric encryption algorithm for data protection purposes
68
+ * defines the OpenPGP profile "OSCCA-SM234" to enable usage of OpenPGP
69
+ in an OSCCA-compliant manner.
70
+
71
+ Algorithm-Specific Fields for SM2DSA keys:
72
+
73
+ * a variable-length field containing a curve OID, formatted
74
+ as follows:
75
+ .. a one-octet size of the following field; values 0 and
76
+ 0xFF are reserved for future extensions
77
+ .. octets representing a curve OID.
78
+ * MPI of an EC point representing a public key
79
+
80
+
81
+ === Definitions
82
+
83
+ OSCCA-compliant:: All cryptographic algorithms used are compliant with OSCCA regulations.
84
+ SM2DSA:: The elliptic curve digital signature algorithm. <<ISO.IEC.10118-3>>
85
+ SM2KEP:: The elliptic curve key exchange protocol.
86
+ SM2PKE:: The public key encryption algorithm.
87
+
88
+ ==== Elliptic Curve Formula
89
+
90
+ [stem]
91
+ ++++
92
+ y^2 = x^3 + ax + b
93
+ ++++
94
+
95
+ ==== Curve Parameters
96
+
97
+ [[curveparam1]]
98
+ .Curve Parameters Listing
99
+ ====
100
+ ....
101
+ p = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF
102
+ FFFFFFFF 00000000 FFFFFFFF FFFFFFFF
103
+ a = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF
104
+ FFFFFFFF 00000000 FFFFFFFF FFFFFFFC
105
+ b = 28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7
106
+ F39789F5 15AB8F92 DDBCBD41 4D940E93
107
+ n = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF
108
+ 7203DF6B 21C6052B 53BBF409 39D54123
109
+ x_G = 32C4AE2C 1F198119 5F990446 6A39C994
110
+ 8FE30BBF F2660BE1 715A4589 334C74C7
111
+ y_G = BC3736A2 F4F6779C 59BDCEE3 6B692153
112
+ D0A9877C C62A4740 02DF32E5 2139F0A0
113
+ ....
114
+ ====
115
+
116
+ == Supported Algorithms
117
+
118
+ === Public Key Algorithms
119
+
120
+ The SM2 algorithm is supported with the following extension.
121
+
122
+ NOTE: ECDH is defined in Section 8 of this document.
123
+
124
+ The following public key algorithm IDs are added to expand Section
125
+ 9.1 of RFC4880, "Public-Key Algorithms":
126
+
127
+ .Table 2
128
+ |===
129
+ |ID | Description of Algorithm
130
+
131
+ |TBD | SM2
132
+ |===
133
+
134
+
135
+
136
+ == Security Considerations
137
+
138
+ Security is not generally a problem in normal operation, but special +
139
+ measures [bcp14]#MUST# be taken (such as data encryption) when avian carriers
140
+ are used in a tactical environment.<<RFC7253>>, <<ISO.IEC.10118-3>>
141
+
142
+ [bibliography]
143
+ == References
144
+ * [[[RFC7253,1]]]
145
+ * [[[ISO.IEC.10118-3,2]]]
146
+ ++++
147
+ <reference anchor='ISO.IEC.10118-3' target='https://www.iso.org/standard/67116.html'>
148
+ <front>
149
+ <title>ISO/IEC FDIS 10118-3 -- Information technology -- Security techniques -- Hash-functions -- Part 3: Dedicated hash-functions</title>
150
+ <author>
151
+ <organization>International Organization for Standardization</organization>
152
+ <address>
153
+ <postal>
154
+ <street>BIBC II</street>
155
+ <street>Chemin de Blandonnet 8</street>
156
+ <street>CP 401</street>
157
+ <city>Vernier</city>
158
+ <region>Geneva</region>
159
+ <code>1214</code>
160
+ <country>Switzerland</country>
161
+ </postal>
162
+ <phone>+41 22 749 01 11</phone>
163
+ <email>central@iso.org</email>
164
+ <uri>https://www.iso.org/</uri>
165
+ </address>
166
+ </author>
167
+ <date day='15' month='September' year='2017'/>
168
+ </front>
169
+ </reference>
170
+
171
+ <reference anchor='RFC7253' target='https://tools.ietf.org/html/rfc7253'>
172
+ <front>
173
+ <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
174
+ <author initials="T." surname="Krovetz">
175
+ <organization>Sacramento State</organization>
176
+ </author>
177
+ <author initials="P." surname="Rogaway">
178
+ <organization>UC Davis</organization>
179
+ </author>
180
+ <date month='May' year='2014'/>
181
+ </front>
182
+ <seriesInfo name="RFC" value="7253"/>
183
+ </reference>
184
+ ++++
185
+
@@ -0,0 +1,1009 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <rfc ipr="trust200902" obsoletes="10, 120" updates="2010, 2120" submissionType="IETF" prepTime="2017-10-17T12:03:45Z" version="3">
3
+ <link href="http://example1.com"/><link href="http://example2.com" rel="author"/>
4
+ <front>
5
+
6
+ <title abbrev="IP Datagrams on Avian Carriers">RFC XML v3 Example: A Standard for the Transmission of IP Datagrams on Avian Carriers</title>
7
+
8
+ <seriesInfo name="RFC" status="full-standard 1149" stream="IETF" value="1149"/>
9
+
10
+ <author fullname="David Waitzman" surname="Waitzman">
11
+
12
+ <organization>BBN STC</organization>
13
+
14
+ <address>
15
+
16
+ <postal>
17
+
18
+ <street>10 Moulton Street</street>
19
+
20
+ <city>Cambridge</city>
21
+
22
+ <code>MA 02238</code>
23
+
24
+ </postal>
25
+
26
+ <phone>(617) 873-4323</phone>
27
+
28
+ <email>dwaitzman@BBN.COM</email>
29
+
30
+ <uri>http://bbn.com</uri>
31
+
32
+ </address>
33
+
34
+ </author>
35
+
36
+ <author fullname="Nick Nicholas" surname="Nicholas">
37
+
38
+ <organization>BBN STC</organization>
39
+
40
+ <address>
41
+
42
+ <postal>
43
+
44
+ <street>10 Moulton Street</street>
45
+
46
+ <city>Cambridge</city>
47
+
48
+ <code>MA 02238</code>
49
+
50
+ </postal>
51
+
52
+ <phone>(617) 873-4323</phone>
53
+
54
+ <email>opoudjis@gmail.com</email>
55
+
56
+ <uri>http://opoudjis.net</uri>
57
+
58
+ </address>
59
+
60
+ </author>
61
+
62
+ <date day="1" month="April" year="1990"/>
63
+
64
+ <area>Internet</area>
65
+
66
+ <workgroup>Network Working Group</workgroup>
67
+
68
+ <keyword>this</keyword>
69
+
70
+ <keyword>that</keyword>
71
+
72
+
73
+ <abstract>
74
+ <t>Avian carriers can provide high delay, low throughput, and low
75
+
76
+ altitude service. The connection topology is limited to a single
77
+
78
+ point-to-point path for each carrier, used with standard carriers,
79
+
80
+ but many carriers can be used without significant interference with
81
+
82
+ each other, outside of early spring. This is because of the 3D ether
83
+
84
+ space available to the carriers, in contrast to the 1D ether used by
85
+
86
+ IEEE802.3. The carriers have an intrinsic collision avoidance
87
+
88
+ system, which increases availability. Unlike some network
89
+
90
+ technologies, such as packet radio, communication is not limited to
91
+
92
+ line-of-sight distance. Connection oriented service is available in
93
+
94
+ some cities, usually based upon a central hub topology.</t>
95
+ </abstract>
96
+ <note>
97
+
98
+ <t>Yes, this is an April Fool&amp;#8217;s RFC.</t>
99
+
100
+ </note>
101
+ </front><middle>
102
+ <section anchor="frame" numbered="false"><name>Frame Format</name><t>The IP <em>datagram</em> is <strong>printed</strong>, on a small scroll of paper, in
103
+
104
+
105
+
106
+ hexadecimal, with each octet separated by whitestuff and blackstuff.
107
+
108
+
109
+
110
+ The scroll of paper is wrapped around one leg of the avian carrier.
111
+
112
+
113
+
114
+ A band of duct tape is used to secure the datagram’s edges. The
115
+
116
+
117
+
118
+ bandwidth is limited to the leg length. The MTU is variable, and
119
+
120
+
121
+
122
+ paradoxically, generally increases with increased carrier age. A
123
+
124
+
125
+
126
+ typical MTU is 256 milligrams. Some datagram padding may be needed.<xref target="RFC7253">alt</xref></t>
127
+
128
+ <t>Upon receipt, the duct tape is removed and the paper copy of the
129
+
130
+
131
+
132
+ datagram is optically scanned into a electronically transmittable
133
+
134
+
135
+
136
+ form.<xref target="RFC7253"/></t>
137
+
138
+ <t>This document extends OpenPGP and its ECC extension to support SM2, SM3 and SM4:</t>
139
+
140
+ <ul>
141
+
142
+
143
+
144
+ <li>support the SM3 hash algorithm for data validation purposes</li>
145
+
146
+
147
+
148
+ <li>support signatures utilizing the combination of SM3 with other digital
149
+
150
+
151
+
152
+ signing algorithms, such as RSA, ECDSA and SM2</li>
153
+
154
+
155
+
156
+ <li>support the SM2 asymmetric encryption algorithm for public key
157
+
158
+
159
+
160
+ operations</li>
161
+
162
+
163
+
164
+ <li>support usage of SM2 in combination with supported hash algorithms, such as
165
+
166
+
167
+
168
+ SHA-256 and SM3</li>
169
+
170
+
171
+
172
+ <li>support the SM4 symmetric encryption algorithm for data protection purposes</li>
173
+
174
+
175
+
176
+ <li>defines the OpenPGP profile "OSCCA-SM234" to enable usage of OpenPGP
177
+
178
+
179
+
180
+ in an OSCCA-compliant manner.</li>
181
+
182
+
183
+
184
+ </ul>
185
+
186
+ <t>Algorithm-Specific Fields for SM2DSA keys:</t>
187
+
188
+ <ul>
189
+
190
+
191
+
192
+ <li>
193
+
194
+
195
+
196
+ <t>a variable-length field containing a curve OID, formatted
197
+
198
+
199
+
200
+ as follows:</t>
201
+
202
+
203
+
204
+ <ol type="a">
205
+
206
+
207
+
208
+
209
+
210
+
211
+
212
+ <li>a one-octet size of the following field; values 0 and
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+ 0xFF are reserved for future extensions</li>
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+ <li>octets representing a curve OID.</li>
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+ </ol>
237
+
238
+
239
+
240
+ </li>
241
+
242
+
243
+
244
+ <li>MPI of an EC point representing a public key</li>
245
+
246
+
247
+
248
+ </ul>
249
+
250
+ <section anchor="_definitions" numbered="false"><name>Definitions</name><dl>
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+ <dt>OSCCA-compliant</dt>
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+ <dd>All cryptographic algorithms used are compliant with OSCCA regulations.</dd>
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+ <dt>SM2DSA</dt>
275
+
276
+
277
+
278
+
279
+
280
+
281
+
282
+ <dd>The elliptic curve digital signature algorithm. <xref target="ISO.IEC.10118-3"/></dd>
283
+
284
+
285
+
286
+
287
+
288
+
289
+
290
+ <dt>SM2KEP</dt>
291
+
292
+
293
+
294
+
295
+
296
+
297
+
298
+ <dd>The elliptic curve key exchange protocol.</dd>
299
+
300
+
301
+
302
+
303
+
304
+
305
+
306
+ <dt>SM2PKE</dt>
307
+
308
+
309
+
310
+
311
+
312
+
313
+
314
+ <dd>The public key encryption algorithm.</dd>
315
+
316
+
317
+
318
+
319
+
320
+
321
+
322
+ </dl>
323
+
324
+
325
+
326
+ <section anchor="_elliptic_curve_formula" numbered="false">
327
+
328
+
329
+
330
+
331
+
332
+
333
+
334
+ <name>Elliptic Curve Formula</name>
335
+
336
+
337
+
338
+
339
+
340
+
341
+
342
+ <figure>
343
+
344
+
345
+
346
+
347
+
348
+
349
+
350
+
351
+
352
+
353
+
354
+
355
+
356
+
357
+
358
+ <artwork type="ascii-art">y^2 = x^3 + ax + b</artwork>
359
+
360
+
361
+
362
+
363
+
364
+
365
+
366
+
367
+
368
+
369
+
370
+
371
+
372
+
373
+
374
+ </figure>
375
+
376
+
377
+
378
+
379
+
380
+
381
+
382
+ </section>
383
+
384
+
385
+
386
+ <section anchor="_curve_parameters" numbered="false">
387
+
388
+
389
+
390
+
391
+
392
+
393
+
394
+ <name>Curve Parameters</name>
395
+
396
+
397
+
398
+
399
+
400
+
401
+
402
+ <figure anchor="curveparam1">
403
+
404
+
405
+
406
+
407
+
408
+
409
+
410
+
411
+
412
+
413
+
414
+
415
+
416
+
417
+
418
+ <name>Curve Parameters Listing</name>
419
+
420
+
421
+
422
+
423
+
424
+
425
+
426
+
427
+
428
+
429
+
430
+
431
+
432
+
433
+
434
+ <artwork type="ascii-art">p = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF
435
+
436
+
437
+
438
+
439
+
440
+
441
+
442
+
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+
455
+
456
+
457
+
458
+
459
+
460
+
461
+
462
+
463
+
464
+
465
+
466
+ FFFFFFFF 00000000 FFFFFFFF FFFFFFFF
467
+
468
+
469
+
470
+
471
+
472
+
473
+
474
+
475
+
476
+
477
+
478
+
479
+
480
+
481
+
482
+
483
+
484
+
485
+
486
+
487
+
488
+
489
+
490
+
491
+
492
+
493
+
494
+
495
+
496
+
497
+
498
+ a = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF
499
+
500
+
501
+
502
+
503
+
504
+
505
+
506
+
507
+
508
+
509
+
510
+
511
+
512
+
513
+
514
+
515
+
516
+
517
+
518
+
519
+
520
+
521
+
522
+
523
+
524
+
525
+
526
+
527
+
528
+
529
+
530
+ FFFFFFFF 00000000 FFFFFFFF FFFFFFFC
531
+
532
+
533
+
534
+
535
+
536
+
537
+
538
+
539
+
540
+
541
+
542
+
543
+
544
+
545
+
546
+
547
+
548
+
549
+
550
+
551
+
552
+
553
+
554
+
555
+
556
+
557
+
558
+
559
+
560
+
561
+
562
+ b = 28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7
563
+
564
+
565
+
566
+
567
+
568
+
569
+
570
+
571
+
572
+
573
+
574
+
575
+
576
+
577
+
578
+
579
+
580
+
581
+
582
+
583
+
584
+
585
+
586
+
587
+
588
+
589
+
590
+
591
+
592
+
593
+
594
+ F39789F5 15AB8F92 DDBCBD41 4D940E93
595
+
596
+
597
+
598
+
599
+
600
+
601
+
602
+
603
+
604
+
605
+
606
+
607
+
608
+
609
+
610
+
611
+
612
+
613
+
614
+
615
+
616
+
617
+
618
+
619
+
620
+
621
+
622
+
623
+
624
+
625
+
626
+ n = FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF
627
+
628
+
629
+
630
+
631
+
632
+
633
+
634
+
635
+
636
+
637
+
638
+
639
+
640
+
641
+
642
+
643
+
644
+
645
+
646
+
647
+
648
+
649
+
650
+
651
+
652
+
653
+
654
+
655
+
656
+
657
+
658
+ 7203DF6B 21C6052B 53BBF409 39D54123
659
+
660
+
661
+
662
+
663
+
664
+
665
+
666
+
667
+
668
+
669
+
670
+
671
+
672
+
673
+
674
+
675
+
676
+
677
+
678
+
679
+
680
+
681
+
682
+
683
+
684
+
685
+
686
+
687
+
688
+
689
+
690
+ x_G = 32C4AE2C 1F198119 5F990446 6A39C994
691
+
692
+
693
+
694
+
695
+
696
+
697
+
698
+
699
+
700
+
701
+
702
+
703
+
704
+
705
+
706
+
707
+
708
+
709
+
710
+
711
+
712
+
713
+
714
+
715
+
716
+
717
+
718
+
719
+
720
+
721
+
722
+ 8FE30BBF F2660BE1 715A4589 334C74C7
723
+
724
+
725
+
726
+
727
+
728
+
729
+
730
+
731
+
732
+
733
+
734
+
735
+
736
+
737
+
738
+
739
+
740
+
741
+
742
+
743
+
744
+
745
+
746
+
747
+
748
+
749
+
750
+
751
+
752
+
753
+
754
+ y_G = BC3736A2 F4F6779C 59BDCEE3 6B692153
755
+
756
+
757
+
758
+
759
+
760
+
761
+
762
+
763
+
764
+
765
+
766
+
767
+
768
+
769
+
770
+
771
+
772
+
773
+
774
+
775
+
776
+
777
+
778
+
779
+
780
+
781
+
782
+
783
+
784
+
785
+
786
+ D0A9877C C62A4740 02DF32E5 2139F0A0</artwork>
787
+
788
+
789
+
790
+
791
+
792
+
793
+
794
+
795
+
796
+
797
+
798
+
799
+
800
+
801
+
802
+ </figure>
803
+
804
+
805
+
806
+
807
+
808
+
809
+
810
+ </section></section></section>
811
+ <section anchor="_supported_algorithms" numbered="false">
812
+
813
+ <name>Supported Algorithms</name>
814
+
815
+ <section anchor="_public_key_algorithms" numbered="false"><name>Public Key Algorithms</name><t>The SM2 algorithm is supported with the following extension.<cref>ECDH is defined in Section 8 of this document.</cref></t>
816
+
817
+
818
+
819
+
820
+
821
+
822
+
823
+ <t>The following public key algorithm IDs are added to expand Section
824
+
825
+
826
+
827
+
828
+
829
+
830
+
831
+ 9.1 of RFC4880, "Public-Key Algorithms":</t>
832
+
833
+
834
+
835
+ <table>
836
+
837
+
838
+
839
+
840
+
841
+
842
+
843
+ <name>Table 2</name>
844
+
845
+
846
+
847
+
848
+
849
+
850
+
851
+ <thead>
852
+
853
+
854
+
855
+
856
+
857
+
858
+
859
+ <tr>
860
+
861
+
862
+
863
+
864
+
865
+
866
+
867
+ <th align="left">ID</th>
868
+
869
+
870
+
871
+
872
+
873
+
874
+
875
+ <th align="left">Description of Algorithm</th>
876
+
877
+
878
+
879
+
880
+
881
+
882
+
883
+ </tr>
884
+
885
+
886
+
887
+
888
+
889
+
890
+
891
+ </thead>
892
+
893
+
894
+
895
+
896
+
897
+
898
+
899
+ <tbody>
900
+
901
+
902
+
903
+
904
+
905
+
906
+
907
+ <tr>
908
+
909
+
910
+
911
+
912
+
913
+
914
+
915
+ <td align="left">TBD</td>
916
+
917
+
918
+
919
+
920
+
921
+
922
+
923
+ <td align="left">SM2</td>
924
+
925
+
926
+
927
+
928
+
929
+
930
+
931
+ </tr>
932
+
933
+
934
+
935
+
936
+
937
+
938
+
939
+ </tbody>
940
+
941
+
942
+
943
+
944
+
945
+
946
+
947
+ </table></section>
948
+
949
+ </section>
950
+ <section anchor="_security_considerations" numbered="false">
951
+
952
+ <name>Security Considerations</name>
953
+
954
+ <t>Security is not generally a problem in normal operation, but special
955
+
956
+
957
+
958
+ measures <bcp14>MUST</bcp14> be taken (such as data encryption) when avian carriers
959
+
960
+
961
+
962
+ are used in a tactical environment.<xref target="RFC7253"/>, <xref target="ISO.IEC.10118-3"/></t>
963
+
964
+ </section>
965
+ </middle><back>
966
+ <displayreference target="RFC7253" to="1"/>
967
+ <displayreference target="ISO.IEC.10118-3" to="2"/>
968
+ <references anchor="_references">
969
+ <name>References</name>
970
+ <reference anchor="ISO.IEC.10118-3" target="https://www.iso.org/standard/67116.html">
971
+ <front>
972
+ <title>ISO/IEC FDIS 10118-3 -- Information technology -- Security techniques -- Hash-functions -- Part 3: Dedicated hash-functions</title>
973
+ <author>
974
+ <organization>International Organization for Standardization</organization>
975
+ <address>
976
+ <postal>
977
+ <street>BIBC II</street>
978
+ <street>Chemin de Blandonnet 8</street>
979
+ <street>CP 401</street>
980
+ <city>Vernier</city>
981
+ <region>Geneva</region>
982
+ <code>1214</code>
983
+ <country>Switzerland</country>
984
+ </postal>
985
+ <phone>+41 22 749 01 11</phone>
986
+ <email>central@iso.org</email>
987
+ <uri>https://www.iso.org/</uri>
988
+ </address>
989
+ </author>
990
+ <date day="15" month="September" year="2017"/>
991
+ </front>
992
+ </reference>
993
+
994
+ <reference anchor="RFC7253" target="https://tools.ietf.org/html/rfc7253">
995
+ <front>
996
+ <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
997
+ <author initials="T." surname="Krovetz">
998
+ <organization>Sacramento State</organization>
999
+ </author>
1000
+ <author initials="P." surname="Rogaway">
1001
+ <organization>UC Davis</organization>
1002
+ </author>
1003
+ <date month="May" year="2014"/>
1004
+ </front>
1005
+ <seriesInfo name="RFC" value="7253"/>
1006
+ </reference>
1007
+ </references>
1008
+ </back>
1009
+ </rfc>