Subversion Repositories oidplus

Rev

Details | Last modification | View Log | RSS feed

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