Subversion Repositories oidplus

Rev

Rev 1464 | Details | Compare with Previous | Last modification | View Log | RSS feed

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