Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1458 | daniel-mar | 1 | |
2 | |||
3 | |||
4 | |||
5 | INTERNET-DRAFT D. Marschall |
||
6 | Intended Status: Informational ViaThinkSoft |
||
7 | Expires: 26 July 2024 23 January 2024 |
||
8 | |||
9 | |||
10 | Retrieving information about Object Identifiers |
||
11 | using a text-based protocol |
||
12 | draft-viathinksoft-oidip-07 |
||
13 | |||
14 | |||
15 | Abstract |
||
16 | |||
17 | This document defines a method for retrieving information about |
||
18 | Object Identifiers (OIDs) and their associated Registration |
||
19 | Authorities (RAs) through a text-based protocol, in a way that is |
||
20 | both human-readable and machine-readable. Besides a text output |
||
21 | format, OID-IP also supports sending information in JSON and XML. |
||
22 | |||
23 | Status of This Memo |
||
24 | |||
25 | This Internet-Draft is submitted in full conformance with the |
||
26 | provisions of BCP 78 and BCP 79. |
||
27 | |||
28 | Internet-Drafts are working documents of the Internet Engineering |
||
29 | Task Force (IETF). Note that other groups may also distribute |
||
30 | working documents as Internet-Drafts. The list of current Internet- |
||
31 | Drafts is at https://datatracker.ietf.org/drafts/current/. |
||
32 | |||
33 | Internet-Drafts are draft documents valid for a maximum of six months |
||
34 | and may be updated, replaced, or obsoleted by other documents at any |
||
35 | time. It is inappropriate to use Internet-Drafts as reference |
||
36 | material or to cite them other than as "work in progress." |
||
37 | |||
38 | This Internet-Draft will expire on 26 July 2024. |
||
39 | |||
40 | Copyright Notice |
||
41 | |||
42 | Copyright (c) 2024 IETF Trust and the persons identified as the |
||
43 | document authors. All rights reserved. |
||
44 | |||
45 | This document is subject to BCP 78 and the IETF Trust's Legal |
||
46 | Provisions Relating to IETF Documents (https://trustee.ietf.org/ |
||
47 | license-info) in effect on the date of publication of this document. |
||
48 | Please review these documents carefully, as they describe your rights |
||
49 | and restrictions with respect to this document. Code Components |
||
50 | extracted from this document must include Revised BSD License text as |
||
51 | described in Section 4.e of the Trust Legal Provisions and are |
||
52 | provided without warranty as described in the Revised BSD License. |
||
53 | |||
54 | |||
55 | |||
56 | Marschall Expires 26 July 2024 [Page 1] |
||
57 | |||
58 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
59 | |||
60 | |||
61 | Table of Contents |
||
62 | |||
63 | 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 |
||
64 | 1.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . . 5 |
||
65 | 2 Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 |
||
66 | 2.1 Input Parameters . . . . . . . . . . . . . . . . . . . . . 6 |
||
67 | 2.1.1 Format ("format" Argument) . . . . . . . . . . . . . . 7 |
||
68 | 2.1.2 Authentication Tokens ("auth" Argument) . . . . . . . . 8 |
||
69 | 2.1.3 Preferred Language ("lang" Argument) . . . . . . . . . 8 |
||
70 | 2.1.4 Custom Input Parameters . . . . . . . . . . . . . . . . 9 |
||
71 | 2.2 Request ABNF Notation . . . . . . . . . . . . . . . . . . . 9 |
||
72 | 3 Response . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 |
||
73 | 3.1 Format and Encoding . . . . . . . . . . . . . . . . . . . . 11 |
||
74 | 3.1.1 "text" Format . . . . . . . . . . . . . . . . . . . . . 11 |
||
75 | 3.1.2 "json" Format . . . . . . . . . . . . . . . . . . . . . 11 |
||
76 | 3.1.3 "xml" Format . . . . . . . . . . . . . . . . . . . . . . 12 |
||
77 | 3.2 Sections . . . . . . . . . . . . . . . . . . . . . . . . . 12 |
||
78 | 3.2.1 Query-Section (Information about Query and Result) . . 12 |
||
79 | 3.2.2 Object-Section (Information about the OID) . . . . . . 13 |
||
80 | 3.2.3 RA-Section (Information about the Current RA) . . . . . 17 |
||
81 | 3.2.4 Sections for Previous Registration Authorities . . . . 19 |
||
82 | 3.3 Digital Signature . . . . . . . . . . . . . . . . . . . . . 19 |
||
83 | 3.3.1 "text" Format . . . . . . . . . . . . . . . . . . . . . 19 |
||
84 | 3.3.2 "json" Format . . . . . . . . . . . . . . . . . . . . . 19 |
||
85 | 3.3.3 "xml" Format . . . . . . . . . . . . . . . . . . . . . 20 |
||
86 | 3.4 Date/Time Format . . . . . . . . . . . . . . . . . . . . . 20 |
||
87 | 3.4.1 Date/Time Format ABNF Notation . . . . . . . . . . . . 21 |
||
88 | 3.4.2 Date/Time Format Examples . . . . . . . . . . . . . . . 21 |
||
89 | 4 Referral . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 |
||
90 | 5 Full Example ("text" Format) . . . . . . . . . . . . . . . . . 23 |
||
91 | 5.1 Request . . . . . . . . . . . . . . . . . . . . . . . . . . 23 |
||
92 | 5.2 Response . . . . . . . . . . . . . . . . . . . . . . . . . 23 |
||
93 | 6 Alternative Namespaces . . . . . . . . . . . . . . . . . . . . 24 |
||
94 | 6.1 Example: UUID Namespace . . . . . . . . . . . . . . . . . . 25 |
||
95 | 7 Internationalization Considerations . . . . . . . . . . . . . . 25 |
||
96 | 8 Security Considerations . . . . . . . . . . . . . . . . . . . . 26 |
||
97 | 9 IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 26 |
||
98 | 10 References . . . . . . . . . . . . . . . . . . . . . . . . . . 27 |
||
99 | 10.1 Normative References . . . . . . . . . . . . . . . . . . . 27 |
||
100 | 10.2 Informative References . . . . . . . . . . . . . . . . . . 28 |
||
101 | Appendix A. JSON Format Schema and Example . . . . . . . . . . . 30 |
||
102 | Appendix A.1. JSON Format Schema . . . . . . . . . . . . . . . . 30 |
||
103 | Appendix A.2. JSON Format Example of Output . . . . . . . . . . . 39 |
||
104 | Appendix B. XML Format Schema and Example . . . . . . . . . . . . 41 |
||
105 | Appendix B.1. XML Format Schema . . . . . . . . . . . . . . . . . 41 |
||
106 | Appendix B.2. XML Format Example of Output . . . . . . . . . . . 50 |
||
107 | Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . 52 |
||
108 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 52 |
||
109 | |||
110 | |||
111 | |||
112 | Marschall Expires 26 July 2024 [Page 2] |
||
113 | |||
114 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
115 | |||
116 | |||
117 | |||
118 | |||
119 | |||
120 | |||
121 | |||
122 | |||
123 | |||
124 | |||
125 | |||
126 | |||
127 | |||
128 | |||
129 | |||
130 | |||
131 | |||
132 | |||
133 | |||
134 | |||
135 | |||
136 | |||
137 | |||
138 | |||
139 | |||
140 | |||
141 | |||
142 | |||
143 | |||
144 | |||
145 | |||
146 | |||
147 | |||
148 | |||
149 | |||
150 | |||
151 | |||
152 | |||
153 | |||
154 | |||
155 | |||
156 | |||
157 | |||
158 | |||
159 | |||
160 | |||
161 | |||
162 | |||
163 | |||
164 | |||
165 | |||
166 | |||
167 | |||
168 | Marschall Expires 26 July 2024 [Page 3] |
||
169 | |||
170 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
171 | |||
172 | |||
173 | 1 Introduction |
||
174 | |||
175 | An Object Identifier (OID) is an extensively used identification |
||
176 | mechanism jointly developed by ITU-T and ISO/IEC for naming any type |
||
177 | of object with a globally unambiguous name. OIDs provide a |
||
178 | persistent identification of objects based on a hierarchical |
||
179 | structure of Registration Authorities (RA), where each parent has an |
||
180 | Object Identifier and allocates Object Identifiers to child nodes. |
||
181 | More information about Object Identifiers can be found in |
||
182 | Recommendation ITU-T X.660 (2011) | ISO/IEC 9834-1:2012 [X660]. |
||
183 | |||
184 | There are a few methods of retrieving information about an OID, like: |
||
185 | |||
186 | (A) Searching through web repositories like <http://www.oid-info.com> |
||
187 | or <http://www.alvestrand.no/objectid/>. This has the disadvantage |
||
188 | that the information is usually not machine-readable without |
||
189 | functionalities like an API. |
||
190 | |||
191 | (B) Retrieving information using the Object Identifier Resolution |
||
192 | System (ORS) as defined in Recommendation ITU-T X.672 (2010) | |
||
193 | ISO/IEC 29168-1:2011 [X672]. This has the disadvantage that |
||
194 | Registration Authorities need to include specific DNS Resource |
||
195 | Records to their domains, and additionally, all RAs of the superior |
||
196 | OIDs must implement the ORS. |
||
197 | |||
198 | This document describes an additional method for retrieving |
||
199 | information about OIDs, which is both human-readable and machine- |
||
200 | readable. |
||
201 | |||
202 | Three of many possible use-case scenarios are: |
||
203 | |||
204 | (1) Many web browsers and Operating Systems can handle ITU-T X.509 |
||
205 | certificates [X509] and usually contain a viewer application that |
||
206 | shows the contents of these certificates. Attributes that are |
||
207 | unknown by the application are either only displayed by their OID, or |
||
208 | hidden to avoid confusion for the user. With OID-IP, the application |
||
209 | could query the name of these unknown OIDs or even retrieve |
||
210 | instructions on how the data described by this OID can be parsed and |
||
211 | displayed. |
||
212 | |||
213 | (2) Applications that handle SNMP (Simple Network Management |
||
214 | Protocol) [RFC1157] might need information about additional MIB files |
||
215 | or their OIDs. OID-IP could aid these applications in gathering the |
||
216 | required information. |
||
217 | |||
218 | (3) In directory services like LDAP (Lightweight Directory Access |
||
219 | Protocol) [RFC4511], applications could query the name of attributes |
||
220 | that are described by an OID the application doesn't know. |
||
221 | |||
222 | |||
223 | |||
224 | Marschall Expires 26 July 2024 [Page 4] |
||
225 | |||
226 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
227 | |||
228 | |||
229 | 1.1 Terminology |
||
230 | |||
231 | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", |
||
232 | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and |
||
233 | "OPTIONAL" in this document are to be interpreted as described in |
||
234 | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all |
||
235 | capitals, as shown here. |
||
236 | |||
237 | The following list describes terminology and definitions used |
||
238 | throughout this document: |
||
239 | |||
240 | ABNF Augmented Backus-Naur Form, a format used to represent |
||
241 | permissible strings in a protocol or language, as |
||
242 | defined in [RFC5234]. |
||
243 | |||
244 | arc Synonymous for "node" in the terminology of Object |
||
245 | Identifiers. |
||
246 | |||
247 | ASCII American Standard Code for Information Interchange |
||
248 | |||
249 | JSON JavaScript Object Notation, an open standard file |
||
250 | format and data interchange format, as defined in |
||
251 | [RFC8259]. |
||
252 | |||
253 | OID Object Identifier, an identifier mechanism |
||
254 | standardized by the International Telecommunication |
||
255 | Union (ITU) and ISO/IEC. |
||
256 | |||
257 | OID-IP Object Identifier Information Protocol, as defined in |
||
258 | this document. |
||
259 | |||
260 | RA Registration Authority, an entity responsible for |
||
261 | allocating arcs to sub-nodes and recording that |
||
262 | allocation (together with the organization the |
||
263 | subordinate node has been allocated to). |
||
264 | |||
265 | TCP Transmission Control Protocol |
||
266 | |||
267 | UTF-8 8-bit Unicode Transformation Format, as defined in |
||
268 | [RFC3629]. |
||
269 | |||
270 | XML Extensible Markup Language, a markup language and file |
||
271 | format for storing, transmitting, and reconstructing |
||
272 | arbitrary data ([XML]). |
||
273 | |||
274 | |||
275 | |||
276 | |||
277 | |||
278 | |||
279 | |||
280 | Marschall Expires 26 July 2024 [Page 5] |
||
281 | |||
282 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
283 | |||
284 | |||
285 | 2 Request |
||
286 | |||
287 | OID-IP is a text-based protocol. |
||
288 | |||
289 | By default, an OID-IP server listens on TCP port 43 (WHOIS) for |
||
290 | requests from OID-IP clients. Due to the compatibility, existing |
||
291 | WHOIS clients can be re-used and existing WHOIS servers can add the |
||
292 | functionalities described in this document in addition to their usual |
||
293 | operation. |
||
294 | |||
295 | The OID-IP client makes a text request to the OID-IP server, then the |
||
296 | OID-IP server replies with text content. All requests are terminated |
||
297 | with ASCII CR followed by ASCII LF. The response contains multiple |
||
298 | lines of text, separated by ASCII CR followed by ASCII LF. The OID- |
||
299 | IP server closes its connection as soon as the output is finished. |
||
300 | The closed TCP connection indicates to the client that the response |
||
301 | has been received. |
||
302 | |||
303 | During the request, the client sends a query beginning with "oid:", |
||
304 | followed by an OID in dot-notation, as defined in RFC 3061, section 2 |
||
305 | [RFC3061], but with the following differences: |
||
306 | |||
307 | (1) The OID MAY contain a leading dot. |
||
308 | |||
309 | (2) To query the root of the OID tree, the OID MUST be either missing |
||
310 | or consisting only of a single dot. |
||
311 | |||
312 | Examples of valid queries are: |
||
313 | |||
314 | oid: |
||
315 | oid:. |
||
316 | oid:2.999 |
||
317 | oid:.2.999 |
||
318 | |||
319 | All OIDs MUST be interpreted as absolute OIDs. Relative OIDs (e.g. |
||
320 | relative to the OID of the Registration Authority operating the OID- |
||
321 | IP service) are not allowed. |
||
322 | |||
323 | The namespace identifier (i.e. "oid") MUST be written in lower-case. |
||
324 | |||
325 | 2.1 Input Parameters |
||
326 | |||
327 | The client can send additional information to the server using "input |
||
328 | parameters". |
||
329 | |||
330 | Names MUST be treated as case-sensitive. |
||
331 | |||
332 | A request can contain multiple input parameters which are each |
||
333 | |||
334 | |||
335 | |||
336 | Marschall Expires 26 July 2024 [Page 6] |
||
337 | |||
338 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
339 | |||
340 | |||
341 | prepended by a dollar sign ("$"). |
||
342 | |||
343 | An equal sign ("=") divides the "name" from the "value". |
||
344 | |||
345 | Each name MUST only appear a single time in the list of input |
||
346 | parameters. |
||
347 | |||
348 | This document describes the following input parameters: |
||
349 | |||
350 | (1) Format ("format" argument), which is described in section 2.1.1. |
||
351 | |||
352 | (2) Authentication tokens ("auth" argument), which is described in |
||
353 | section 2.1.2. |
||
354 | |||
355 | (3) Preferred language ("lang" argument), which is described in |
||
356 | section 2.1.3. |
||
357 | |||
358 | Constraints for custom input parameters are described in |
||
359 | section 2.1.4. |
||
360 | |||
361 | The following request is an example of a valid query where the client |
||
362 | sends a "format" argument with the value "json": |
||
363 | |||
364 | oid:2.999$format=json |
||
365 | |||
366 | 2.1.1 Format ("format" Argument) |
||
367 | |||
368 | The "format" argument defines the desired output format. |
||
369 | |||
370 | This document defines 3 formats: |
||
371 | |||
372 | (1) "text": A text representation as defined in section 3.1.1 |
||
373 | (MANDATORY). |
||
374 | |||
375 | (2) "json": The JavaScript Object Notation (JSON, [RFC8259]) |
||
376 | representation as defined in section 3.1.2 (RECOMMENDED). |
||
377 | |||
378 | (3) "xml": Extensible Markup Language (XML, [XML]) representation as |
||
379 | defined in section 3.1.3 (RECOMMENDED). |
||
380 | |||
381 | The default format is "text", which is assumed if the "format" |
||
382 | argument is omitted. |
||
383 | |||
384 | Besides these 3 formats, the server can accept other formats not |
||
385 | defined in this document. The name of the formats MUST be |
||
386 | alphanumeric, lower-case, and non-empty, and SHOULD be written in the |
||
387 | English language (e.g. "text") or be common abbreviations (e.g. |
||
388 | "json"). |
||
389 | |||
390 | |||
391 | |||
392 | Marschall Expires 26 July 2024 [Page 7] |
||
393 | |||
394 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
395 | |||
396 | |||
397 | If the client requests a format that is not implemented, then the |
||
398 | server MUST respond with the "text" format, and the output MUST |
||
399 | consist of the "query" field, "result: Service error", and a fitting |
||
400 | "message" field (as described in section 3.2.1). |
||
401 | |||
402 | The usage of the argument "format" is OPTIONAL. |
||
403 | |||
404 | 2.1.2 Authentication Tokens ("auth" Argument) |
||
405 | |||
406 | Some organizations might not want to present their OID information |
||
407 | (or part of it) to the public, e.g. for reasons like privacy or |
||
408 | confidentiality. Therefore, one or more "authentication tokens" can |
||
409 | be sent to control the display of confidential information returned |
||
410 | by the OID-IP service. |
||
411 | |||
412 | Authentication tokens MUST be case-sensitive and non-empty, and MUST |
||
413 | NOT contain a dollar sign ("$"), an equal sign ("="), or a comma sign |
||
414 | (","). |
||
415 | |||
416 | If multiple authentication tokens need to be submitted, then the |
||
417 | "auth" argument MUST NOT be repeated. Instead, the tokens are |
||
418 | separated using a comma sign (","). A token MUST NOT be used |
||
419 | multiple times in the same query. |
||
420 | |||
421 | Examples of valid queries are: |
||
422 | |||
423 | oid:2.999$auth=firstToken |
||
424 | oid:2.999$auth=firstToken,secondToken |
||
425 | |||
426 | Please note that authentication tokens are only weak protection. For |
||
427 | more information, see section 8 "Security Considerations". |
||
428 | |||
429 | The usage of the argument "auth" is OPTIONAL. |
||
430 | |||
431 | 2.1.3 Preferred Language ("lang" Argument) |
||
432 | |||
433 | The client can request the preferred language of human-readable |
||
434 | descriptions, names, comments, and error messages using the "lang" |
||
435 | argument. |
||
436 | |||
437 | If the server has data in different languages, it should try to find |
||
438 | the best-fitting language according to the client's request. |
||
439 | |||
440 | The value of the "lang" argument MUST be a list of language tags as |
||
441 | defined by [RFC5646], separated by a comma sign, sorted by |
||
442 | preference, and containing at least one element. |
||
443 | |||
444 | The translation SHALL only affect the "message", "name", |
||
445 | |||
446 | |||
447 | |||
448 | Marschall Expires 26 July 2024 [Page 8] |
||
449 | |||
450 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
451 | |||
452 | |||
453 | "description", and "information" fields, as well as additional fields |
||
454 | and comments if their translation makes sense. Field names MUST NOT |
||
455 | be translated. For example, the field name "description" will always |
||
456 | be in the English language, even if the client requests a response in |
||
457 | the German language. |
||
458 | |||
459 | The following request is an example of a valid query where the client |
||
460 | asks for information written in the English language, preferring US |
||
461 | American English: |
||
462 | |||
463 | oid:2.999$lang=en-US,en |
||
464 | |||
465 | The usage of the argument "lang" is OPTIONAL. |
||
466 | |||
467 | 2.1.4 Custom Input Parameters |
||
468 | |||
469 | The usage of input parameters not described in this document is |
||
470 | individual for each implementation. |
||
471 | |||
472 | Names MUST be alphanumeric, lower-case, and non-empty, and SHOULD be |
||
473 | written in the English language (e.g. "database") or be common |
||
474 | abbreviations (e.g. "db"). |
||
475 | |||
476 | Values MUST be case-sensitive and non-empty, and MUST NOT contain a |
||
477 | dollar sign ("$") or an equal sign ("="). |
||
478 | |||
479 | The usage of the custom input parameters MUST be OPTIONAL. |
||
480 | |||
481 | 2.2 Request ABNF Notation |
||
482 | |||
483 | To define the query string, the following Augmented BNF definitions |
||
484 | will be used. They are based on the ABNF styles of RFC 5234 |
||
485 | [RFC5234]. |
||
486 | |||
487 | query = object optional-args |
||
488 | |||
489 | object = ( str-oid ":" optional-oid ) / |
||
490 | ( other-ns-name ":" other-ns-val ) |
||
491 | str-oid = %x6F.69.64 ; %s"oid" in RFC 7405 |
||
492 | |||
493 | ; Additional constraint: Query MUST NOT contain more than one |
||
494 | ; argument with the same name. |
||
495 | optional-args = *( "$" argument ) |
||
496 | |||
497 | argument = ( str-format "=" format ) / |
||
498 | ( str-auth "=" tokens ) / |
||
499 | ( str-lang "=" languages ) / |
||
500 | ( other-arg-name "=" other-arg-val ) |
||
501 | |||
502 | |||
503 | |||
504 | Marschall Expires 26 July 2024 [Page 9] |
||
505 | |||
506 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
507 | |||
508 | |||
509 | str-format = %x66.6F.72.6D.61.74 ; %s"format" in RFC 7405 |
||
510 | str-auth = %x61.75.74.68 ; %s"auth" in RFC 7405 |
||
511 | str-lang = %x6C.61.6E.67 ; %s"lang" in RFC 7405 |
||
512 | |||
513 | optional-oid = [ "." ] [ oid ] |
||
514 | |||
515 | oid = unsigned-number *( "." unsigned-number ) |
||
516 | |||
517 | format = str-text / |
||
518 | str-json / |
||
519 | str-xml / |
||
520 | 1*( lowercase-char / digit ) |
||
521 | str-text = %x74.65.78.74 ; %s"text" in RFC 7405 |
||
522 | str-json = %x6A.73.6F.6E ; %s"json" in RFC 7405 |
||
523 | str-xml = %x78.6D.6C ; %s"xml" in RFC 7405 |
||
524 | |||
525 | ; Language-Tag is defined in RFC 5646 |
||
526 | languages = Language-Tag *( "," Language-Tag ) |
||
527 | |||
528 | ; Additional constraint: Tokens MUST NOT be used more than one time |
||
529 | ; in the same query. |
||
530 | tokens = token *( "," token ) |
||
531 | |||
532 | ; Printable characters (%x21-7E), excluding dollar sign (%x24 "$"), |
||
533 | ; equal sign (%x3D "="), and comma sign (%x2C ","). |
||
534 | token = 1*( %x21-23 / %x25-2B / %x2D-3C / %x3E-7E ) |
||
535 | |||
536 | ; Additional constraint: MUST NOT be <str-format> or <str-auth>. |
||
537 | other-arg-name = 1*( lowercase-char / digit ) |
||
538 | |||
539 | ; Printable characters (%x21-7E), excluding dollar sign (%x24 "$") |
||
540 | ; and equal sign (%x3D "="). |
||
541 | other-arg-val = 1*( %x21-23 / %x25-3C / %x3E-7E ) |
||
542 | |||
543 | ; Additional constraint: MUST NOT be <str-oid>. |
||
544 | other-ns-name = 1*( lowercase-char / digit ) |
||
545 | |||
546 | ; Printable characters (%x21-7E), excluding dollar sign (%x24 "$"). |
||
547 | other-ns-val = *( %x21-23 / %x25-7E ) |
||
548 | |||
549 | unsigned-number = "0" / ( nonzero-digit *digit ) |
||
550 | |||
551 | digit = %x30-39 ; 0-9 |
||
552 | nonzero-digit = %x31-39 ; 1-9 |
||
553 | lowercase-char = %x61-7A ; a-z |
||
554 | |||
555 | |||
556 | |||
557 | |||
558 | |||
559 | |||
560 | Marschall Expires 26 July 2024 [Page 10] |
||
561 | |||
562 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
563 | |||
564 | |||
565 | 3 Response |
||
566 | |||
567 | 3.1 Format and Encoding |
||
568 | |||
569 | 3.1.1 "text" Format |
||
570 | |||
571 | (1) The response MUST be UTF-8 encoded (as defined in RFC 3629 |
||
572 | [RFC3629]), without Byte-Order-Mark (BOM). |
||
573 | |||
574 | (2) The response contains multiple lines with field names and values, |
||
575 | which MUST be separated by a double colon (":"). Whitespace |
||
576 | characters after the double colon are allowed. |
||
577 | |||
578 | (3) If possible, each line SHOULD be limited to 80 characters, |
||
579 | including the field name, double colon, value, and whitespaces. |
||
580 | |||
581 | (4) Field names and values MUST be treated as case-sensitive. |
||
582 | |||
583 | (5) If a value needs to be split into multiple lines, e.g. if the |
||
584 | line would exceed the length limit, the same field name including |
||
585 | double colon MUST be repeated at the beginning of the next line. |
||
586 | |||
587 | (6) If an attribute has multiple values (e.g. multiple Unicode |
||
588 | labels, alternative email addresses, etc.), each value MUST be |
||
589 | written in a new line with the same field name. |
||
590 | |||
591 | (7) Lines with the same field name SHALL be kept together. |
||
592 | |||
593 | (8) Comment lines MUST start with a percent sign ("%") at the |
||
594 | beginning of a line, without prepending whitespaces. They MUST NOT |
||
595 | be evaluated by machines (except for signature validation, as |
||
596 | mentioned in section 3.3 "Digital Signature"). |
||
597 | |||
598 | (9) A response consists of sections, which MUST be separated by at |
||
599 | least one empty line and/or comment line. |
||
600 | |||
601 | (10) Custom sections CAN be added after any section defined in this |
||
602 | document. The query section MUST be the first section in the |
||
603 | response. |
||
604 | |||
605 | 3.1.2 "json" Format |
||
606 | |||
607 | (1) The response MUST be UTF-8 encoded (as defined in RFC 3629 |
||
608 | [RFC3629]), without Byte-Order-Mark (BOM). |
||
609 | |||
610 | (2) A response consists of sections, which MUST be named |
||
611 | "querySection", "objectSection", "raSection", "ra1Section", etc. |
||
612 | which SHOULD stay in this order. |
||
613 | |||
614 | |||
615 | |||
616 | Marschall Expires 26 July 2024 [Page 11] |
||
617 | |||
618 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
619 | |||
620 | |||
621 | (3) Custom sections CAN be added. The name of these custom sections |
||
622 | MUST be the name of the first field, appended by the string |
||
623 | "Section". |
||
624 | |||
625 | (4) The JavaScript Object Notation (JSON, [RFC8259]) output MUST |
||
626 | match the schema defined in Appendix A.1 of this document. |
||
627 | |||
628 | 3.1.3 "xml" Format |
||
629 | |||
630 | (1) The response MUST be UTF-8 encoded (as defined in RFC 3629 |
||
631 | [RFC3629]), without Byte-Order-Mark (BOM). |
||
632 | |||
633 | (2) A response consists of sections, which MUST be named |
||
634 | "querySection", "objectSection", "raSection", "ra1Section", etc. |
||
635 | which MUST stay in this order. |
||
636 | |||
637 | (3) Custom sections CAN be added. The name of these custom sections |
||
638 | MUST be the name of the first field, appended by the string |
||
639 | "Section". These custom sections MUST be specified in a different |
||
640 | XML namespace at the end of the last RA section. |
||
641 | |||
642 | (4) The Extensible Markup Language (XML, [XML]) output MUST match the |
||
643 | schema defined in Appendix B.1 of this document. |
||
644 | |||
645 | 3.2 Sections |
||
646 | |||
647 | This document specifies the following sections: |
||
648 | |||
649 | (1) Query-Section which contains the request and the result, as |
||
650 | described in section 3.2.1. |
||
651 | |||
652 | (2) Object-Section which contains information about the OID, as |
||
653 | described in section 3.2.2. |
||
654 | |||
655 | (3) RA-Section which contains information about the current |
||
656 | Registration Authority, as described in section 3.2.3. |
||
657 | |||
658 | (4) Optional RA-Sections containing information about RAs that were |
||
659 | previously in charge of managing the OID, as described in |
||
660 | section 3.2.4. |
||
661 | |||
662 | 3.2.1 Query-Section (Information about Query and Result) |
||
663 | |||
664 | This section MUST always be present and MUST start with the field |
||
665 | "query". It MUST be the first section in the response. |
||
666 | |||
667 | Possible fields are: |
||
668 | |||
669 | |||
670 | |||
671 | |||
672 | Marschall Expires 26 July 2024 [Page 12] |
||
673 | |||
674 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
675 | |||
676 | |||
677 | (1) "query" MUST be present and contains the request string the |
||
678 | client has sent. Canonization or sanitation (like removing a leading |
||
679 | dot in front of the OID) SHOULD NOT be applied at this step. |
||
680 | Authentication tokens SHOULD be omitted, though. |
||
681 | |||
682 | (2) "result" MUST be present and SHALL be one of the following |
||
683 | values: |
||
684 | |||
685 | "Found" means that the OID-IP service can verify that the |
||
686 | requested OID exists. The following sections will contain |
||
687 | information about this OID. |
||
688 | |||
689 | "Not found; superior object found" means that the OID-IP service |
||
690 | cannot verify that the requested OID exists, or it denies that |
||
691 | the OID exists (e.g. because it is confidential). However, the |
||
692 | OID-IP service knows a superior OID which does exist. The |
||
693 | following sections will contain information about that superior |
||
694 | OID instead. |
||
695 | |||
696 | "Not found" means that the OID-IP service cannot verify that the |
||
697 | requested OID exists, or it denies that the OID exists (e.g. |
||
698 | because it is confidential). Additionally, the OID-IP service |
||
699 | does not have information about any superior OID, or their |
||
700 | existence is also denied. |
||
701 | |||
702 | "Service error" means that an internal error occurred, or that |
||
703 | the system is in maintenance mode. The client should try again |
||
704 | later. |
||
705 | |||
706 | (3) "distance" SHOULD be present if it is applicable in the requested |
||
707 | namespace (it is always applicable for OIDs) and if the result is |
||
708 | "Not found; superior object found". A distance of 1 means that the |
||
709 | direct parent was found. A distance of 2 means that the grand-parent |
||
710 | was found, etc. |
||
711 | |||
712 | (4) "message" SHOULD be present if the result is "Service error". It |
||
713 | contains a message explaining why the service is not available (e.g. |
||
714 | displaying an error message). It MUST NOT be present if the result |
||
715 | has a different value. |
||
716 | |||
717 | (5) "lang" (OPTIONAL) contains the language of the field "message". |
||
718 | The language should be a language tag as defined in [RFC5646]. |
||
719 | |||
720 | The OID-IP service SHOULD NOT add additional fields to this section. |
||
721 | |||
722 | 3.2.2 Object-Section (Information about the OID) |
||
723 | |||
724 | This section MUST be present if the result is "Found" or "Not found; |
||
725 | |||
726 | |||
727 | |||
728 | Marschall Expires 26 July 2024 [Page 13] |
||
729 | |||
730 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
731 | |||
732 | |||
733 | superior object found". It MUST start with the field "object". It |
||
734 | MUST NOT be present if the result is "Not found" or "Service error". |
||
735 | |||
736 | Possible fields are: |
||
737 | |||
738 | (1) "object" contains the OID in dot-notation, prepended by the |
||
739 | namespace identifier and double colon ("oid:"). This field MUST be |
||
740 | present. |
||
741 | |||
742 | (2) "status" MUST be present and SHALL be one of the following |
||
743 | values: |
||
744 | |||
745 | "Information available" means that information about the OID is |
||
746 | fully available. |
||
747 | |||
748 | "Information partially available" means that part of the |
||
749 | information about the OID is not available. Possible reasons |
||
750 | could be that part of the information is redacted due to |
||
751 | confidentiality, or the OID-IP service only knows basic |
||
752 | information, while the full information can be found somewhere |
||
753 | else (e.g. at a referred OID-IP service). The field "attribute" |
||
754 | MAY be used with the value "confidential". |
||
755 | |||
756 | "Information unavailable" means that the information about the |
||
757 | OID is missing, redacted due to confidentiality, or otherwise |
||
758 | unavailable. The field "attribute" MAY be used with the value |
||
759 | "confidential". |
||
760 | |||
761 | (3) "lang" (OPTIONAL) contains the language of the fields "name", |
||
762 | "description", "information", and additional fields if their |
||
763 | translation makes sense. The language should be a language tag as |
||
764 | defined in [RFC5646]. |
||
765 | |||
766 | (4) "name" (OPTIONAL) contains the name of the OID. It SHOULD be as |
||
767 | short as possible. |
||
768 | |||
769 | (5) "description" (OPTIONAL) contains a short description of the OID. |
||
770 | The description SHOULD only be a single sentence. |
||
771 | |||
772 | (6) "information" (OPTIONAL) contains additional information, e.g. |
||
773 | Management Information Base (MIB) definitions. |
||
774 | |||
775 | (7) "url" (OPTIONAL, multiple values allowed) contains a URL (as |
||
776 | defined in RFC 3986 [RFC3986]) leading to more information about the |
||
777 | OID. |
||
778 | |||
779 | (8) "asn1-notation" (OPTIONAL, multiple values allowed) contains one |
||
780 | or more possible notations in the ASN.1 syntax, as defined in |
||
781 | |||
782 | |||
783 | |||
784 | Marschall Expires 26 July 2024 [Page 14] |
||
785 | |||
786 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
787 | |||
788 | |||
789 | Recommendation ITU-T X.680 (2015) | ISO/IEC 8824-1:2015, clause 32.3 |
||
790 | [X680], e.g. {joint-iso-itu-t(2) example(999)}. |
||
791 | |||
792 | Note: A line break, to break up lines that are too long, as |
||
793 | defined in section 3.1 ("Format and Encoding") SHOULD be used. |
||
794 | This is no problem because multiple ASN.1 notations can be |
||
795 | distinguished by their opening curly bracket and their closing |
||
796 | curly bracket. |
||
797 | |||
798 | (9) "iri-notation" (OPTIONAL, multiple values allowed) contains one |
||
799 | or more possible notations in the OID-IRI syntax, as defined in |
||
800 | Recommendation ITU-T X.680 (2015) | ISO/IEC 8824-1:2015, clause 34.3 |
||
801 | [X680] (but without quotation marks), e.g. /Joint-ISO-ITU-T/Example. |
||
802 | |||
803 | Note: A line break, to break up lines that are too long, as |
||
804 | defined in section 3.1 ("Format and Encoding") SHALL NOT be used, |
||
805 | otherwise, it would be ambiguous if the line break was used to |
||
806 | shorten the line, or if the line break indicates a new value in |
||
807 | case multiple OID-IRI notations are supplied. |
||
808 | |||
809 | (10) "identifier" (OPTIONAL, multiple values allowed) contains an |
||
810 | alphanumeric identifier ("NameForm") as defined in Recommendation |
||
811 | ITU-T X.680 (2015) | ISO/IEC 8824-1:2015, clause 12.3 [X680]. |
||
812 | |||
813 | (11) "standardized-id" (OPTIONAL, multiple values allowed) contains |
||
814 | an alphanumeric identifier that has a standardized "NameForm", i.e. |
||
815 | in ASN.1 notation, it can be written without its associated number. |
||
816 | See more information in Recommendation ITU-T X.680 (2015) | ISO/IEC |
||
817 | 8824-1:2015, clause 32.7 [X680]. |
||
818 | |||
819 | (12) "unicode-label" (OPTIONAL, multiple values allowed) contains a |
||
820 | Non-integer Unicode label, as defined in Recommendation ITU-T X.680 |
||
821 | (2015) | ISO/IEC 8824-1:2015, clause 12.27 [X680]. |
||
822 | |||
823 | (13) "long-arc" (OPTIONAL, multiple values allowed) contains a Non- |
||
824 | integer Unicode label that can be used as the first identifier in an |
||
825 | OID Internationalized Resource Identifier (OID-IRI), shortening it. |
||
826 | More information can be found in Recommendation ITU-T X.660 (2011) | |
||
827 | ISO/IEC 9834-1:2012, clause 3.5.8 [X660]. |
||
828 | |||
829 | (14) "oidip-service" (OPTIONAL) contains an IP address or hostname of |
||
830 | a system that offers an OID-IP service that can supply information |
||
831 | about the OID and/or its subordinate OIDs, followed by a double-colon |
||
832 | (:) and a port number. If the result is "Found" (i.e. the OID is |
||
833 | existing in the local database), then the information "oidip-service" |
||
834 | is only informational; its existence is most likely a hint that |
||
835 | subordinate OIDs will be found at that OID-IP server. If the result |
||
836 | is "Not found; superior object found", then the client SHOULD query |
||
837 | |||
838 | |||
839 | |||
840 | Marschall Expires 26 July 2024 [Page 15] |
||
841 | |||
842 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
843 | |||
844 | |||
845 | the referred OID-IP server to receive more information about the OID. |
||
846 | See more information in section 4 "Referral". |
||
847 | |||
848 | (15) "oidip-pubkey" (OPTIONAL) contains the public key of the service |
||
849 | that is identified with "oidip-service", in case it uses signatures |
||
850 | (see section 3.3 "Digital Signature") and the referring service knows |
||
851 | about it. |
||
852 | |||
853 | (16) "attribute" (OPTIONAL, multiple values allowed) contains |
||
854 | attributes of the OID. An attribute MUST be one of the following |
||
855 | values: |
||
856 | |||
857 | "confidential" means that information about the OID or part of it |
||
858 | is confidential. |
||
859 | |||
860 | "draft" means that the allocation of the OID is not yet official |
||
861 | and the information is subject to change without notice. This |
||
862 | includes deletion and relocation. |
||
863 | |||
864 | "frozen" means that no more child OIDs can be created under this |
||
865 | OID, e.g. because the RA has stopped operating, but the existing |
||
866 | child OIDs stay valid. |
||
867 | |||
868 | "leaf" means that no child OIDs can be allocated under this OID. |
||
869 | The field "subordinate" SHALL therefore not be present. |
||
870 | |||
871 | "no-identifiers" means that the RA is not allocating alphanumeric |
||
872 | identifiers. |
||
873 | |||
874 | "no-unicode-labels" means that the RA is not allocating Non- |
||
875 | integer Unicode labels. |
||
876 | |||
877 | "retired" means that the OID is withdrawn, revoked, retired, |
||
878 | expired, etc. Please consult Recommendation ITU-T X.660 (2011) | |
||
879 | ISO/IEC 9834-1:2012 [X660] for more information about such cases. |
||
880 | |||
881 | (17) "parent" (OPTIONAL) contains the OID of the nearest known parent |
||
882 | OID, prepended by namespace identifier and double colon, i.e. "oid:". |
||
883 | It MAY be followed by additional human-readable information, e.g. a |
||
884 | description or a list of ASN.1 identifiers. There SHALL be at least |
||
885 | 1 whitespace in between. |
||
886 | |||
887 | (18) "subordinate" (OPTIONAL, multiple values allowed) contains a |
||
888 | list of subordinate OIDs, prepended by namespace identifier and |
||
889 | double colon, i.e. "oid:". It MAY be followed by additional human- |
||
890 | readable information, e.g. a description or a list of ASN.1 |
||
891 | identifiers. There SHALL be at least 1 whitespace in between. |
||
892 | |||
893 | |||
894 | |||
895 | |||
896 | Marschall Expires 26 July 2024 [Page 16] |
||
897 | |||
898 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
899 | |||
900 | |||
901 | (19) "created" (OPTIONAL) contains the date and time (as specified in |
||
902 | section 3.4 "Date/Time Format") when the OID was first allocated by |
||
903 | the RA of the superior OID. |
||
904 | |||
905 | (20) "updated" (OPTIONAL) contains the date and time (as specified in |
||
906 | section 3.4 "Date/Time Format") when the OID information was last |
||
907 | updated. |
||
908 | |||
909 | Additional fields can be defined by the OID-IP service. The field |
||
910 | names SHALL only consist of the lower-case letters "a..z", hyphens |
||
911 | ("-"), and numbers, and SHOULD be written in the English language. |
||
912 | The field name MUST NOT begin or end with a hyphen and a hyphen MUST |
||
913 | NOT be followed by another hyphen. |
||
914 | |||
915 | 3.2.3 RA-Section (Information about the Current RA) |
||
916 | |||
917 | This section MUST NOT be present if the result is "Not found" or |
||
918 | "Service error", otherwise it MAY be present. If it is present, it |
||
919 | MUST start with the field "ra". |
||
920 | |||
921 | Possible fields are: |
||
922 | |||
923 | (1) "ra" contains a general name of the RA, like the name of a |
||
924 | person, the name of a group, or the name of an organization. This |
||
925 | field MUST be present. |
||
926 | |||
927 | (2) "ra-status" MUST be present and SHALL be one of the following |
||
928 | values: |
||
929 | |||
930 | "Information available" means that information about this RA is |
||
931 | fully available. |
||
932 | |||
933 | "Information partially available" means that part of the |
||
934 | information is not available. A possible reason could be that |
||
935 | part of the information is redacted due to confidentiality. The |
||
936 | field "attribute" MAY be used with the value "confidential". |
||
937 | |||
938 | "Information unavailable" means that the data is missing (if the |
||
939 | OID-IP service only knows the name of the RA and nothing else), |
||
940 | redacted due to confidentiality, or otherwise unavailable. The |
||
941 | field "attribute" MAY be used with the value "confidential". |
||
942 | |||
943 | (3) "ra-lang" (OPTIONAL) contains the language of the fields in this |
||
944 | section, if their translation makes sense. The language should be a |
||
945 | language tag as defined in [RFC5646]. |
||
946 | |||
947 | (4) "ra-contact-name" (OPTIONAL, multiple values allowed) contains |
||
948 | the name of a person responsible for the allocation of subordinate |
||
949 | |||
950 | |||
951 | |||
952 | Marschall Expires 26 July 2024 [Page 17] |
||
953 | |||
954 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
955 | |||
956 | |||
957 | OIDs, in case "ra" is a group or organization. |
||
958 | |||
959 | (5) "ra-address" (OPTIONAL) contains the physical location of the RA. |
||
960 | While a fully qualified postal address is recommended, the field can |
||
961 | also just contain a rough location like city and country name, state |
||
962 | and country name, or just the country name, etc. The name of the |
||
963 | country SHOULD always be present. |
||
964 | |||
965 | (6) "ra-phone" (OPTIONAL, multiple values allowed) contains a |
||
966 | landline phone number of the Registration Authority. It SHOULD be |
||
967 | written in the international number format specified in |
||
968 | Recommendation ITU-T E.164 (2010) [E164], e.g. +1 206 555 0100. |
||
969 | |||
970 | (7) "ra-mobile" (OPTIONAL, multiple values allowed) contains a mobile |
||
971 | phone number of the Registration Authority. It SHOULD be written in |
||
972 | the international number format specified in Recommendation ITU-T |
||
973 | E.164 (2010) [E164], e.g. +1 206 555 0100. |
||
974 | |||
975 | (8) "ra-fax" (OPTIONAL, multiple values allowed) contains a fax |
||
976 | number of the Registration Authority. It SHOULD be written in the |
||
977 | international number format specified in Recommendation ITU-T E.164 |
||
978 | (2010) [E164], e.g. +1 206 555 0100. |
||
979 | |||
980 | (9) "ra-email" (OPTIONAL, multiple values allowed) contains an email |
||
981 | address of the Registration Authority. |
||
982 | |||
983 | (10) "ra-url" (OPTIONAL, multiple values allowed) contains a URL (as |
||
984 | defined in RFC 3986 [RFC3986]) leading to more information about the |
||
985 | RA (usually the website of the RA). |
||
986 | |||
987 | (11) "ra-attribute" (OPTIONAL, multiple values allowed) contains |
||
988 | attributes of the RA. An attribute MUST be one of the following |
||
989 | values: |
||
990 | |||
991 | "confidential" means that the information about the RA or part of |
||
992 | it is confidential. |
||
993 | |||
994 | "retired" means that the RA is defunct. If this attribute is set |
||
995 | to the current RA, then the OID MUST have the attribute "frozen" |
||
996 | (until the responsibility is transferred to a non-defunct RA, or |
||
997 | until the current RA becomes active again). |
||
998 | |||
999 | (12) "ra-created" (OPTIONAL) contains the date and time (as specified |
||
1000 | in section 3.4 "Date/Time Format") when the RA was created/registered |
||
1001 | in the database. |
||
1002 | |||
1003 | (13) "ra-updated" (OPTIONAL) contains the date and time (as specified |
||
1004 | in section 3.4 "Date/Time Format") when the RA information was last |
||
1005 | |||
1006 | |||
1007 | |||
1008 | Marschall Expires 26 July 2024 [Page 18] |
||
1009 | |||
1010 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
1011 | |||
1012 | |||
1013 | modified. |
||
1014 | |||
1015 | Additional fields can be defined by the OID-IP service, but they MUST |
||
1016 | begin with "ra-". The field names SHALL only consist of the lower- |
||
1017 | case letters "a..z", hyphens ("-"), and numbers, and SHOULD be |
||
1018 | written in the English language. The field name MUST NOT begin or |
||
1019 | end with a hyphen and a hyphen MUST NOT be followed by another |
||
1020 | hyphen. |
||
1021 | |||
1022 | 3.2.4 Sections for Previous Registration Authorities |
||
1023 | |||
1024 | To optionally display information about RAs that were previously in |
||
1025 | charge of managing the OID, a new section per RA can be added with |
||
1026 | the following field name prefixes: |
||
1027 | |||
1028 | "ra-" is the prefix of the current Registration Authority, |
||
1029 | "ra1-" is the prefix of the first RA. It is the very first person or |
||
1030 | company to whom the OID was allocated by the RA of the superior OID, |
||
1031 | "ra2-" is the prefix of the second RA, after the responsibility has |
||
1032 | been transferred, etc. |
||
1033 | |||
1034 | Each section MUST start with the field "ra1", "ra2", etc. |
||
1035 | |||
1036 | The definition of these sections is identical to the definition of |
||
1037 | the RA-Section (described in section 3.2.3 "RA-Section"), just with a |
||
1038 | different prefix. |
||
1039 | |||
1040 | The history does not need to be complete, e.g. it is no problem to |
||
1041 | only serve information about the first ("ra1") and the current RA |
||
1042 | ("ra"), or only serve information about the current RA ("ra"). |
||
1043 | |||
1044 | 3.3 Digital Signature |
||
1045 | |||
1046 | 3.3.1 "text" Format |
||
1047 | |||
1048 | If integrity/authenticity is required, the whole response can be |
||
1049 | signed, e.g. by using PGP, RSA, ECDSA, etc. Depending on the |
||
1050 | signature method being used, various things need to be appended |
||
1051 | and/or prepended to the response (e.g. "-----BEGIN PGP MESSAGE-----" |
||
1052 | and "-----END PGP MESSAGE-----"). These additional lines MUST be |
||
1053 | prepended by a percent sign ("%") to avoid an application confusing |
||
1054 | these additional lines (e.g. lines belonging to a PGP header, as |
||
1055 | defined in RFC 4880 [RFC4880]) with parts of the actual OID-IP |
||
1056 | response. |
||
1057 | |||
1058 | 3.3.2 "json" Format |
||
1059 | |||
1060 | Steps for signing a message: |
||
1061 | |||
1062 | |||
1063 | |||
1064 | Marschall Expires 26 July 2024 [Page 19] |
||
1065 | |||
1066 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
1067 | |||
1068 | |||
1069 | 1. Make sure that the JSON file has no signature (remove the |
||
1070 | "signature" key if one exists). |
||
1071 | |||
1072 | 2. Create a working-copy of the JSON file and canonize the |
||
1073 | contents using the procedures described in RFC 8785 [RFC8785]. |
||
1074 | |||
1075 | 3. Create a JSON Web Signature (JWS, RFC 7515 [RFC7515]) using |
||
1076 | your public key and the canonized form of the JSON contents. |
||
1077 | |||
1078 | 4. Add the signature in the "signature" field to the original |
||
1079 | JSON file. Note that the original JSON does not need to be |
||
1080 | canonized, since the canonization will be repeated in the |
||
1081 | verification procedure. |
||
1082 | |||
1083 | Steps for verifying a message: |
||
1084 | |||
1085 | 1. Extract the contents of the "signature" key from the JSON |
||
1086 | file. This is the JSON Web Signature containing a header, a |
||
1087 | payload, and a signature. |
||
1088 | |||
1089 | 2. Create a working-copy of the JSON file and remove the |
||
1090 | "signature" key there. |
||
1091 | |||
1092 | 3. Canonize the remaining contents using the procedures described |
||
1093 | in RFC 8785 [RFC8785]. |
||
1094 | |||
1095 | 4. Compare the canonized contents to the base64-encoded payload |
||
1096 | of the JSON Web Signature which was extracted before. The |
||
1097 | contents MUST be equal. |
||
1098 | |||
1099 | 5. Verify the JSON Web Signature of the original JSON file |
||
1100 | according to the procedures described in RFC 7515 [RFC7515]. |
||
1101 | |||
1102 | 3.3.3 "xml" Format |
||
1103 | |||
1104 | Signing and verifying signatures will be performed as described in |
||
1105 | the W3C Recommendation "XML Signature Syntax and Processing" |
||
1106 | ([XMLDSig]). |
||
1107 | |||
1108 | 3.4 Date/Time Format |
||
1109 | |||
1110 | Date/Time references SHALL be formatted as described in |
||
1111 | section 3.4.1. |
||
1112 | |||
1113 | If parts of the date/time reference are uncertain, then they SHOULD |
||
1114 | be omitted until the date/time reference has the highest correctness. |
||
1115 | |||
1116 | Examples of valid date/time references can be found in section 3.4.2. |
||
1117 | |||
1118 | |||
1119 | |||
1120 | Marschall Expires 26 July 2024 [Page 20] |
||
1121 | |||
1122 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
1123 | |||
1124 | |||
1125 | 3.4.1 Date/Time Format ABNF Notation |
||
1126 | |||
1127 | To define the format of a Date/Time reference, the following |
||
1128 | Augmented BNF definitions will be used. They are based on the ABNF |
||
1129 | styles of RFC 5234 [RFC5234]. |
||
1130 | |||
1131 | date-time = year [ "-" month [ "-" day [ " " time ] ] ] |
||
1132 | |||
1133 | year = 4DIGIT |
||
1134 | |||
1135 | month = ( "0" %x31-39 ) / |
||
1136 | ( "1" %x30-32 ) ; 01-12 |
||
1137 | |||
1138 | day = ( "0" %x31-39 ) / |
||
1139 | ( "1" %x30-39 ) / |
||
1140 | ( "2" %x30-39 ) / |
||
1141 | ( "3" %x30-31 ) ; 01-31 |
||
1142 | |||
1143 | time = hour ":" minute [ ":" second ] [ " " timezone ] |
||
1144 | |||
1145 | hour = ( "0" %x30-39 ) / |
||
1146 | ( "1" %x30-39 ) / |
||
1147 | ( "2" %x30-33 ) ; 00-23 |
||
1148 | |||
1149 | minute = %x30-35 DIGIT ; 00-59 |
||
1150 | |||
1151 | second = %x30-35 DIGIT ; 00-59 |
||
1152 | |||
1153 | timezone = ( "+" / "-" ) hour minute |
||
1154 | |||
1155 | 3.4.2 Date/Time Format Examples |
||
1156 | |||
1157 | Examples of valid date/time references are: |
||
1158 | |||
1159 | 2024-01-23 18:32:00 +0200 |
||
1160 | 2024-01-23 18:32:00 |
||
1161 | 2024-01-23 18:32 +0200 |
||
1162 | 2024-01-23 18:32 |
||
1163 | 2024-01-23 |
||
1164 | 2024-01 |
||
1165 | 2024 |
||
1166 | |||
1167 | |||
1168 | |||
1169 | |||
1170 | |||
1171 | |||
1172 | |||
1173 | |||
1174 | |||
1175 | |||
1176 | Marschall Expires 26 July 2024 [Page 21] |
||
1177 | |||
1178 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
1179 | |||
1180 | |||
1181 | 4 Referral |
||
1182 | |||
1183 | By using the fields "oidip-service" and "oidip-pubkey", the OID-IP |
||
1184 | service can instruct the client to query another OID-IP service that |
||
1185 | might have more information about the requested OID. |
||
1186 | |||
1187 | If Registration Authorities maintain up-to-date OID-IP service |
||
1188 | references of their OID delegations, it is possible to automatically |
||
1189 | retrieve information about any OID. |
||
1190 | |||
1191 | Example: OID "2.999" is owned by Registration Authority "A", |
||
1192 | operating an OID-IP service at "a.example.com". |
||
1193 | |||
1194 | Registration Authority "A" allocated OID "2.999.1000" to Registration |
||
1195 | Authority "B" who is operating an OID-IP service at "b.example.com". |
||
1196 | |||
1197 | The client asks a.example.com for information about OID |
||
1198 | "2.999.1000.1" and should receive the following reply: |
||
1199 | |||
1200 | query: oid:2.999.1000.1 |
||
1201 | result: Not found; superior object found |
||
1202 | distance: 1 |
||
1203 | |||
1204 | object: oid:2.999.1000 |
||
1205 | status: Information available |
||
1206 | name: Company "B" |
||
1207 | oidip-service: b.example.com:XXX |
||
1208 | |||
1209 | ra: "B" |
||
1210 | ra-status: Information unavailable |
||
1211 | |||
1212 | The client is now aware that "a.example.com" only knows OID |
||
1213 | "2.999.1000", and that there is a reference to another OID-IP service |
||
1214 | located at "b.example.com". So, the client should then accordingly |
||
1215 | query "b.example.com", asking for information about OID |
||
1216 | "2.999.1000.1": |
||
1217 | |||
1218 | query: oid:2.999.1000.1 |
||
1219 | result: Found |
||
1220 | |||
1221 | object: oid:2.999.1000.1 |
||
1222 | status: Information available |
||
1223 | name: Example OID 1 |
||
1224 | |||
1225 | ra: "B" |
||
1226 | ra-status: Information unavailable |
||
1227 | |||
1228 | |||
1229 | |||
1230 | |||
1231 | |||
1232 | Marschall Expires 26 July 2024 [Page 22] |
||
1233 | |||
1234 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
1235 | |||
1236 | |||
1237 | 5 Full Example ("text" Format) |
||
1238 | |||
1239 | 5.1 Request |
||
1240 | |||
1241 | oid:2.999 |
||
1242 | |||
1243 | 5.2 Response |
||
1244 | |||
1245 | query: oid:2.999 |
||
1246 | result: Found |
||
1247 | |||
1248 | object: oid:2.999 |
||
1249 | status: Information available |
||
1250 | lang: en-US |
||
1251 | name: Example |
||
1252 | description: This OID can be used by anyone, for the purposes of |
||
1253 | description: documenting examples of Object Identifiers. |
||
1254 | asn1-notation: {joint-iso-itu-t(2) example(999)} |
||
1255 | iri-notation: /Example |
||
1256 | identifier: example |
||
1257 | unicode-label: Beispiel |
||
1258 | unicode-label: Ejemplo |
||
1259 | unicode-label: Example |
||
1260 | unicode-label: Exemple |
||
1261 | unicode-label: (Korean characters are omitted in this example) |
||
1262 | unicode-label: (Arabian characters are omitted in this example) |
||
1263 | unicode-label: (Japanese characters are omitted in this example) |
||
1264 | unicode-label: (Chinese characters are omitted in this example) |
||
1265 | unicode-label: (Russian characters are omitted in this example) |
||
1266 | long-arc: Beispiel |
||
1267 | long-arc: Ejemplo |
||
1268 | long-arc: Example |
||
1269 | long-arc: Exemple |
||
1270 | long-arc: (Korean characters are omitted in this example) |
||
1271 | long-arc: (Arabian characters are omitted in this example) |
||
1272 | long-arc: (Japanese characters are omitted in this example) |
||
1273 | long-arc: (Chinese characters are omitted in this example) |
||
1274 | long-arc: (Russian characters are omitted in this example) |
||
1275 | parent: oid:2 (joint-iso-itu-t) |
||
1276 | created: 2011-06 |
||
1277 | updated: 2011-09 |
||
1278 | |||
1279 | ra: ITU-T SG 17 & ISO/IEC JTC 1/SC 6 |
||
1280 | ra-status: Information unavailable |
||
1281 | % -----BEGIN RSA SIGNATURE----- |
||
1282 | % DwnqRtx/ONtPh4onXnrZPl9jF+G50RMLZkSwuClaoH2t/yK8CnYJrmzkzA5+gkfWkoQ |
||
1283 | % cq+J8J9cvnwXvBfpVHg== |
||
1284 | % -----END RSA SIGNATURE----- |
||
1285 | |||
1286 | |||
1287 | |||
1288 | Marschall Expires 26 July 2024 [Page 23] |
||
1289 | |||
1290 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
1291 | |||
1292 | |||
1293 | 6 Alternative Namespaces |
||
1294 | |||
1295 | This document describes the retrieval of information about OIDs using |
||
1296 | the OID-IP protocol. In addition to the OID namespace, the methods |
||
1297 | described in this document can also be applied to other namespaces |
||
1298 | like "uuid", "isbn", "gtin", etc. |
||
1299 | |||
1300 | The following things need to be considered if alternative namespaces |
||
1301 | are implemented: |
||
1302 | |||
1303 | (1) The request MUST be UTF-8 encoded (as defined in RFC 3629 |
||
1304 | [RFC3629]), without Byte-Order-Mark (BOM). |
||
1305 | |||
1306 | (2) The namespace SHALL be a namespace identifier (NID) as defined in |
||
1307 | RFC 8141 [RFC8141]. |
||
1308 | |||
1309 | (3) The namespace identifier SHALL be written in lower-case (this is |
||
1310 | already defined in section 2 "Request"). |
||
1311 | |||
1312 | (4) If available, a formal URN namespace identifier (as defined in |
||
1313 | RFC 8141, section 5.1 [RFC8141]) SHOULD be used, e.g. "uuid" should |
||
1314 | be used instead of "guid". |
||
1315 | |||
1316 | (5) If things like "Owner", "Creator", "Manager", "Administrator", |
||
1317 | etc., are relevant to the identifiers in the namespace, then the RA- |
||
1318 | section as described in section 3.2.3 SHALL be used, even though the |
||
1319 | word "Registration Authority" might not be appropriate in the |
||
1320 | terminology of the namespace. |
||
1321 | |||
1322 | (6) The namespace-specific identifier MUST NOT contain dollar signs |
||
1323 | ("$"), because section 2.1 "Input Parameters" defines them as a |
||
1324 | separator for input parameters. |
||
1325 | |||
1326 | (7) The namespace-specific identifier MUST be treated as case- |
||
1327 | sensitive if the namespace distinguishes between lower-case and |
||
1328 | upper-case. |
||
1329 | |||
1330 | (8) Fields that can only be used in the OID namespace (e.g. "unicode- |
||
1331 | label") MUST NOT be used for other namespaces. |
||
1332 | |||
1333 | |||
1334 | |||
1335 | |||
1336 | |||
1337 | |||
1338 | |||
1339 | |||
1340 | |||
1341 | |||
1342 | |||
1343 | |||
1344 | Marschall Expires 26 July 2024 [Page 24] |
||
1345 | |||
1346 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
1347 | |||
1348 | |||
1349 | 6.1 Example: UUID Namespace |
||
1350 | |||
1351 | The following example shows the retrieval of information about |
||
1352 | Universally Unique Identifiers (e.g. UUIDs used by the Microsoft |
||
1353 | Common Object Model, also known as GUIDs). The UUID namespace has no |
||
1354 | hierarchical structure, which means that the OID-IP service can only |
||
1355 | respond with the result "Found", "Not found" or "Service error" and |
||
1356 | the fields "parent" and "subordinate" cannot be used. |
||
1357 | |||
1358 | Request: |
||
1359 | |||
1360 | uuid:b4bfcc3a-db2c-424c-b029-7fe99a87c641 |
||
1361 | |||
1362 | Response: |
||
1363 | |||
1364 | query: uuid:b4bfcc3a-db2c-424c-b029-7fe99a87c641 |
||
1365 | result: Found |
||
1366 | |||
1367 | object: uuid:b4bfcc3a-db2c-424c-b029-7fe99a87c641 |
||
1368 | status: Information available |
||
1369 | lang: en-US |
||
1370 | name: Desktop |
||
1371 | information: GUID can be used in file dialogs as "Custom Place". |
||
1372 | |||
1373 | ra: Microsoft Corp. |
||
1374 | ra-status: Information unavailable |
||
1375 | |||
1376 | More information about UUIDs can be found in Recommendation ITU-T |
||
1377 | X.667 (2012) | ISO/IEC 9834-8:2014 [X667]. |
||
1378 | |||
1379 | More information about the Microsoft Common Object Model (COM) can be |
||
1380 | found at Microsoft Docs <https://docs.microsoft.com/en- |
||
1381 | us/windows/win32/com/component-object-model--com--portal>. |
||
1382 | |||
1383 | 7 Internationalization Considerations |
||
1384 | |||
1385 | This document specifies that the request and response MUST be UTF-8 |
||
1386 | encoded (as defined in RFC 3629 [RFC3629]), without Byte-Order-Mark |
||
1387 | (BOM). |
||
1388 | |||
1389 | The OID-IP service can define additional field names, but they SHOULD |
||
1390 | be written in the English language so that there is consistency with |
||
1391 | the field names defined in this document. |
||
1392 | |||
1393 | |||
1394 | |||
1395 | |||
1396 | |||
1397 | |||
1398 | |||
1399 | |||
1400 | Marschall Expires 26 July 2024 [Page 25] |
||
1401 | |||
1402 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
1403 | |||
1404 | |||
1405 | 8 Security Considerations |
||
1406 | |||
1407 | (1) The knowledge of the existence of an OID, or information about |
||
1408 | some OIDs could be considered confidential. In this case, the OID-IP |
||
1409 | service can either deny the existence of the requested OID (by |
||
1410 | setting the result to "Not found") or redact information in the |
||
1411 | Object-Section, as defined in section 3.2.2 "Object-Section". |
||
1412 | |||
1413 | (2) Registration Authorities might demand that their data be kept |
||
1414 | confidential, or at least be partially redacted to increase privacy |
||
1415 | or as a measurement against spam. In this case, the OID-IP service |
||
1416 | can redact information in the RA-Section, as defined in section 3.2.3 |
||
1417 | "RA-Section". |
||
1418 | |||
1419 | (3) The OID-IP service can decide if confidential material is omitted |
||
1420 | or shown, based on authentication mechanisms like white-listing |
||
1421 | client IP addresses or by using authentication tokens supplied by the |
||
1422 | client during the request, as defined in section 2.1.2 |
||
1423 | "Authentication Tokens". |
||
1424 | |||
1425 | (4) The usage of authentication tokens or transmitting confidential |
||
1426 | information is not recommended if the traffic between client and |
||
1427 | server is transmitted through an untrusted network, because the OID- |
||
1428 | IP protocol is not encrypted. |
||
1429 | |||
1430 | (5) Authentication tokens must have a sufficient length and |
||
1431 | complexity to avoid successful brute force attacks, or the OID-IP |
||
1432 | service must limit the number of requests per time. |
||
1433 | |||
1434 | (6) If integrity/authenticity is required, the OID-IP response can be |
||
1435 | signed, as described in section 3.3 "Digital Signature". |
||
1436 | |||
1437 | |||
1438 | 9 IANA Considerations |
||
1439 | |||
1440 | There are no IANA Considerations. |
||
1441 | |||
1442 | |||
1443 | |||
1444 | |||
1445 | |||
1446 | |||
1447 | |||
1448 | |||
1449 | |||
1450 | |||
1451 | |||
1452 | |||
1453 | |||
1454 | |||
1455 | |||
1456 | Marschall Expires 26 July 2024 [Page 26] |
||
1457 | |||
1458 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
1459 | |||
1460 | |||
1461 | 10 References |
||
1462 | |||
1463 | 10.1 Normative References |
||
1464 | |||
1465 | [E164] "The international public telecommunication numbering |
||
1466 | plan", Recommendation ITU-T E.164 (2010), November 2010, |
||
1467 | <http://handle.itu.int/11.1002/1000/10688>. |
||
1468 | |||
1469 | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate |
||
1470 | Requirement Levels", BCP 14, RFC 2119, |
||
1471 | DOI 10.17487/RFC2119, March 1997, |
||
1472 | <https://www.rfc-editor.org/info/rfc2119>. |
||
1473 | |||
1474 | [RFC3061] Mealling, M., "A URN Namespace of Object Identifiers", |
||
1475 | RFC 3061, DOI 10.17487/RFC3061, February 2001, |
||
1476 | <https://www.rfc-editor.org/info/rfc3061>. |
||
1477 | |||
1478 | [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO |
||
1479 | 10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, |
||
1480 | November 2003, |
||
1481 | <https://www.rfc-editor.org/info/rfc3629>. |
||
1482 | |||
1483 | [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform |
||
1484 | Resource Identifier (URI): Generic Syntax", STD 66, |
||
1485 | RFC 3986, DOI 10.17487/RFC3986, January 2005, |
||
1486 | <https://www.rfc-editor.org/info/rfc3986>. |
||
1487 | |||
1488 | [RFC5234] Crocker, D., Ed., and P. Overell, "Augmented BNF for |
||
1489 | Syntax Specifications: ABNF", STD 68, RFC 5234, |
||
1490 | DOI 10.17487/RFC5234, January 2008, |
||
1491 | <https://www.rfc-editor.org/info/rfc5234>. |
||
1492 | |||
1493 | [RFC7515] Jones, M., Bradley, J., and N. Sakimura, "JSON Web |
||
1494 | Signature (JWS)", RFC 7515, DOI 10.17487/RFC7515, |
||
1495 | May 2015, |
||
1496 | <https://www.rfc-editor.org/info/rfc7515>. |
||
1497 | |||
1498 | [RFC5646] Phillips, A., Ed., and M. Davis, Ed., "Tags for |
||
1499 | Identifying Languages", BCP 47, RFC 5646, |
||
1500 | DOI 10.17487/RFC5646, September 2009, |
||
1501 | <https://www.rfc-editor.org/info/rfc5646>. |
||
1502 | |||
1503 | [RFC8141] Saint-Andre, P. and J. Klensin, "Uniform Resource Names |
||
1504 | (URNs)", RFC 8141, DOI 10.17487/RFC8141, April 2017, |
||
1505 | <https://www.rfc-editor.org/info/rfc8141>. |
||
1506 | |||
1507 | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC |
||
1508 | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, |
||
1509 | |||
1510 | |||
1511 | |||
1512 | Marschall Expires 26 July 2024 [Page 27] |
||
1513 | |||
1514 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
1515 | |||
1516 | |||
1517 | May 2017, |
||
1518 | <https://www.rfc-editor.org/info/rfc8174>. |
||
1519 | |||
1520 | [RFC8785] Rundgren, A., Jordan, B., and S. Erdtman, "JSON |
||
1521 | Canonicalization Scheme (JCS)", RFC 8785, |
||
1522 | DOI 10.17487/RFC8785, June 2020, |
||
1523 | <https://www.rfc-editor.org/info/rfc8785>. |
||
1524 | |||
1525 | [RFC8792] Watsen, K., Auerswald, E., Farrel, A., and Q. Wu, |
||
1526 | "Handling Long Lines in Content of Internet-Drafts and |
||
1527 | RFCs", RFC 8792, DOI 10.17487/RFC8792, June 2020, |
||
1528 | <https://www.rfc-editor.org/info/rfc8792>. |
||
1529 | |||
1530 | [RFC8259] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data |
||
1531 | Interchange Format", STD 90, RFC 8259, |
||
1532 | DOI 10.17487/RFC8259, December 2017, |
||
1533 | <https://www.rfc-editor.org/info/rfc8259>. |
||
1534 | |||
1535 | [X660] "Information technology - Procedures for the operation of |
||
1536 | object identifier registration authorities: General |
||
1537 | procedures and top arcs of the international object |
||
1538 | identifier tree", Recommendation ITU-T X.660 (2011) | |
||
1539 | ISO/IEC 9834-1:2012, July 2011, |
||
1540 | <http://handle.itu.int/11.1002/1000/11336>. |
||
1541 | |||
1542 | [X680] "Information technology - Abstract Syntax Notation One |
||
1543 | (ASN.1): Specification of basic notation", Recommendation |
||
1544 | ITU-T X.680 (2015) | ISO/IEC 8824-1:2015, August 2015, |
||
1545 | <http://handle.itu.int/11.1002/1000/12479>. |
||
1546 | |||
1547 | [XML] "Extensible Markup Language (XML) 1.1 (Second Edition)" |
||
1548 | W3C Recommendation 16 August 2006, edited in place |
||
1549 | 29 September 2006, |
||
1550 | <https://www.w3.org/TR/2006/REC-xml11-20060816/>. |
||
1551 | |||
1552 | [XMLDSig] "XML Signature Syntax and Processing Version 1.1" |
||
1553 | W3C Recommendation 11 April 2013, |
||
1554 | <https://www.w3.org/TR/xmldsig-core1/>. |
||
1555 | |||
1556 | [XSD] W3C XML Schema Definition Language (XSD) |
||
1557 | W3C Recommendation 5 April 2012, |
||
1558 | <https://www.w3.org/TR/xmlschema11-1/>. |
||
1559 | |||
1560 | [JSONSch] JSON Schema Specification |
||
1561 | <https://json-schema.org/specification.html>. |
||
1562 | |||
1563 | 10.2 Informative References |
||
1564 | |||
1565 | |||
1566 | |||
1567 | |||
1568 | Marschall Expires 26 July 2024 [Page 28] |
||
1569 | |||
1570 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
1571 | |||
1572 | |||
1573 | [RFC1157] Case, J., Fedor, M., Schoffstall, M., and J. Davin, |
||
1574 | "Simple Network Management Protocol (SNMP)", RFC 1157, |
||
1575 | DOI 10.17487/RFC1157, May 1990, |
||
1576 | <https://www.rfc-editor.org/info/rfc1157>. |
||
1577 | |||
1578 | [RFC4511] Sermersheim, J., Ed., "Lightweight Directory Access |
||
1579 | Protocol (LDAP): The Protocol", RFC 4511, |
||
1580 | DOI 10.17487/RFC4511, June 2006, |
||
1581 | <https://www.rfc-editor.org/info/rfc4511>. |
||
1582 | |||
1583 | [RFC4880] Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R. |
||
1584 | Thayer, "OpenPGP Message Format", RFC 4880, |
||
1585 | DOI 10.17487/RFC4880, November 2007, |
||
1586 | <https://www.rfc-editor.org/info/rfc4880>. |
||
1587 | |||
1588 | [X509] "Information technology - Open Systems Interconnection - |
||
1589 | The Directory: Public-key and attribute certificate |
||
1590 | frameworks", Recommendation ITU-T X.509 (2016) | |
||
1591 | ISO/IEC 9594-8:2017, October 2016, |
||
1592 | <http://handle.itu.int/11.1002/1000/13031>. |
||
1593 | |||
1594 | [X667] "Information technology - Procedures for the operation of |
||
1595 | object identifier registration authorities: Generation of |
||
1596 | universally unique identifiers and their use in object |
||
1597 | identifiers", Recommendation ITU-T X.667 (2012) | |
||
1598 | ISO/IEC 9834-8:2014, October 2012, |
||
1599 | <http://handle.itu.int/11.1002/1000/11746>. |
||
1600 | |||
1601 | [X672] "Information technology - Open systems interconnection - |
||
1602 | Object identifier resolution system", |
||
1603 | Recommendation ITU-T X.672 (2010) | ISO/IEC 29168-1:2011, |
||
1604 | August 2010, |
||
1605 | <http://handle.itu.int/11.1002/1000/10831>. |
||
1606 | |||
1607 | |||
1608 | |||
1609 | |||
1610 | |||
1611 | |||
1612 | |||
1613 | |||
1614 | |||
1615 | |||
1616 | |||
1617 | |||
1618 | |||
1619 | |||
1620 | |||
1621 | |||
1622 | |||
1623 | |||
1624 | Marschall Expires 26 July 2024 [Page 29] |
||
1625 | |||
1626 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
1627 | |||
1628 | |||
1629 | Appendix A. JSON Format Schema and Example |
||
1630 | |||
1631 | Appendix A.1. JSON Format Schema |
||
1632 | |||
1633 | The following JSON Schema ([JSONSch]) defines the expected output the |
||
1634 | server sends if the argument "format" is set to "json". |
||
1635 | |||
1636 | [To RFC Editor: Please change "draft-viathinksoft-oidip-07.json" before |
||
1637 | publication.] |
||
1638 | |||
1639 | [To RFC Editor: Please change "urn:ietf:id:draft-viathinksoft-oidip-07" |
||
1640 | to "urn:ietf:rfc:yyyy" before publication.] |
||
1641 | |||
1642 | NOTE: '\' line wrapping per RFC 8792 [RFC8792] |
||
1643 | |||
1644 | <CODE BEGINS> file "draft-viathinksoft-oidip-07.json" |
||
1645 | { |
||
1646 | "$id":"urn:ietf:id:draft-viathinksoft-oidip-07", |
||
1647 | "$schema":"https://json-schema.org/draft/2020-12/schema", |
||
1648 | "type":"object", |
||
1649 | "properties":{ |
||
1650 | "oidip":{ |
||
1651 | "type":"object", |
||
1652 | "properties":{ |
||
1653 | "querySection":{ |
||
1654 | "type":"object", |
||
1655 | "properties":{ |
||
1656 | "query":{ |
||
1657 | "$ref": "#/$defs/inputQueryType" |
||
1658 | }, |
||
1659 | "result":{ |
||
1660 | "type":"string", |
||
1661 | "enum":["Found", |
||
1662 | "Not found; superior object found", |
||
1663 | "Not found", |
||
1664 | "Service error"] |
||
1665 | }, |
||
1666 | "distance":{ |
||
1667 | "type":"integer" |
||
1668 | }, |
||
1669 | "message":{ |
||
1670 | "type":"string" |
||
1671 | }, |
||
1672 | "lang":{ |
||
1673 | "type":"string" |
||
1674 | } |
||
1675 | }, |
||
1676 | "required":[ |
||
1677 | |||
1678 | |||
1679 | |||
1680 | Marschall Expires 26 July 2024 [Page 30] |
||
1681 | |||
1682 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
1683 | |||
1684 | |||
1685 | "query", |
||
1686 | "result" |
||
1687 | ] |
||
1688 | }, |
||
1689 | "objectSection":{ |
||
1690 | "type":"object", |
||
1691 | "properties":{ |
||
1692 | "object":{ |
||
1693 | "$ref": "#/$defs/inputQueryType" |
||
1694 | }, |
||
1695 | "status":{ |
||
1696 | "type":"string", |
||
1697 | "enum":["Information available", |
||
1698 | "Information partially available", |
||
1699 | "Information unavailable"] |
||
1700 | }, |
||
1701 | "lang":{ |
||
1702 | "type":"string" |
||
1703 | }, |
||
1704 | "name":{ |
||
1705 | "type":"string" |
||
1706 | }, |
||
1707 | "description":{ |
||
1708 | "type":"string" |
||
1709 | }, |
||
1710 | "information":{ |
||
1711 | "type":"string" |
||
1712 | }, |
||
1713 | "url":{ |
||
1714 | "type":"string" |
||
1715 | }, |
||
1716 | "asn1-notation":{ |
||
1717 | "oneOf":[ |
||
1718 | { |
||
1719 | "type":"string" |
||
1720 | }, |
||
1721 | { |
||
1722 | "type":"array", |
||
1723 | "items":{ |
||
1724 | "type":"string" |
||
1725 | } |
||
1726 | } |
||
1727 | ] |
||
1728 | }, |
||
1729 | "iri-notation":{ |
||
1730 | "oneOf":[ |
||
1731 | { |
||
1732 | "type":"string" |
||
1733 | |||
1734 | |||
1735 | |||
1736 | Marschall Expires 26 July 2024 [Page 31] |
||
1737 | |||
1738 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
1739 | |||
1740 | |||
1741 | }, |
||
1742 | { |
||
1743 | "type":"array", |
||
1744 | "items":{ |
||
1745 | "type":"string" |
||
1746 | } |
||
1747 | } |
||
1748 | ] |
||
1749 | }, |
||
1750 | "identifier":{ |
||
1751 | "oneOf":[ |
||
1752 | { |
||
1753 | "type":"string" |
||
1754 | }, |
||
1755 | { |
||
1756 | "type":"array", |
||
1757 | "items":{ |
||
1758 | "type":"string" |
||
1759 | } |
||
1760 | } |
||
1761 | ] |
||
1762 | }, |
||
1763 | "standardized-id":{ |
||
1764 | "oneOf":[ |
||
1765 | { |
||
1766 | "type":"string" |
||
1767 | }, |
||
1768 | { |
||
1769 | "type":"array", |
||
1770 | "items":{ |
||
1771 | "type":"string" |
||
1772 | } |
||
1773 | } |
||
1774 | ] |
||
1775 | }, |
||
1776 | "unicode-label":{ |
||
1777 | "oneOf":[ |
||
1778 | { |
||
1779 | "type":"string" |
||
1780 | }, |
||
1781 | { |
||
1782 | "type":"array", |
||
1783 | "items":{ |
||
1784 | "type":"string" |
||
1785 | } |
||
1786 | } |
||
1787 | ] |
||
1788 | }, |
||
1789 | |||
1790 | |||
1791 | |||
1792 | Marschall Expires 26 July 2024 [Page 32] |
||
1793 | |||
1794 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
1795 | |||
1796 | |||
1797 | "long-arc":{ |
||
1798 | "oneOf":[ |
||
1799 | { |
||
1800 | "type":"string" |
||
1801 | }, |
||
1802 | { |
||
1803 | "type":"array", |
||
1804 | "items":{ |
||
1805 | "type":"string" |
||
1806 | } |
||
1807 | } |
||
1808 | ] |
||
1809 | }, |
||
1810 | "oidip-service":{ |
||
1811 | "type":"string" |
||
1812 | }, |
||
1813 | "oidip-pubkey":{ |
||
1814 | "type":"string" |
||
1815 | }, |
||
1816 | "attribute":{ |
||
1817 | "oneOf":[ |
||
1818 | { |
||
1819 | "type":"string", |
||
1820 | "enum":["confidential", |
||
1821 | "draft", |
||
1822 | "frozen", |
||
1823 | "leaf", |
||
1824 | "no-identifiers", |
||
1825 | "no-unicode-labels", |
||
1826 | "retired"] |
||
1827 | }, |
||
1828 | { |
||
1829 | "type":"array", |
||
1830 | "items":{ |
||
1831 | "type":"string", |
||
1832 | "enum":["confidential", |
||
1833 | "draft", |
||
1834 | "frozen", |
||
1835 | "leaf", |
||
1836 | "no-identifiers", |
||
1837 | "no-unicode-labels", |
||
1838 | "retired"] |
||
1839 | } |
||
1840 | } |
||
1841 | ] |
||
1842 | }, |
||
1843 | "parent":{ |
||
1844 | "type":"string" |
||
1845 | |||
1846 | |||
1847 | |||
1848 | Marschall Expires 26 July 2024 [Page 33] |
||
1849 | |||
1850 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
1851 | |||
1852 | |||
1853 | }, |
||
1854 | "subordinate":{ |
||
1855 | "oneOf":[ |
||
1856 | { |
||
1857 | "type":"string" |
||
1858 | }, |
||
1859 | { |
||
1860 | "type":"array", |
||
1861 | "items":{ |
||
1862 | "type":"string" |
||
1863 | } |
||
1864 | } |
||
1865 | ] |
||
1866 | }, |
||
1867 | "created":{ |
||
1868 | "$ref": "#/$defs/dateTimeRef" |
||
1869 | }, |
||
1870 | "updated":{ |
||
1871 | "$ref": "#/$defs/dateTimeRef" |
||
1872 | } |
||
1873 | }, |
||
1874 | "required":[ |
||
1875 | "object", |
||
1876 | "status" |
||
1877 | ] |
||
1878 | }, |
||
1879 | "raSection":{ |
||
1880 | "type":"object", |
||
1881 | "properties":{ |
||
1882 | "ra":{ |
||
1883 | "$comment":"Note: \"ra\" keeps its name, even in \ |
||
1884 | Ra1SectionType et al.", |
||
1885 | "type":"string" |
||
1886 | }, |
||
1887 | "status":{ |
||
1888 | "type":"string", |
||
1889 | "enum":["Information available", |
||
1890 | "Information partially available", |
||
1891 | "Information unavailable"] |
||
1892 | }, |
||
1893 | "lang":{ |
||
1894 | "type":"string" |
||
1895 | }, |
||
1896 | "contact-name":{ |
||
1897 | "type":"string" |
||
1898 | }, |
||
1899 | "address":{ |
||
1900 | "type":"string" |
||
1901 | |||
1902 | |||
1903 | |||
1904 | Marschall Expires 26 July 2024 [Page 34] |
||
1905 | |||
1906 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
1907 | |||
1908 | |||
1909 | }, |
||
1910 | "phone":{ |
||
1911 | "type":"string" |
||
1912 | }, |
||
1913 | "mobile":{ |
||
1914 | "type":"string" |
||
1915 | }, |
||
1916 | "fax":{ |
||
1917 | "type":"string" |
||
1918 | }, |
||
1919 | "email":{ |
||
1920 | "type":"string" |
||
1921 | }, |
||
1922 | "url":{ |
||
1923 | "type":"string" |
||
1924 | }, |
||
1925 | "attribute":{ |
||
1926 | "oneOf":[ |
||
1927 | { |
||
1928 | "type":"string", |
||
1929 | "enum":["confidential", |
||
1930 | "retired"] |
||
1931 | }, |
||
1932 | { |
||
1933 | "type":"array", |
||
1934 | "items":{ |
||
1935 | "type":"string", |
||
1936 | "enum":["confidential", |
||
1937 | "retired"] |
||
1938 | } |
||
1939 | } |
||
1940 | ] |
||
1941 | }, |
||
1942 | "created":{ |
||
1943 | "$ref": "#/$defs/dateTimeRef" |
||
1944 | }, |
||
1945 | "updated":{ |
||
1946 | "$ref": "#/$defs/dateTimeRef" |
||
1947 | } |
||
1948 | }, |
||
1949 | "required":[ |
||
1950 | "ra", |
||
1951 | "status" |
||
1952 | ] |
||
1953 | }, |
||
1954 | "ra1Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1955 | "ra2Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1956 | "ra3Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1957 | |||
1958 | |||
1959 | |||
1960 | Marschall Expires 26 July 2024 [Page 35] |
||
1961 | |||
1962 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
1963 | |||
1964 | |||
1965 | "ra4Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1966 | "ra5Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1967 | "ra6Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1968 | "ra7Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1969 | "ra8Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1970 | "ra9Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1971 | "ra10Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1972 | "ra11Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1973 | "ra12Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1974 | "ra13Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1975 | "ra14Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1976 | "ra15Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1977 | "ra16Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1978 | "ra17Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1979 | "ra18Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1980 | "ra19Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1981 | "ra20Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1982 | "ra21Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1983 | "ra22Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1984 | "ra23Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1985 | "ra24Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1986 | "ra25Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1987 | "ra26Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1988 | "ra27Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1989 | "ra28Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1990 | "ra29Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1991 | "ra30Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1992 | "ra31Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1993 | "ra32Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1994 | "ra33Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1995 | "ra34Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1996 | "ra35Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1997 | "ra36Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1998 | "ra37Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
1999 | "ra38Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2000 | "ra39Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2001 | "ra40Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2002 | "ra41Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2003 | "ra42Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2004 | "ra43Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2005 | "ra44Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2006 | "ra45Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2007 | "ra46Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2008 | "ra47Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2009 | "ra48Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2010 | "ra49Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2011 | "ra50Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2012 | "ra51Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2013 | |||
2014 | |||
2015 | |||
2016 | Marschall Expires 26 July 2024 [Page 36] |
||
2017 | |||
2018 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
2019 | |||
2020 | |||
2021 | "ra52Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2022 | "ra53Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2023 | "ra54Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2024 | "ra55Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2025 | "ra56Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2026 | "ra57Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2027 | "ra58Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2028 | "ra59Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2029 | "ra60Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2030 | "ra61Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2031 | "ra62Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2032 | "ra63Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2033 | "ra64Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2034 | "ra65Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2035 | "ra66Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2036 | "ra67Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2037 | "ra68Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2038 | "ra69Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2039 | "ra70Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2040 | "ra71Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2041 | "ra72Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2042 | "ra73Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2043 | "ra74Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2044 | "ra75Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2045 | "ra76Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2046 | "ra77Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2047 | "ra78Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2048 | "ra79Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2049 | "ra80Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2050 | "ra81Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2051 | "ra82Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2052 | "ra83Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2053 | "ra84Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2054 | "ra85Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2055 | "ra86Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2056 | "ra87Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2057 | "ra88Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2058 | "ra89Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2059 | "ra90Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2060 | "ra91Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2061 | "ra92Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2062 | "ra93Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2063 | "ra94Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2064 | "ra95Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2065 | "ra96Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2066 | "ra97Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2067 | "ra98Section":{"$ref":"#/properties/oidip/properties/raSection"}, |
||
2068 | "ra99Section":{"$ref":"#/properties/oidip/properties/raSection"} |
||
2069 | |||
2070 | |||
2071 | |||
2072 | Marschall Expires 26 July 2024 [Page 37] |
||
2073 | |||
2074 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
2075 | |||
2076 | |||
2077 | }, |
||
2078 | "required":[ |
||
2079 | "querySection" |
||
2080 | ] |
||
2081 | }, |
||
2082 | "signature":{ |
||
2083 | "type":"string", |
||
2084 | "pattern":"^[A-Za-z0-9+/=]+\\.[A-Za-z0-9+/=]+\\.[A-Za-z0-9+/=]+$" |
||
2085 | } |
||
2086 | }, |
||
2087 | "required":[ |
||
2088 | "oidip" |
||
2089 | ], |
||
2090 | "$defs":{ |
||
2091 | "dateTimeRef":{ |
||
2092 | "type":"string", |
||
2093 | "pattern":"^\\d{4}(-(0[1-9]|1[0-2])(-(0[1-9]|1\\d|2\\d|3[0-1])\ |
||
2094 | ( [0-5]\\d:[0-5]\\d(:[0-5]\\d)?( [+-][0-5]\\d[0-5]\\d)?)?)?)?$" |
||
2095 | }, |
||
2096 | "inputQueryType":{ |
||
2097 | "$comment":"Note: The ABNF definition is more accurate", |
||
2098 | "type":"string", |
||
2099 | "pattern":"^[a-z0-9]+:(.*)$" |
||
2100 | } |
||
2101 | } |
||
2102 | } |
||
2103 | <CODE ENDS> |
||
2104 | |||
2105 | |||
2106 | |||
2107 | |||
2108 | |||
2109 | |||
2110 | |||
2111 | |||
2112 | |||
2113 | |||
2114 | |||
2115 | |||
2116 | |||
2117 | |||
2118 | |||
2119 | |||
2120 | |||
2121 | |||
2122 | |||
2123 | |||
2124 | |||
2125 | |||
2126 | |||
2127 | |||
2128 | Marschall Expires 26 July 2024 [Page 38] |
||
2129 | |||
2130 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
2131 | |||
2132 | |||
2133 | Appendix A.2. JSON Format Example of Output |
||
2134 | |||
2135 | [To RFC Editor: Please change "urn:ietf:id:draft-viathinksoft-oidip-07" |
||
2136 | to "urn:ietf:rfc:yyyy" before publication.] |
||
2137 | |||
2138 | NOTE: '\' line wrapping per RFC 8792 [RFC8792] |
||
2139 | |||
2140 | <CODE BEGINS> file "oidip_example.json" |
||
2141 | { |
||
2142 | "$schema":"urn:ietf:id:draft-viathinksoft-oidip-07", |
||
2143 | "oidip": { |
||
2144 | "querySection": { |
||
2145 | "query": "oid:2.999", |
||
2146 | "result": "Found" |
||
2147 | }, |
||
2148 | "objectSection": { |
||
2149 | "object": "oid:2.999", |
||
2150 | "status": "Information available", |
||
2151 | "lang": "en-US", |
||
2152 | "name": "Example", |
||
2153 | "description": "This OID can be used by anyone, for the \ |
||
2154 | purposes of documenting examples of Object Identifiers.", |
||
2155 | "asn1-notation": "{joint-iso-itu-t(2) example(999)}", |
||
2156 | "iri-notation": "/Example", |
||
2157 | "identifier": "example", |
||
2158 | "unicode-label": [ |
||
2159 | "Beispiel", |
||
2160 | "Ejemplo", |
||
2161 | "Example", |
||
2162 | "Exemple", |
||
2163 | "(Korean characters are omitted in this example)", |
||
2164 | "(Arabian characters are omitted in this example)", |
||
2165 | "(Japanese characters are omitted in this example)", |
||
2166 | "(Chinese characters are omitted in this example)", |
||
2167 | "(Russian characters are omitted in this example)" |
||
2168 | ], |
||
2169 | "long-arc": [ |
||
2170 | "Beispiel", |
||
2171 | "Ejemplo", |
||
2172 | "Example", |
||
2173 | "Exemple", |
||
2174 | "(Korean characters are omitted in this example)", |
||
2175 | "(Arabian characters are omitted in this example)", |
||
2176 | "(Japanese characters are omitted in this example)", |
||
2177 | "(Chinese characters are omitted in this example)", |
||
2178 | "(Russian characters are omitted in this example)" |
||
2179 | ], |
||
2180 | "parent": "oid:2 (joint-iso-ccitt, joint-iso-itu-t)", |
||
2181 | |||
2182 | |||
2183 | |||
2184 | Marschall Expires 26 July 2024 [Page 39] |
||
2185 | |||
2186 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
2187 | |||
2188 | |||
2189 | "subordinate": [], |
||
2190 | "created": "2011-06", |
||
2191 | "updated": "2020-09" |
||
2192 | }, |
||
2193 | "raSection": { |
||
2194 | "ra": "ITU-T SG 17 & ISO/IEC JTC 1/SC 6", |
||
2195 | "status": "Information unavailable" |
||
2196 | } |
||
2197 | }, |
||
2198 | "signature": "(JSON Web Signature here)" |
||
2199 | } |
||
2200 | <CODE ENDS> |
||
2201 | |||
2202 | |||
2203 | |||
2204 | |||
2205 | |||
2206 | |||
2207 | |||
2208 | |||
2209 | |||
2210 | |||
2211 | |||
2212 | |||
2213 | |||
2214 | |||
2215 | |||
2216 | |||
2217 | |||
2218 | |||
2219 | |||
2220 | |||
2221 | |||
2222 | |||
2223 | |||
2224 | |||
2225 | |||
2226 | |||
2227 | |||
2228 | |||
2229 | |||
2230 | |||
2231 | |||
2232 | |||
2233 | |||
2234 | |||
2235 | |||
2236 | |||
2237 | |||
2238 | |||
2239 | |||
2240 | Marschall Expires 26 July 2024 [Page 40] |
||
2241 | |||
2242 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
2243 | |||
2244 | |||
2245 | Appendix B. XML Format Schema and Example |
||
2246 | |||
2247 | Appendix B.1. XML Format Schema |
||
2248 | |||
2249 | [To RFC Editor: Please change "urn:ietf:id:draft-viathinksoft-oidip-07" |
||
2250 | to "urn:ietf:rfc:yyyy" before publication.] |
||
2251 | |||
2252 | [To RFC Editor: Please change "draft-viathinksoft-oidip-07.xsd" before |
||
2253 | publication.] |
||
2254 | |||
2255 | The following XML Schema Definition ([XSD]) defines the expected output |
||
2256 | the server sends if the argument "format" is set to "xml". |
||
2257 | |||
2258 | NOTE: '\' line wrapping per RFC 8792 [RFC8792] |
||
2259 | |||
2260 | <CODE BEGINS> file "draft-viathinksoft-oidip-07.xsd" |
||
2261 | <?xml version="1.0"?> |
||
2262 | <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" |
||
2263 | xmlns:ds="http://www.w3.org/2000/09/xmldsig#" |
||
2264 | xmlns:ns1="urn:ietf:id:draft-viathinksoft-oidip-07" |
||
2265 | targetNamespace="urn:ietf:id:draft-viathinksoft-oidip-07" |
||
2266 | elementFormDefault="qualified" |
||
2267 | attributeFormDefault="unqualified"> |
||
2268 | <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" |
||
2269 | schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig\ |
||
2270 | -core-20020212/xmldsig-core-schema.xsd"/> |
||
2271 | |||
2272 | <xs:element name="root"> |
||
2273 | <xs:complexType> |
||
2274 | <xs:sequence> |
||
2275 | <xs:element name="oidip" minOccurs="1" maxOccurs="1" |
||
2276 | type="ns1:OidIpType"/> |
||
2277 | <xs:element minOccurs="0" maxOccurs="1" |
||
2278 | ref="ds:Signature"/> |
||
2279 | </xs:sequence> |
||
2280 | </xs:complexType> |
||
2281 | </xs:element> |
||
2282 | |||
2283 | <xs:complexType name="OidIpType"> |
||
2284 | <xs:sequence> |
||
2285 | <xs:element name="querySection" minOccurs="1" maxOccurs="1" |
||
2286 | type="ns1:QuerySectionType"/> |
||
2287 | <xs:element name="objectSection" minOccurs="0" maxOccurs="1" |
||
2288 | type="ns1:ObjectSectionType"/> |
||
2289 | <xs:element name="raSection" minOccurs="0" maxOccurs="1" |
||
2290 | type="ns1:RaSectionType"/> |
||
2291 | <xs:element name="ra1Section" minOccurs="0" maxOccurs="1" |
||
2292 | type="ns1:RaSectionType"/> |
||
2293 | |||
2294 | |||
2295 | |||
2296 | Marschall Expires 26 July 2024 [Page 41] |
||
2297 | |||
2298 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
2299 | |||
2300 | |||
2301 | <xs:element name="ra2Section" minOccurs="0" maxOccurs="1" |
||
2302 | type="ns1:RaSectionType"/> |
||
2303 | <xs:element name="ra3Section" minOccurs="0" maxOccurs="1" |
||
2304 | type="ns1:RaSectionType"/> |
||
2305 | <xs:element name="ra4Section" minOccurs="0" maxOccurs="1" |
||
2306 | type="ns1:RaSectionType"/> |
||
2307 | <xs:element name="ra5Section" minOccurs="0" maxOccurs="1" |
||
2308 | type="ns1:RaSectionType"/> |
||
2309 | <xs:element name="ra6Section" minOccurs="0" maxOccurs="1" |
||
2310 | type="ns1:RaSectionType"/> |
||
2311 | <xs:element name="ra7Section" minOccurs="0" maxOccurs="1" |
||
2312 | type="ns1:RaSectionType"/> |
||
2313 | <xs:element name="ra8Section" minOccurs="0" maxOccurs="1" |
||
2314 | type="ns1:RaSectionType"/> |
||
2315 | <xs:element name="ra9Section" minOccurs="0" maxOccurs="1" |
||
2316 | type="ns1:RaSectionType"/> |
||
2317 | <xs:element name="ra10Section" minOccurs="0" maxOccurs="1" |
||
2318 | type="ns1:RaSectionType"/> |
||
2319 | <xs:element name="ra11Section" minOccurs="0" maxOccurs="1" |
||
2320 | type="ns1:RaSectionType"/> |
||
2321 | <xs:element name="ra12Section" minOccurs="0" maxOccurs="1" |
||
2322 | type="ns1:RaSectionType"/> |
||
2323 | <xs:element name="ra13Section" minOccurs="0" maxOccurs="1" |
||
2324 | type="ns1:RaSectionType"/> |
||
2325 | <xs:element name="ra14Section" minOccurs="0" maxOccurs="1" |
||
2326 | type="ns1:RaSectionType"/> |
||
2327 | <xs:element name="ra15Section" minOccurs="0" maxOccurs="1" |
||
2328 | type="ns1:RaSectionType"/> |
||
2329 | <xs:element name="ra16Section" minOccurs="0" maxOccurs="1" |
||
2330 | type="ns1:RaSectionType"/> |
||
2331 | <xs:element name="ra17Section" minOccurs="0" maxOccurs="1" |
||
2332 | type="ns1:RaSectionType"/> |
||
2333 | <xs:element name="ra18Section" minOccurs="0" maxOccurs="1" |
||
2334 | type="ns1:RaSectionType"/> |
||
2335 | <xs:element name="ra19Section" minOccurs="0" maxOccurs="1" |
||
2336 | type="ns1:RaSectionType"/> |
||
2337 | <xs:element name="ra20Section" minOccurs="0" maxOccurs="1" |
||
2338 | type="ns1:RaSectionType"/> |
||
2339 | <xs:element name="ra21Section" minOccurs="0" maxOccurs="1" |
||
2340 | type="ns1:RaSectionType"/> |
||
2341 | <xs:element name="ra22Section" minOccurs="0" maxOccurs="1" |
||
2342 | type="ns1:RaSectionType"/> |
||
2343 | <xs:element name="ra23Section" minOccurs="0" maxOccurs="1" |
||
2344 | type="ns1:RaSectionType"/> |
||
2345 | <xs:element name="ra24Section" minOccurs="0" maxOccurs="1" |
||
2346 | type="ns1:RaSectionType"/> |
||
2347 | <xs:element name="ra25Section" minOccurs="0" maxOccurs="1" |
||
2348 | type="ns1:RaSectionType"/> |
||
2349 | |||
2350 | |||
2351 | |||
2352 | Marschall Expires 26 July 2024 [Page 42] |
||
2353 | |||
2354 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
2355 | |||
2356 | |||
2357 | <xs:element name="ra26Section" minOccurs="0" maxOccurs="1" |
||
2358 | type="ns1:RaSectionType"/> |
||
2359 | <xs:element name="ra27Section" minOccurs="0" maxOccurs="1" |
||
2360 | type="ns1:RaSectionType"/> |
||
2361 | <xs:element name="ra28Section" minOccurs="0" maxOccurs="1" |
||
2362 | type="ns1:RaSectionType"/> |
||
2363 | <xs:element name="ra29Section" minOccurs="0" maxOccurs="1" |
||
2364 | type="ns1:RaSectionType"/> |
||
2365 | <xs:element name="ra30Section" minOccurs="0" maxOccurs="1" |
||
2366 | type="ns1:RaSectionType"/> |
||
2367 | <xs:element name="ra31Section" minOccurs="0" maxOccurs="1" |
||
2368 | type="ns1:RaSectionType"/> |
||
2369 | <xs:element name="ra32Section" minOccurs="0" maxOccurs="1" |
||
2370 | type="ns1:RaSectionType"/> |
||
2371 | <xs:element name="ra33Section" minOccurs="0" maxOccurs="1" |
||
2372 | type="ns1:RaSectionType"/> |
||
2373 | <xs:element name="ra34Section" minOccurs="0" maxOccurs="1" |
||
2374 | type="ns1:RaSectionType"/> |
||
2375 | <xs:element name="ra35Section" minOccurs="0" maxOccurs="1" |
||
2376 | type="ns1:RaSectionType"/> |
||
2377 | <xs:element name="ra36Section" minOccurs="0" maxOccurs="1" |
||
2378 | type="ns1:RaSectionType"/> |
||
2379 | <xs:element name="ra37Section" minOccurs="0" maxOccurs="1" |
||
2380 | type="ns1:RaSectionType"/> |
||
2381 | <xs:element name="ra38Section" minOccurs="0" maxOccurs="1" |
||
2382 | type="ns1:RaSectionType"/> |
||
2383 | <xs:element name="ra39Section" minOccurs="0" maxOccurs="1" |
||
2384 | type="ns1:RaSectionType"/> |
||
2385 | <xs:element name="ra40Section" minOccurs="0" maxOccurs="1" |
||
2386 | type="ns1:RaSectionType"/> |
||
2387 | <xs:element name="ra41Section" minOccurs="0" maxOccurs="1" |
||
2388 | type="ns1:RaSectionType"/> |
||
2389 | <xs:element name="ra42Section" minOccurs="0" maxOccurs="1" |
||
2390 | type="ns1:RaSectionType"/> |
||
2391 | <xs:element name="ra43Section" minOccurs="0" maxOccurs="1" |
||
2392 | type="ns1:RaSectionType"/> |
||
2393 | <xs:element name="ra44Section" minOccurs="0" maxOccurs="1" |
||
2394 | type="ns1:RaSectionType"/> |
||
2395 | <xs:element name="ra45Section" minOccurs="0" maxOccurs="1" |
||
2396 | type="ns1:RaSectionType"/> |
||
2397 | <xs:element name="ra46Section" minOccurs="0" maxOccurs="1" |
||
2398 | type="ns1:RaSectionType"/> |
||
2399 | <xs:element name="ra47Section" minOccurs="0" maxOccurs="1" |
||
2400 | type="ns1:RaSectionType"/> |
||
2401 | <xs:element name="ra48Section" minOccurs="0" maxOccurs="1" |
||
2402 | type="ns1:RaSectionType"/> |
||
2403 | <xs:element name="ra49Section" minOccurs="0" maxOccurs="1" |
||
2404 | type="ns1:RaSectionType"/> |
||
2405 | |||
2406 | |||
2407 | |||
2408 | Marschall Expires 26 July 2024 [Page 43] |
||
2409 | |||
2410 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
2411 | |||
2412 | |||
2413 | <xs:element name="ra50Section" minOccurs="0" maxOccurs="1" |
||
2414 | type="ns1:RaSectionType"/> |
||
2415 | <xs:element name="ra51Section" minOccurs="0" maxOccurs="1" |
||
2416 | type="ns1:RaSectionType"/> |
||
2417 | <xs:element name="ra52Section" minOccurs="0" maxOccurs="1" |
||
2418 | type="ns1:RaSectionType"/> |
||
2419 | <xs:element name="ra53Section" minOccurs="0" maxOccurs="1" |
||
2420 | type="ns1:RaSectionType"/> |
||
2421 | <xs:element name="ra54Section" minOccurs="0" maxOccurs="1" |
||
2422 | type="ns1:RaSectionType"/> |
||
2423 | <xs:element name="ra55Section" minOccurs="0" maxOccurs="1" |
||
2424 | type="ns1:RaSectionType"/> |
||
2425 | <xs:element name="ra56Section" minOccurs="0" maxOccurs="1" |
||
2426 | type="ns1:RaSectionType"/> |
||
2427 | <xs:element name="ra57Section" minOccurs="0" maxOccurs="1" |
||
2428 | type="ns1:RaSectionType"/> |
||
2429 | <xs:element name="ra58Section" minOccurs="0" maxOccurs="1" |
||
2430 | type="ns1:RaSectionType"/> |
||
2431 | <xs:element name="ra59Section" minOccurs="0" maxOccurs="1" |
||
2432 | type="ns1:RaSectionType"/> |
||
2433 | <xs:element name="ra60Section" minOccurs="0" maxOccurs="1" |
||
2434 | type="ns1:RaSectionType"/> |
||
2435 | <xs:element name="ra61Section" minOccurs="0" maxOccurs="1" |
||
2436 | type="ns1:RaSectionType"/> |
||
2437 | <xs:element name="ra62Section" minOccurs="0" maxOccurs="1" |
||
2438 | type="ns1:RaSectionType"/> |
||
2439 | <xs:element name="ra63Section" minOccurs="0" maxOccurs="1" |
||
2440 | type="ns1:RaSectionType"/> |
||
2441 | <xs:element name="ra64Section" minOccurs="0" maxOccurs="1" |
||
2442 | type="ns1:RaSectionType"/> |
||
2443 | <xs:element name="ra65Section" minOccurs="0" maxOccurs="1" |
||
2444 | type="ns1:RaSectionType"/> |
||
2445 | <xs:element name="ra66Section" minOccurs="0" maxOccurs="1" |
||
2446 | type="ns1:RaSectionType"/> |
||
2447 | <xs:element name="ra67Section" minOccurs="0" maxOccurs="1" |
||
2448 | type="ns1:RaSectionType"/> |
||
2449 | <xs:element name="ra68Section" minOccurs="0" maxOccurs="1" |
||
2450 | type="ns1:RaSectionType"/> |
||
2451 | <xs:element name="ra69Section" minOccurs="0" maxOccurs="1" |
||
2452 | type="ns1:RaSectionType"/> |
||
2453 | <xs:element name="ra70Section" minOccurs="0" maxOccurs="1" |
||
2454 | type="ns1:RaSectionType"/> |
||
2455 | <xs:element name="ra71Section" minOccurs="0" maxOccurs="1" |
||
2456 | type="ns1:RaSectionType"/> |
||
2457 | <xs:element name="ra72Section" minOccurs="0" maxOccurs="1" |
||
2458 | type="ns1:RaSectionType"/> |
||
2459 | <xs:element name="ra73Section" minOccurs="0" maxOccurs="1" |
||
2460 | type="ns1:RaSectionType"/> |
||
2461 | |||
2462 | |||
2463 | |||
2464 | Marschall Expires 26 July 2024 [Page 44] |
||
2465 | |||
2466 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
2467 | |||
2468 | |||
2469 | <xs:element name="ra74Section" minOccurs="0" maxOccurs="1" |
||
2470 | type="ns1:RaSectionType"/> |
||
2471 | <xs:element name="ra75Section" minOccurs="0" maxOccurs="1" |
||
2472 | type="ns1:RaSectionType"/> |
||
2473 | <xs:element name="ra76Section" minOccurs="0" maxOccurs="1" |
||
2474 | type="ns1:RaSectionType"/> |
||
2475 | <xs:element name="ra77Section" minOccurs="0" maxOccurs="1" |
||
2476 | type="ns1:RaSectionType"/> |
||
2477 | <xs:element name="ra78Section" minOccurs="0" maxOccurs="1" |
||
2478 | type="ns1:RaSectionType"/> |
||
2479 | <xs:element name="ra79Section" minOccurs="0" maxOccurs="1" |
||
2480 | type="ns1:RaSectionType"/> |
||
2481 | <xs:element name="ra80Section" minOccurs="0" maxOccurs="1" |
||
2482 | type="ns1:RaSectionType"/> |
||
2483 | <xs:element name="ra81Section" minOccurs="0" maxOccurs="1" |
||
2484 | type="ns1:RaSectionType"/> |
||
2485 | <xs:element name="ra82Section" minOccurs="0" maxOccurs="1" |
||
2486 | type="ns1:RaSectionType"/> |
||
2487 | <xs:element name="ra83Section" minOccurs="0" maxOccurs="1" |
||
2488 | type="ns1:RaSectionType"/> |
||
2489 | <xs:element name="ra84Section" minOccurs="0" maxOccurs="1" |
||
2490 | type="ns1:RaSectionType"/> |
||
2491 | <xs:element name="ra85Section" minOccurs="0" maxOccurs="1" |
||
2492 | type="ns1:RaSectionType"/> |
||
2493 | <xs:element name="ra86Section" minOccurs="0" maxOccurs="1" |
||
2494 | type="ns1:RaSectionType"/> |
||
2495 | <xs:element name="ra87Section" minOccurs="0" maxOccurs="1" |
||
2496 | type="ns1:RaSectionType"/> |
||
2497 | <xs:element name="ra88Section" minOccurs="0" maxOccurs="1" |
||
2498 | type="ns1:RaSectionType"/> |
||
2499 | <xs:element name="ra89Section" minOccurs="0" maxOccurs="1" |
||
2500 | type="ns1:RaSectionType"/> |
||
2501 | <xs:element name="ra90Section" minOccurs="0" maxOccurs="1" |
||
2502 | type="ns1:RaSectionType"/> |
||
2503 | <xs:element name="ra91Section" minOccurs="0" maxOccurs="1" |
||
2504 | type="ns1:RaSectionType"/> |
||
2505 | <xs:element name="ra92Section" minOccurs="0" maxOccurs="1" |
||
2506 | type="ns1:RaSectionType"/> |
||
2507 | <xs:element name="ra93Section" minOccurs="0" maxOccurs="1" |
||
2508 | type="ns1:RaSectionType"/> |
||
2509 | <xs:element name="ra94Section" minOccurs="0" maxOccurs="1" |
||
2510 | type="ns1:RaSectionType"/> |
||
2511 | <xs:element name="ra95Section" minOccurs="0" maxOccurs="1" |
||
2512 | type="ns1:RaSectionType"/> |
||
2513 | <xs:element name="ra96Section" minOccurs="0" maxOccurs="1" |
||
2514 | type="ns1:RaSectionType"/> |
||
2515 | <xs:element name="ra97Section" minOccurs="0" maxOccurs="1" |
||
2516 | type="ns1:RaSectionType"/> |
||
2517 | |||
2518 | |||
2519 | |||
2520 | Marschall Expires 26 July 2024 [Page 45] |
||
2521 | |||
2522 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
2523 | |||
2524 | |||
2525 | <xs:element name="ra98Section" minOccurs="0" maxOccurs="1" |
||
2526 | type="ns1:RaSectionType"/> |
||
2527 | <xs:element name="ra99Section" minOccurs="0" maxOccurs="1" |
||
2528 | type="ns1:RaSectionType"/> |
||
2529 | <xs:any namespace="##other" minOccurs="0" |
||
2530 | maxOccurs="unbounded" processContents="lax"/> |
||
2531 | </xs:sequence> |
||
2532 | </xs:complexType> |
||
2533 | |||
2534 | <xs:simpleType name="DateTimeRef"> |
||
2535 | <xs:restriction base="xs:string"> |
||
2536 | <xs:pattern value="\d{4}(-(0[1-9]|1[0-2])(-(0[1-9]|1\d|2\d|3[0-\ |
||
2537 | 1])( [0-5]\d:[0-5]\d(:[0-5]\d)?( [+-][0-5]\d[0-5]\d)?)?)?)?"/> |
||
2538 | </xs:restriction> |
||
2539 | </xs:simpleType> |
||
2540 | |||
2541 | <xs:complexType name="QuerySectionType"> |
||
2542 | <xs:sequence> |
||
2543 | <xs:element name="query" minOccurs="1" maxOccurs="1" |
||
2544 | type="ns1:InputQueryType"/> |
||
2545 | <xs:element name="result" minOccurs="1" maxOccurs="1" |
||
2546 | type="ns1:QueryResultEnumType"/> |
||
2547 | <xs:element name="distance" minOccurs="0" maxOccurs="1" |
||
2548 | type="xs:integer"/> |
||
2549 | <xs:element name="message" minOccurs="0" maxOccurs="1" |
||
2550 | type="xs:string"/> |
||
2551 | <xs:element name="lang" minOccurs="0" maxOccurs="1" |
||
2552 | type="xs:string"/> |
||
2553 | <xs:any namespace="##other" minOccurs="0" |
||
2554 | maxOccurs="unbounded" processContents="lax"/> |
||
2555 | </xs:sequence> |
||
2556 | </xs:complexType> |
||
2557 | |||
2558 | <xs:simpleType name="InputQueryType"> |
||
2559 | <xs:restriction base="xs:string"> |
||
2560 | <!-- Note: The ABNF definition is more accurate --> |
||
2561 | <xs:pattern value="[a-z0-9]+:(.*)"/> |
||
2562 | </xs:restriction> |
||
2563 | </xs:simpleType> |
||
2564 | |||
2565 | <xs:simpleType name="QueryResultEnumType"> |
||
2566 | <xs:restriction base="xs:string"> |
||
2567 | <xs:enumeration value="Found"/> |
||
2568 | <xs:enumeration value="Not found; superior object found"/> |
||
2569 | <xs:enumeration value="Not found"/> |
||
2570 | <xs:enumeration value="Service error"/> |
||
2571 | </xs:restriction> |
||
2572 | </xs:simpleType> |
||
2573 | |||
2574 | |||
2575 | |||
2576 | Marschall Expires 26 July 2024 [Page 46] |
||
2577 | |||
2578 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
2579 | |||
2580 | |||
2581 | <xs:complexType name="ObjectSectionType"> |
||
2582 | <xs:sequence> |
||
2583 | <xs:element name="object" minOccurs="1" maxOccurs="1" |
||
2584 | type="ns1:ObjectIdType"/> |
||
2585 | <xs:element name="status" minOccurs="1" maxOccurs="1" |
||
2586 | type="ns1:ObjectStatusEnumType"/> |
||
2587 | <xs:element name="lang" minOccurs="0" maxOccurs="1" |
||
2588 | type="xs:string"/> |
||
2589 | <xs:element name="name" minOccurs="0" maxOccurs="1" |
||
2590 | type="xs:string"/> |
||
2591 | <xs:element name="description" minOccurs="0" maxOccurs="1" |
||
2592 | type="xs:string"/> |
||
2593 | <xs:element name="information" minOccurs="0" maxOccurs="1" |
||
2594 | type="xs:string"/> |
||
2595 | <xs:element name="url" minOccurs="0" maxOccurs="unbounded" |
||
2596 | type="xs:string"/> |
||
2597 | <xs:element name="asn1-notation" minOccurs="0" |
||
2598 | maxOccurs="unbounded" type="xs:string"/> |
||
2599 | <xs:element name="iri-notation" minOccurs="0" |
||
2600 | maxOccurs="unbounded" type="xs:string"/> |
||
2601 | <xs:element name="identifier" minOccurs="0" maxOccurs="unbounded" |
||
2602 | type="xs:string"/> |
||
2603 | <xs:element name="standardized-id" minOccurs="0" |
||
2604 | maxOccurs="unbounded" type="xs:string"/> |
||
2605 | <xs:element name="unicode-label" minOccurs="0" |
||
2606 | maxOccurs="unbounded" type="xs:string"/> |
||
2607 | <xs:element name="long-arc" minOccurs="0" maxOccurs="unbounded" |
||
2608 | type="xs:string"/> |
||
2609 | <xs:element name="oidip-service" minOccurs="0" |
||
2610 | maxOccurs="unbounded" type="xs:string"/> |
||
2611 | <xs:element name="oidip-pubkey" minOccurs="0" |
||
2612 | maxOccurs="unbounded" type="xs:string"/> |
||
2613 | <xs:any namespace="##other" minOccurs="0" |
||
2614 | maxOccurs="unbounded" processContents="lax"/> |
||
2615 | <xs:element name="attribute" minOccurs="0" maxOccurs="unbounded" |
||
2616 | type="ns1:ObjectAttributeEnumType"/> |
||
2617 | <xs:element name="parent" minOccurs="0" maxOccurs="1" |
||
2618 | type="xs:string"/> |
||
2619 | <xs:element name="subordinate" minOccurs="0" maxOccurs="unbounded" |
||
2620 | type="xs:string"/> |
||
2621 | <xs:element name="created" minOccurs="0" maxOccurs="1" |
||
2622 | type="ns1:DateTimeRef"/> |
||
2623 | <xs:element name="updated" minOccurs="0" maxOccurs="1" |
||
2624 | type="ns1:DateTimeRef"/> |
||
2625 | </xs:sequence> |
||
2626 | </xs:complexType> |
||
2627 | |||
2628 | <xs:simpleType name="ObjectIdType"> |
||
2629 | |||
2630 | |||
2631 | |||
2632 | Marschall Expires 26 July 2024 [Page 47] |
||
2633 | |||
2634 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
2635 | |||
2636 | |||
2637 | <xs:restriction base="xs:string"> |
||
2638 | <!-- Note: The ABNF definition is more accurate --> |
||
2639 | <xs:pattern value="[a-z0-9]+:(.*)"/> |
||
2640 | </xs:restriction> |
||
2641 | </xs:simpleType> |
||
2642 | |||
2643 | <xs:simpleType name="ObjectStatusEnumType"> |
||
2644 | <xs:restriction base="xs:string"> |
||
2645 | <xs:enumeration value="Information available"/> |
||
2646 | <xs:enumeration value="Information partially available"/> |
||
2647 | <xs:enumeration value="Information unavailable"/> |
||
2648 | </xs:restriction> |
||
2649 | </xs:simpleType> |
||
2650 | |||
2651 | <xs:simpleType name="ObjectAttributeEnumType"> |
||
2652 | <xs:restriction base="xs:string"> |
||
2653 | <xs:enumeration value="confidential"/> |
||
2654 | <xs:enumeration value="draft"/> |
||
2655 | <xs:enumeration value="frozen"/> |
||
2656 | <xs:enumeration value="leaf"/> |
||
2657 | <xs:enumeration value="no-identifiers"/> |
||
2658 | <xs:enumeration value="no-unicode-labels"/> |
||
2659 | <xs:enumeration value="retired"/> |
||
2660 | </xs:restriction> |
||
2661 | </xs:simpleType> |
||
2662 | |||
2663 | <xs:complexType name="RaSectionType"> |
||
2664 | <xs:sequence> |
||
2665 | <!-- Note: "ra" keeps its name, even in Ra1SectionType et al. --> |
||
2666 | <xs:element name="ra" minOccurs="1" maxOccurs="1" |
||
2667 | type="xs:string"/> |
||
2668 | <xs:element name="status" minOccurs="1" maxOccurs="1" |
||
2669 | type="ns1:RaStatusEnumType"/> |
||
2670 | <xs:element name="lang" minOccurs="0" maxOccurs="1" |
||
2671 | type="xs:string"/> |
||
2672 | <xs:element name="contact-name" minOccurs="0" maxOccurs="1" |
||
2673 | type="xs:string"/> |
||
2674 | <xs:element name="address" minOccurs="0" maxOccurs="unbounded" |
||
2675 | type="xs:string"/> |
||
2676 | <xs:element name="phone" minOccurs="0" maxOccurs="unbounded" |
||
2677 | type="xs:string"/> |
||
2678 | <xs:element name="mobile" minOccurs="0" maxOccurs="unbounded" |
||
2679 | type="xs:string"/> |
||
2680 | <xs:element name="fax" minOccurs="0" maxOccurs="unbounded" |
||
2681 | type="xs:string"/> |
||
2682 | <xs:element name="email" minOccurs="0" maxOccurs="unbounded" |
||
2683 | type="xs:string"/> |
||
2684 | <xs:element name="url" minOccurs="0" maxOccurs="unbounded" |
||
2685 | |||
2686 | |||
2687 | |||
2688 | Marschall Expires 26 July 2024 [Page 48] |
||
2689 | |||
2690 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
2691 | |||
2692 | |||
2693 | type="xs:string"/> |
||
2694 | <xs:any namespace="##other" minOccurs="0" |
||
2695 | maxOccurs="unbounded" processContents="lax"/> |
||
2696 | <xs:element name="attribute" minOccurs="0" |
||
2697 | maxOccurs="unbounded" type="ns1:RaAttributeEnumType"/> |
||
2698 | <xs:element name="created" minOccurs="0" maxOccurs="1" |
||
2699 | type="ns1:DateTimeRef"/> |
||
2700 | <xs:element name="updated" minOccurs="0" maxOccurs="1" |
||
2701 | type="ns1:DateTimeRef"/> |
||
2702 | </xs:sequence> |
||
2703 | </xs:complexType> |
||
2704 | |||
2705 | <xs:simpleType name="RaStatusEnumType"> |
||
2706 | <xs:restriction base="xs:string"> |
||
2707 | <xs:enumeration value="Information available"/> |
||
2708 | <xs:enumeration value="Information partially available"/> |
||
2709 | <xs:enumeration value="Information unavailable"/> |
||
2710 | </xs:restriction> |
||
2711 | </xs:simpleType> |
||
2712 | |||
2713 | <xs:simpleType name="RaAttributeEnumType"> |
||
2714 | <xs:restriction base="xs:string"> |
||
2715 | <xs:enumeration value="confidential"/> |
||
2716 | <xs:enumeration value="retired"/> |
||
2717 | </xs:restriction> |
||
2718 | </xs:simpleType> |
||
2719 | |||
2720 | </xs:schema> |
||
2721 | <CODE ENDS> |
||
2722 | |||
2723 | |||
2724 | |||
2725 | |||
2726 | |||
2727 | |||
2728 | |||
2729 | |||
2730 | |||
2731 | |||
2732 | |||
2733 | |||
2734 | |||
2735 | |||
2736 | |||
2737 | |||
2738 | |||
2739 | |||
2740 | |||
2741 | |||
2742 | |||
2743 | |||
2744 | Marschall Expires 26 July 2024 [Page 49] |
||
2745 | |||
2746 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
2747 | |||
2748 | |||
2749 | Appendix B.2. XML Format Example of Output |
||
2750 | |||
2751 | [To RFC Editor: Please change "urn:ietf:id:draft-viathinksoft-oidip-07" |
||
2752 | to "urn:ietf:rfc:yyyy" before publication.] |
||
2753 | |||
2754 | [To RFC Editor: Please change "draft-viathinksoft-oidip-07.xsd" before |
||
2755 | publication.] |
||
2756 | |||
2757 | NOTE: '\' line wrapping per RFC 8792 [RFC8792] |
||
2758 | |||
2759 | <CODE BEGINS> file "oidip_example.xml" |
||
2760 | <?xml version="1.0"?> |
||
2761 | <root xmlns="urn:ietf:id:draft-viathinksoft-oidip-07" |
||
2762 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||
2763 | xsi:schemaLocation="urn:ietf:id:draft-viathinksoft-oidip-07 \ |
||
2764 | http://.../draft-viathinksoft-oidip-07.xsd"> |
||
2765 | <oidip> |
||
2766 | <querySection> |
||
2767 | <query>oid:2.999</query> |
||
2768 | <result>Found</result> |
||
2769 | </querySection> |
||
2770 | <objectSection> |
||
2771 | <object>oid:2.999</object> |
||
2772 | <status>Information available</status> |
||
2773 | <lang>en-US</lang> |
||
2774 | <name>Example</name> |
||
2775 | <description>This OID can be used by anyone, for the \ |
||
2776 | purposes of documenting examples of Object Identifiers."</description> |
||
2777 | <asn1-notation>{ joint-iso-itu-t(2) example(999) }</asn1-notation> |
||
2778 | <iri-notation>/Example</iri-notation> |
||
2779 | <identifier>example</identifier> |
||
2780 | <unicode-label>Beispiel</unicode-label> |
||
2781 | <unicode-label>Ejemplo</unicode-label> |
||
2782 | <unicode-label>Example</unicode-label> |
||
2783 | <unicode-label>Exemple</unicode-label> |
||
2784 | <unicode-label>(Korean characters are omitted)</unicode-label> |
||
2785 | <unicode-label>(Arabian characters are omitted)</unicode-label> |
||
2786 | <unicode-label>(Japanese characters are omitted)</unicode-label> |
||
2787 | <unicode-label>(Chinese characters are omitted)</unicode-label> |
||
2788 | <unicode-label>(Russian characters are omitted)</unicode-label> |
||
2789 | <long-arc>Beispiel</long-arc> |
||
2790 | <long-arc>Ejemplo</long-arc> |
||
2791 | <long-arc>Example</long-arc> |
||
2792 | <long-arc>Exemple</long-arc> |
||
2793 | <long-arc>(Korean characters are omitted)</long-arc> |
||
2794 | <long-arc>(Arabian characters are omitted)</long-arc> |
||
2795 | <long-arc>(Japanese characters are omitted)</long-arc> |
||
2796 | <long-arc>(Chinese characters are omitted)</long-arc> |
||
2797 | |||
2798 | |||
2799 | |||
2800 | Marschall Expires 26 July 2024 [Page 50] |
||
2801 | |||
2802 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
2803 | |||
2804 | |||
2805 | <long-arc>(Russian characters are omitted)</long-arc> |
||
2806 | <parent>oid:2 (joint-iso-ccitt, joint-iso-itu-t)</parent> |
||
2807 | <created>2011-06</created> |
||
2808 | <updated>2020-09"</updated> |
||
2809 | </objectSection> |
||
2810 | <raSection> |
||
2811 | <ra>ITU-T SG 17 & ISO/IEC JTC 1/SC 6</ra> |
||
2812 | <status>Information unavailable</status> |
||
2813 | </raSection> |
||
2814 | </oidip> |
||
2815 | <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> |
||
2816 | <ds:SignedInfo> |
||
2817 | <ds:CanonicalizationMethod |
||
2818 | Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> |
||
2819 | <ds:SignatureMethod |
||
2820 | Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha512"/> |
||
2821 | <ds:Reference> |
||
2822 | <ds:Transforms> |
||
2823 | <ds:Transform |
||
2824 | Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> |
||
2825 | </ds:Transforms> |
||
2826 | <ds:DigestMethod |
||
2827 | Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/> |
||
2828 | <ds:DigestValue>.....</ds:DigestValue> |
||
2829 | </ds:Reference> |
||
2830 | </ds:SignedInfo> |
||
2831 | <ds:SignatureValue>.....</ds:SignatureValue> |
||
2832 | </ds:Signature> |
||
2833 | </root> |
||
2834 | <CODE ENDS> |
||
2835 | |||
2836 | |||
2837 | |||
2838 | |||
2839 | |||
2840 | |||
2841 | |||
2842 | |||
2843 | |||
2844 | |||
2845 | |||
2846 | |||
2847 | |||
2848 | |||
2849 | |||
2850 | |||
2851 | |||
2852 | |||
2853 | |||
2854 | |||
2855 | |||
2856 | Marschall Expires 26 July 2024 [Page 51] |
||
2857 | |||
2858 | INTERNET DRAFT OID Information Protocol 23 January 2024 |
||
2859 | |||
2860 | |||
2861 | Acknowledgements |
||
2862 | |||
2863 | I would like to thank Olivier Dubuisson for his expertise and help |
||
2864 | regarding all topics of Object Identifiers, and Till Wehowski for his |
||
2865 | feedback and input on the OID Information Protocol. |
||
2866 | |||
2867 | Thanks to the authors of these free tools which did a very good job |
||
2868 | in validating various contents of this document: |
||
2869 | |||
2870 | - "JSON Schema Validator" by Newtonsoft |
||
2871 | https://www.jsonschemavalidator.net/ |
||
2872 | |||
2873 | - "Free Online XML Validator" by Liquid Technologies |
||
2874 | https://www.liquid-technologies.com/online-xsd-validator |
||
2875 | |||
2876 | - Bill's ABNF Parser |
||
2877 | https://tools.ietf.org/tools/bap/abnf.cgi |
||
2878 | |||
2879 | - "Grammarly" spell and grammar checker |
||
2880 | https://app.grammarly.com/ |
||
2881 | |||
2882 | - "regex101" regular expression debugger |
||
2883 | https://regex101.com/ |
||
2884 | |||
2885 | - IDNITS |
||
2886 | https://www6.ietf.org/tools/idnits |
||
2887 | |||
2888 | - Title Case Converter |
||
2889 | https://titlecaseconverter.com/ |
||
2890 | |||
2891 | This document was written in Nroff Internet Draft Editor by 3xA |
||
2892 | Security. |
||
2893 | https://aaa-sec.com/nroffedit/ |
||
2894 | https://misc.daniel-marschall.de/patches/nroffedit/ (year 2020 fix) |
||
2895 | |||
2896 | Authors' Addresses |
||
2897 | |||
2898 | Daniel Marschall |
||
2899 | Postfach 11 53 |
||
2900 | 69243 Bammental |
||
2901 | Germany |
||
2902 | |||
2903 | Email: daniel-marschall@viathinksoft.de |
||
2904 | URI: https://www.viathinksoft.com/ |
||
2905 | |||
2906 | |||
2907 | |||
2908 | |||
2909 | |||
2910 | |||
2911 | |||
2912 | Marschall Expires 26 July 2024 [Page 52] |