primarysource 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- primarysource/__init__.py +5 -0
- primarysource/bbf/__init__.py +56 -0
- primarysource/bbf/_xml.py +63 -0
- primarysource/bbf/catalogue.json +777 -0
- primarysource/bbf/catalogue.py +137 -0
- primarysource/bbf/cli.py +79 -0
- primarysource/bbf/datamodel.py +281 -0
- primarysource/bbf/importer.py +151 -0
- primarysource/bbf/library.py +380 -0
- primarysource/bbf/server.py +72 -0
- primarysource/budget.py +63 -0
- primarysource/c2sp/__init__.py +53 -0
- primarysource/c2sp/_fetch.py +5 -0
- primarysource/c2sp/catalogue.json +231 -0
- primarysource/c2sp/catalogue.py +95 -0
- primarysource/c2sp/cli.py +62 -0
- primarysource/c2sp/importer.py +90 -0
- primarysource/c2sp/library.py +309 -0
- primarysource/c2sp/markdown.py +31 -0
- primarysource/c2sp/server.py +68 -0
- primarysource/cavp/__init__.py +42 -0
- primarysource/cavp/cli.py +84 -0
- primarysource/cavp/data/vectors.toml +47 -0
- primarysource/cavp/importer.py +156 -0
- primarysource/cavp/model.py +279 -0
- primarysource/cavp/parse.py +269 -0
- primarysource/cavp/paths.py +17 -0
- primarysource/cavp/server.py +67 -0
- primarysource/cavp/tools.py +169 -0
- primarysource/cli.py +107 -0
- primarysource/cursor.py +82 -0
- primarysource/cve/__init__.py +5 -0
- primarysource/cve/__main__.py +6 -0
- primarysource/cve/cli.py +144 -0
- primarysource/cve/collection.py +20 -0
- primarysource/cve/config.py +58 -0
- primarysource/cve/errors.py +16 -0
- primarysource/cve/kernel.py +232 -0
- primarysource/cve/mcp.py +139 -0
- primarysource/cve/parse.py +318 -0
- primarysource/cve/py.typed +0 -0
- primarysource/cve/service.py +760 -0
- primarysource/cve/store.py +214 -0
- primarysource/cve/sync.py +438 -0
- primarysource/cve/views.py +304 -0
- primarysource/debpolicy/__init__.py +16 -0
- primarysource/debpolicy/catalogue.py +263 -0
- primarysource/debpolicy/cli.py +12 -0
- primarysource/debpolicy/server.py +11 -0
- primarysource/draft/__init__.py +11 -0
- primarysource/draft/catalogue.py +117 -0
- primarysource/draft/cli.py +149 -0
- primarysource/draft/collection.py +21 -0
- primarysource/draft/datatracker.py +158 -0
- primarysource/draft/importer.py +163 -0
- primarysource/draft/licence.py +89 -0
- primarysource/draft/names.py +64 -0
- primarysource/draft/net.py +133 -0
- primarysource/draft/segment.py +192 -0
- primarysource/draft/server.py +91 -0
- primarysource/draft/status.py +146 -0
- primarysource/draft/store.py +199 -0
- primarysource/draft/tracked.json +104 -0
- primarysource/draft/views.py +430 -0
- primarysource/draft/xmlmeta.py +74 -0
- primarysource/ecma/__init__.py +52 -0
- primarysource/ecma/_pdf.py +143 -0
- primarysource/ecma/catalogue.json +22 -0
- primarysource/ecma/catalogue.py +100 -0
- primarysource/ecma/cli.py +67 -0
- primarysource/ecma/identify.py +25 -0
- primarysource/ecma/importer.py +108 -0
- primarysource/ecma/library.py +240 -0
- primarysource/ecma/server.py +67 -0
- primarysource/errors.py +29 -0
- primarysource/fetch.py +360 -0
- primarysource/fsutil.py +150 -0
- primarysource/gitdocs/__init__.py +15 -0
- primarysource/gitdocs/catalogue.py +116 -0
- primarysource/gitdocs/cli.py +12 -0
- primarysource/gitdocs/server.py +8 -0
- primarysource/home.py +65 -0
- primarysource/iana/__init__.py +32 -0
- primarysource/iana/catalogue.json +244 -0
- primarysource/iana/catalogue.py +69 -0
- primarysource/iana/cli.py +69 -0
- primarysource/iana/importer.py +157 -0
- primarysource/iana/model.py +325 -0
- primarysource/iana/reader.py +315 -0
- primarysource/iana/server.py +67 -0
- primarysource/iana/store.py +83 -0
- primarysource/iana/xmlsafe.py +47 -0
- primarysource/identify.py +186 -0
- primarysource/ieee/__init__.py +58 -0
- primarysource/ieee/_html.py +49 -0
- primarysource/ieee/catalogue.json +74 -0
- primarysource/ieee/catalogue.py +123 -0
- primarysource/ieee/cli.py +79 -0
- primarysource/ieee/identify.py +24 -0
- primarysource/ieee/ieee802.py +47 -0
- primarysource/ieee/importer.py +305 -0
- primarysource/ieee/posix.py +233 -0
- primarysource/ieee/server.py +79 -0
- primarysource/index.py +446 -0
- primarysource/iso/__init__.py +51 -0
- primarysource/iso/cli.py +98 -0
- primarysource/iso/designation.py +95 -0
- primarysource/iso/identify.py +100 -0
- primarysource/iso/importer.py +224 -0
- primarysource/iso/library.py +249 -0
- primarysource/iso/server.py +69 -0
- primarysource/itu/__init__.py +41 -0
- primarysource/itu/__main__.py +8 -0
- primarysource/itu/asn1mod.py +478 -0
- primarysource/itu/catalog.py +472 -0
- primarysource/itu/cli.py +445 -0
- primarysource/itu/collection.py +20 -0
- primarysource/itu/corpus.py +118 -0
- primarysource/itu/errata.py +16 -0
- primarysource/itu/formal.py +565 -0
- primarysource/itu/identify.py +26 -0
- primarysource/itu/index.py +490 -0
- primarysource/itu/mcp.py +474 -0
- primarysource/itu/py.typed +0 -0
- primarysource/itu/sources.py +600 -0
- primarysource/itu/text.py +609 -0
- primarysource/kconfig/__init__.py +16 -0
- primarysource/kconfig/catalogue.py +98 -0
- primarysource/kconfig/cli.py +12 -0
- primarysource/kconfig/server.py +8 -0
- primarysource/model.py +63 -0
- primarysource/nist/__init__.py +5 -0
- primarysource/nist/collection.py +46 -0
- primarysource/nist/data/acquired-nist.json +1657 -0
- primarysource/nist/data/nist-catalog.json +12090 -0
- primarysource/nist/data/sources.toml +1996 -0
- primarysource/nist/identify.py +41 -0
- primarysource/nist/ingest/__init__.py +1 -0
- primarysource/nist/ingest/acquire_nist.py +128 -0
- primarysource/nist/ingest/controls.py +82 -0
- primarysource/nist/ingest/discover_nist.py +218 -0
- primarysource/nist/ingest/extract.py +48 -0
- primarysource/nist/ingest/fetch.py +211 -0
- primarysource/nist/ingest/index.py +14 -0
- primarysource/nist/ingest/oscal.py +480 -0
- primarysource/nist/ingest/prose_layouts.py +236 -0
- primarysource/nist/ingest/sources.py +94 -0
- primarysource/nist/ingest/status.py +255 -0
- primarysource/nist/models.py +7 -0
- primarysource/nist/paths.py +33 -0
- primarysource/nist/server/__init__.py +3 -0
- primarysource/nist/server/corpus.py +38 -0
- primarysource/nist/server/mcp.py +19 -0
- primarysource/nist/server/tools.py +35 -0
- primarysource/nist/spec.py +38 -0
- primarysource/pdfcorpus/__init__.py +16 -0
- primarysource/pdfcorpus/corpus.py +159 -0
- primarysource/pdfcorpus/fts.py +175 -0
- primarysource/pdfcorpus/index.py +70 -0
- primarysource/pdfcorpus/models.py +30 -0
- primarysource/pdfcorpus/server.py +96 -0
- primarysource/pdfcorpus/spec.py +37 -0
- primarysource/pdfcorpus/split.py +391 -0
- primarysource/pdfcorpus/tools.py +244 -0
- primarysource/pep/__init__.py +15 -0
- primarysource/pep/catalogue.py +191 -0
- primarysource/pep/cli.py +12 -0
- primarysource/pep/server.py +8 -0
- primarysource/pkgdocs/__init__.py +19 -0
- primarysource/pkgdocs/fetch.py +356 -0
- primarysource/pkgdocs/index.py +89 -0
- primarysource/pkgdocs/model.py +76 -0
- primarysource/pkgdocs/readers/__init__.py +1 -0
- primarysource/pkgdocs/readers/_common.py +134 -0
- primarysource/pkgdocs/readers/asciidoc.py +160 -0
- primarysource/pkgdocs/readers/latex.py +315 -0
- primarysource/pkgdocs/readers/markdown.py +173 -0
- primarysource/pkgdocs/readers/pod.py +132 -0
- primarysource/pkgdocs/readers/rst.py +239 -0
- primarysource/pkgdocs/readers/scdoc.py +108 -0
- primarysource/pkgdocs/runtime.py +552 -0
- primarysource/pkgdocs/serving.py +158 -0
- primarysource/pkgdocs/store.py +167 -0
- primarysource/pms/__init__.py +16 -0
- primarysource/pms/catalogue.py +88 -0
- primarysource/pms/cli.py +12 -0
- primarysource/pms/server.py +8 -0
- primarysource/py.typed +0 -0
- primarysource/readers/__init__.py +10 -0
- primarysource/readers/bookmarks.py +192 -0
- primarysource/readers/html.py +1312 -0
- primarysource/readers/markdown.py +189 -0
- primarysource/readers/pdf.py +187 -0
- primarysource/readers/xml.py +230 -0
- primarysource/refs.py +87 -0
- primarysource/registry.py +161 -0
- primarysource/render.py +49 -0
- primarysource/rfc/__init__.py +3 -0
- primarysource/rfc/__main__.py +6 -0
- primarysource/rfc/cite.py +204 -0
- primarysource/rfc/cli.py +903 -0
- primarysource/rfc/collection.py +19 -0
- primarysource/rfc/config.py +138 -0
- primarysource/rfc/errata.py +203 -0
- primarysource/rfc/fsutil.py +82 -0
- primarysource/rfc/graph.py +213 -0
- primarysource/rfc/index/__init__.py +1 -0
- primarysource/rfc/index/chunker.py +281 -0
- primarysource/rfc/index/embed.py +166 -0
- primarysource/rfc/index/hybrid.py +305 -0
- primarysource/rfc/index/lexical.py +223 -0
- primarysource/rfc/index/rfcxml.py +673 -0
- primarysource/rfc/index/search.py +508 -0
- primarysource/rfc/index/txtseg.py +585 -0
- primarysource/rfc/library.py +294 -0
- primarysource/rfc/mcp/__init__.py +1 -0
- primarysource/rfc/mcp/server.py +381 -0
- primarysource/rfc/packs/__init__.py +1 -0
- primarysource/rfc/packs/builder.py +228 -0
- primarysource/rfc/packs/collections/all-current-txt.json +10 -0
- primarysource/rfc/packs/collections/essentials.json +19 -0
- primarysource/rfc/packs/collections/fyi-current.json +10 -0
- primarysource/rfc/packs/collections/standards-current.json +10 -0
- primarysource/rfc/packs/collections/year-2025.json +10 -0
- primarysource/rfc/packs/collections/year-2026.json +10 -0
- primarysource/rfc/packs/collections.py +163 -0
- primarysource/rfc/packs/docsetexport.py +163 -0
- primarysource/rfc/packs/epub.py +159 -0
- primarysource/rfc/packs/export.py +306 -0
- primarysource/rfc/packs/htmlexport.py +82 -0
- primarysource/rfc/packs/serve.py +143 -0
- primarysource/rfc/packs/zimexport.py +171 -0
- primarysource/rfc/query.py +466 -0
- primarysource/rfc/subjects.py +457 -0
- primarysource/rfc/sync/__init__.py +1 -0
- primarysource/rfc/sync/downloader.py +132 -0
- primarysource/rfc/sync/manifest.py +162 -0
- primarysource/rfc/sync/scanner.py +49 -0
- primarysource/rfc/sync/state.py +464 -0
- primarysource/rfc/views.py +1067 -0
- primarysource/rpmdocs/__init__.py +15 -0
- primarysource/rpmdocs/catalogue.py +117 -0
- primarysource/rpmdocs/cli.py +12 -0
- primarysource/rpmdocs/server.py +8 -0
- primarysource/scaffold.py +223 -0
- primarysource/serve.py +75 -0
- primarysource/settings.py +152 -0
- primarysource/usb/__init__.py +5 -0
- primarysource/usb/collection.py +37 -0
- primarysource/usb/data/acquired.json +2025 -0
- primarysource/usb/data/sources-usb.toml +852 -0
- primarysource/usb/data/sources.toml +10 -0
- primarysource/usb/data/usb-catalog.json +1663 -0
- primarysource/usb/data/usb-classification.json +1986 -0
- primarysource/usb/data/usb-corpus-build.json +608 -0
- primarysource/usb/data/usb-pdf-choice.json +839 -0
- primarysource/usb/data/usb-split-measure.json +1803 -0
- primarysource/usb/ingest/__init__.py +1 -0
- primarysource/usb/ingest/acquire.py +130 -0
- primarysource/usb/ingest/discover_usb.py +88 -0
- primarysource/usb/ingest/extract.py +48 -0
- primarysource/usb/ingest/fetch.py +197 -0
- primarysource/usb/ingest/index.py +14 -0
- primarysource/usb/ingest/sources.py +85 -0
- primarysource/usb/models.py +7 -0
- primarysource/usb/paths.py +33 -0
- primarysource/usb/server/__init__.py +3 -0
- primarysource/usb/server/corpus.py +38 -0
- primarysource/usb/server/mcp.py +19 -0
- primarysource/usb/server/tools.py +35 -0
- primarysource/usb/spec.py +20 -0
- primarysource/usbids/__init__.py +56 -0
- primarysource/usbids/cli.py +65 -0
- primarysource/usbids/importer.py +272 -0
- primarysource/usbids/parse.py +283 -0
- primarysource/usbids/server.py +55 -0
- primarysource/usbids/store.py +80 -0
- primarysource/usbids/tools.py +174 -0
- primarysource/zim/__init__.py +5 -0
- primarysource/zim/__main__.py +8 -0
- primarysource/zim/_libzim.py +37 -0
- primarysource/zim/catalog.py +594 -0
- primarysource/zim/cli.py +555 -0
- primarysource/zim/collection.py +41 -0
- primarysource/zim/errors.py +100 -0
- primarysource/zim/groups.py +30 -0
- primarysource/zim/library.py +668 -0
- primarysource/zim/manage.py +636 -0
- primarysource/zim/markdown.py +1247 -0
- primarysource/zim/mcp.py +201 -0
- primarysource/zim/purl.py +130 -0
- primarysource/zim/py.typed +0 -0
- primarysource/zim/refs.py +90 -0
- primarysource/zim/service.py +1182 -0
- primarysource/zim/snapshot.py +197 -0
- primarysource/zim/sync.py +269 -0
- primarysource/zim/views.py +230 -0
- primarysource-0.1.0.dist-info/METADATA +118 -0
- primarysource-0.1.0.dist-info/RECORD +303 -0
- primarysource-0.1.0.dist-info/WHEEL +4 -0
- primarysource-0.1.0.dist-info/entry_points.txt +2 -0
- primarysource-0.1.0.dist-info/licenses/LICENSE +203 -0
- primarysource-0.1.0.dist-info/licenses/NOTICE +51 -0
|
@@ -0,0 +1,600 @@
|
|
|
1
|
+
"""The edition registry: what exists, where it comes from, and what it hashed to.
|
|
2
|
+
|
|
3
|
+
Every URL and digest here was fetched on 2026-11-07, not recalled. The superseded editions are listed with
|
|
4
|
+
their amendments because asn1core's questions are edition-sensitive: X.690 (02/21) is not what a 2008-era
|
|
5
|
+
decoder was written against, and Amendment 2 (06/06) "Time type support" is exactly the kind of change that
|
|
6
|
+
moves a rule between editions.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
from dataclasses import dataclass
|
|
12
|
+
|
|
13
|
+
DOLOGIN = "https://www.itu.int/rec/dologin_pub.asp?lang=e&id={artifact}&type=items"
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@dataclass(frozen=True)
|
|
17
|
+
class Edition:
|
|
18
|
+
"""One published edition of one recommendation."""
|
|
19
|
+
|
|
20
|
+
key: str
|
|
21
|
+
rec: str
|
|
22
|
+
edition: str
|
|
23
|
+
title: str
|
|
24
|
+
status: str
|
|
25
|
+
artifact: str
|
|
26
|
+
sha256: str
|
|
27
|
+
octets: int
|
|
28
|
+
note: str = ""
|
|
29
|
+
|
|
30
|
+
@property
|
|
31
|
+
def pdf_url(self) -> str:
|
|
32
|
+
return DOLOGIN.format(artifact=self.artifact)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@dataclass(frozen=True)
|
|
36
|
+
class Amendment:
|
|
37
|
+
"""An amendment, corrigendum or erratum attached to an edition."""
|
|
38
|
+
|
|
39
|
+
key: str
|
|
40
|
+
rec: str
|
|
41
|
+
label: str
|
|
42
|
+
status: str
|
|
43
|
+
artifact: str | None
|
|
44
|
+
note: str = ""
|
|
45
|
+
sha256: str = ""
|
|
46
|
+
octets: int = 0
|
|
47
|
+
|
|
48
|
+
@property
|
|
49
|
+
def pdf_url(self) -> str | None:
|
|
50
|
+
return DOLOGIN.format(artifact=self.artifact) if self.artifact else None
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
IN_FORCE: tuple[Edition, ...] = (
|
|
54
|
+
Edition(
|
|
55
|
+
key="X.690#2021-02",
|
|
56
|
+
rec="X.690",
|
|
57
|
+
edition="02/2021",
|
|
58
|
+
title="ASN.1 encoding rules: BER, CER and DER",
|
|
59
|
+
status="in force",
|
|
60
|
+
artifact="T-REC-X.690-202102-I!!PDF-E",
|
|
61
|
+
sha256="6ac799a2d1ebed36abe39c9eac3586185bfb7db679f801e737189d6fdb1bbd6c",
|
|
62
|
+
octets=840_764,
|
|
63
|
+
note="Joint designation ISO/IEC 8825-1:2021. Verified: 38 pages, 98,873 characters extract.",
|
|
64
|
+
),
|
|
65
|
+
Edition(
|
|
66
|
+
key="X.680#2021-02",
|
|
67
|
+
rec="X.680",
|
|
68
|
+
edition="02/2021",
|
|
69
|
+
title="ASN.1: Specification of basic notation",
|
|
70
|
+
status="in force",
|
|
71
|
+
artifact="T-REC-X.680-202102-I!!PDF-E",
|
|
72
|
+
sha256="b69dc4754f0709a7e344c886f277ed9e37a4336029593ba91bc6df6065f9ee14",
|
|
73
|
+
octets=2_088_934,
|
|
74
|
+
note="Joint designation ISO/IEC 8824-1:2021. Owns the restricted string alphabets X.690 defers to.",
|
|
75
|
+
),
|
|
76
|
+
Edition(
|
|
77
|
+
key="X.681#2021-02",
|
|
78
|
+
rec="X.681",
|
|
79
|
+
edition="02/2021",
|
|
80
|
+
title="Information object specification",
|
|
81
|
+
status="in force",
|
|
82
|
+
artifact="T-REC-X.681-202102-I!!PDF-E",
|
|
83
|
+
sha256="fec21841db1bb8bfc109c21590a531bfefabeb029df5218e6cd6264b0148e32e",
|
|
84
|
+
octets=651_756,
|
|
85
|
+
note="Catalog sync 2026-11-07: id taken from the ITU component page, digest from the bytes downloaded.",
|
|
86
|
+
),
|
|
87
|
+
Edition(
|
|
88
|
+
key="X.682#2021-02",
|
|
89
|
+
rec="X.682",
|
|
90
|
+
edition="02/2021",
|
|
91
|
+
title="Constraint specification",
|
|
92
|
+
status="in force",
|
|
93
|
+
artifact="T-REC-X.682-202102-I!!PDF-E",
|
|
94
|
+
sha256="3b8a035c654f1b0247043f02f337de9eedf4494d86314e82f21824d1ffd3585e",
|
|
95
|
+
octets=572_419,
|
|
96
|
+
note="Catalog sync 2026-11-07: id taken from the ITU component page, digest from the bytes downloaded.",
|
|
97
|
+
),
|
|
98
|
+
Edition(
|
|
99
|
+
key="X.683#2021-02",
|
|
100
|
+
rec="X.683",
|
|
101
|
+
edition="02/2021",
|
|
102
|
+
title="Parameterization of ASN.1 specifications",
|
|
103
|
+
status="in force",
|
|
104
|
+
artifact="T-REC-X.683-202102-I!!PDF-E",
|
|
105
|
+
sha256="2d81b95c04e0aabc158a0290a62f993c8a0d9a7d170a4130603f71cd942481f2",
|
|
106
|
+
octets=480_930,
|
|
107
|
+
note="Catalog sync 2026-11-07: id taken from the ITU component page, digest from the bytes downloaded.",
|
|
108
|
+
),
|
|
109
|
+
Edition(
|
|
110
|
+
key="X.691#2021-02",
|
|
111
|
+
rec="X.691",
|
|
112
|
+
edition="02/2021",
|
|
113
|
+
title="ASN.1 encoding rules: Packed Encoding Rules (PER)",
|
|
114
|
+
status="in force",
|
|
115
|
+
artifact="T-REC-X.691-202102-I!!PDF-E",
|
|
116
|
+
sha256="cd0a5f51e2840346c5408a9ca90623b3437625b55d1a166e43d05a8ceeb6de86",
|
|
117
|
+
octets=1_074_443,
|
|
118
|
+
note="Catalog sync 2026-11-07: id taken from the ITU component page, digest from the bytes downloaded.",
|
|
119
|
+
),
|
|
120
|
+
Edition(
|
|
121
|
+
key="X.692#2021-02",
|
|
122
|
+
rec="X.692",
|
|
123
|
+
edition="02/2021",
|
|
124
|
+
title="ASN.1 encoding rules: Encoding Control Notation (ECN)",
|
|
125
|
+
status="in force",
|
|
126
|
+
artifact="T-REC-X.692-202102-I!!PDF-E",
|
|
127
|
+
sha256="14516d83f16ec49c710573ad0c6ea61de9b0461962d4618c9cf00433e74a6829",
|
|
128
|
+
octets=2_447_703,
|
|
129
|
+
note="Catalog sync 2026-11-07: id taken from the ITU component page, digest from the bytes downloaded.",
|
|
130
|
+
),
|
|
131
|
+
Edition(
|
|
132
|
+
key="X.693#2021-02",
|
|
133
|
+
rec="X.693",
|
|
134
|
+
edition="02/2021",
|
|
135
|
+
title="ASN.1 encoding rules: XML Encoding Rules (XER)",
|
|
136
|
+
status="in force",
|
|
137
|
+
artifact="T-REC-X.693-202102-I!!PDF-E",
|
|
138
|
+
sha256="e548bbfeedc46db3fd85ff7d3ee1396538024b8d5f2dd77ecb96df3dccf6ac67",
|
|
139
|
+
octets=1_104_226,
|
|
140
|
+
note="Catalog sync 2026-11-07: id taken from the ITU component page, digest from the bytes downloaded.",
|
|
141
|
+
),
|
|
142
|
+
Edition(
|
|
143
|
+
key="X.694#2021-02",
|
|
144
|
+
rec="X.694",
|
|
145
|
+
edition="02/2021",
|
|
146
|
+
title="ASN.1 encoding rules: Mapping W3C XML schema definitions into ASN.1",
|
|
147
|
+
status="in force",
|
|
148
|
+
artifact="T-REC-X.694-202102-I!!PDF-E",
|
|
149
|
+
sha256="7cd4dd981421fb85d68182381e8edbd3d07dd9a3e9ff1ab7fd690e642625aa7a",
|
|
150
|
+
octets=1_745_448,
|
|
151
|
+
note="Catalog sync 2026-11-07: id taken from the ITU component page, digest from the bytes downloaded.",
|
|
152
|
+
),
|
|
153
|
+
Edition(
|
|
154
|
+
key="X.695#2021-02",
|
|
155
|
+
rec="X.695",
|
|
156
|
+
edition="02/2021",
|
|
157
|
+
title="ASN.1 encoding rules: Registration and application of PER encoding instructions",
|
|
158
|
+
status="in force",
|
|
159
|
+
artifact="T-REC-X.695-202102-I!!PDF-E",
|
|
160
|
+
sha256="7f843bfab8bf332c0aaf953ae396cf4133d18dfdd40e24ce0e681dc7422e799a",
|
|
161
|
+
octets=629_992,
|
|
162
|
+
note="Catalog sync 2026-11-07: id taken from the ITU component page, digest from the bytes downloaded.",
|
|
163
|
+
),
|
|
164
|
+
Edition(
|
|
165
|
+
key="X.696#2021-02",
|
|
166
|
+
rec="X.696",
|
|
167
|
+
edition="02/2021",
|
|
168
|
+
title="ASN.1 encoding rules: Specification of Octet Encoding Rules (OER)",
|
|
169
|
+
status="in force",
|
|
170
|
+
artifact="T-REC-X.696-202102-I!!PDF-E",
|
|
171
|
+
sha256="aa6ead13c19524fb087f0a376272e11c2c87d0dfc9fb6e26ef154df5b909c2c4",
|
|
172
|
+
octets=777_091,
|
|
173
|
+
note="Catalog sync 2026-11-07: id taken from the ITU component page, digest from the bytes downloaded.",
|
|
174
|
+
),
|
|
175
|
+
Edition(
|
|
176
|
+
key="X.697#2021-02",
|
|
177
|
+
rec="X.697",
|
|
178
|
+
edition="02/2021",
|
|
179
|
+
title="ASN.1 encoding rules: Specification of JavaScript Object Notation Encoding Rules (JER)",
|
|
180
|
+
status="in force",
|
|
181
|
+
artifact="T-REC-X.697-202102-I!!PDF-E",
|
|
182
|
+
sha256="9b4a335e29d7ff71c9c29ad19d96f9b0c4b98fb1a0dfcc0a63cdd9333cf798b6",
|
|
183
|
+
octets=745_268,
|
|
184
|
+
note="Catalog sync 2026-11-07: id taken from the ITU component page, digest from the bytes downloaded.",
|
|
185
|
+
),
|
|
186
|
+
Edition(
|
|
187
|
+
key="X.500#2019-10",
|
|
188
|
+
rec="X.500",
|
|
189
|
+
edition="10/2019",
|
|
190
|
+
title="The Directory: Overview of concepts, models and services",
|
|
191
|
+
status="in force",
|
|
192
|
+
artifact="T-REC-X.500-201910-I!!PDF-E",
|
|
193
|
+
sha256="616be799e0d7932c203e339f3d5576bd58014711be58558b900f94d46ad9bb98",
|
|
194
|
+
octets=1_761_409,
|
|
195
|
+
note="X.500 catalog sync 2026-11-07: id read off the ITU component page, which lists this PDF as freely "
|
|
196
|
+
"available at 1761409 bytes; digest from the bytes downloaded.",
|
|
197
|
+
),
|
|
198
|
+
Edition(
|
|
199
|
+
key="X.501#2019-10",
|
|
200
|
+
rec="X.501",
|
|
201
|
+
edition="10/2019",
|
|
202
|
+
title="The Directory: Models",
|
|
203
|
+
status="in force",
|
|
204
|
+
artifact="T-REC-X.501-201910-I!!PDF-E",
|
|
205
|
+
sha256="fa16c552c65a67ed0ab5be0291db368fc38ad94cb64df0bd90a9747586a3751b",
|
|
206
|
+
octets=2_767_911,
|
|
207
|
+
note="X.500 catalog sync 2026-11-07: id read off the ITU component page, which lists this PDF as freely "
|
|
208
|
+
"available at 2767911 bytes; digest from the bytes downloaded.",
|
|
209
|
+
),
|
|
210
|
+
Edition(
|
|
211
|
+
key="X.508#2024-10",
|
|
212
|
+
rec="X.508",
|
|
213
|
+
edition="10/2024",
|
|
214
|
+
title="The Directory: Key management and public-key infrastructure establishment and maintenance",
|
|
215
|
+
status="in force",
|
|
216
|
+
artifact="T-REC-X.508-202410-I!!PDF-E",
|
|
217
|
+
sha256="5bc486d7a74eafea9b59beca87e2184f6e46b427d8319776fa28db4916d88996",
|
|
218
|
+
octets=5_269_130,
|
|
219
|
+
note="X.500 catalog sync 2026-11-07: id read off the ITU component page, which lists this PDF as freely "
|
|
220
|
+
"available at 5269130 bytes; digest from the bytes downloaded.",
|
|
221
|
+
),
|
|
222
|
+
Edition(
|
|
223
|
+
key="X.509#2019-10",
|
|
224
|
+
rec="X.509",
|
|
225
|
+
edition="10/2019",
|
|
226
|
+
title="The Directory: Public-key and attribute certificate frameworks",
|
|
227
|
+
status="in force",
|
|
228
|
+
artifact="T-REC-X.509-201910-I!!PDF-E",
|
|
229
|
+
sha256="1f4ea2939ecc31a3433c499084d485e770f9b8dcee55a0ba9fe4c27128822e8c",
|
|
230
|
+
octets=3_581_573,
|
|
231
|
+
note="X.500 catalog sync 2026-11-07: id read off the ITU component page, which lists this PDF as freely "
|
|
232
|
+
"available at 3581573 bytes; digest from the bytes downloaded.",
|
|
233
|
+
),
|
|
234
|
+
Edition(
|
|
235
|
+
key="X.510#2023-10",
|
|
236
|
+
rec="X.510",
|
|
237
|
+
edition="10/2023",
|
|
238
|
+
title="The Directory: Protocol specifications for secure operations",
|
|
239
|
+
status="in force",
|
|
240
|
+
artifact="T-REC-X.510-202310-I!!PDF-E",
|
|
241
|
+
sha256="c49f3336cfd6ffbe2e188fc92a9cf3cb1cb83adea5210816d41cae9a390e9dbc",
|
|
242
|
+
octets=2_368_874,
|
|
243
|
+
note="X.500 catalog sync 2026-11-07: id read off the ITU component page, which lists this PDF as freely "
|
|
244
|
+
"available at 2368874 bytes; digest from the bytes downloaded.",
|
|
245
|
+
),
|
|
246
|
+
Edition(
|
|
247
|
+
key="X.511#2019-10",
|
|
248
|
+
rec="X.511",
|
|
249
|
+
edition="10/2019",
|
|
250
|
+
title="The Directory: Abstract service definition",
|
|
251
|
+
status="in force",
|
|
252
|
+
artifact="T-REC-X.511-201910-I!!PDF-E",
|
|
253
|
+
sha256="fba5830e90c3084b5bae97dce0547507e4cc864bffc0e0e4e6ffab95dab83c63",
|
|
254
|
+
octets=2_253_433,
|
|
255
|
+
note="X.500 catalog sync 2026-11-07: id read off the ITU component page, which lists this PDF as freely "
|
|
256
|
+
"available at 2253433 bytes; digest from the bytes downloaded.",
|
|
257
|
+
),
|
|
258
|
+
Edition(
|
|
259
|
+
key="X.518#2019-10",
|
|
260
|
+
rec="X.518",
|
|
261
|
+
edition="10/2019",
|
|
262
|
+
title="The Directory: Procedures for distributed operation",
|
|
263
|
+
status="in force",
|
|
264
|
+
artifact="T-REC-X.518-201910-I!!PDF-E",
|
|
265
|
+
sha256="8c3333351bac45f65dd33ed6dbd09e55b173129fff63c5064a699b298e0b608d",
|
|
266
|
+
octets=4_130_297,
|
|
267
|
+
note="X.500 catalog sync 2026-11-07: id read off the ITU component page, which lists this PDF as freely "
|
|
268
|
+
"available at 4130297 bytes; digest from the bytes downloaded.",
|
|
269
|
+
),
|
|
270
|
+
Edition(
|
|
271
|
+
key="X.519#2019-10",
|
|
272
|
+
rec="X.519",
|
|
273
|
+
edition="10/2019",
|
|
274
|
+
title="The Directory: Protocol specifications",
|
|
275
|
+
status="in force",
|
|
276
|
+
artifact="T-REC-X.519-201910-I!!PDF-E",
|
|
277
|
+
sha256="d09b59636bbbce77aaab3d0e8b23e17c6a1e507a535e65e5a46217175d9ac924",
|
|
278
|
+
octets=1_651_882,
|
|
279
|
+
note="X.500 catalog sync 2026-11-07: id read off the ITU component page, which lists this PDF as freely "
|
|
280
|
+
"available at 1651882 bytes; digest from the bytes downloaded.",
|
|
281
|
+
),
|
|
282
|
+
Edition(
|
|
283
|
+
key="X.520#2019-10",
|
|
284
|
+
rec="X.520",
|
|
285
|
+
edition="10/2019",
|
|
286
|
+
title="The Directory: Selected attribute types",
|
|
287
|
+
status="in force",
|
|
288
|
+
artifact="T-REC-X.520-201910-I!!PDF-E",
|
|
289
|
+
sha256="78cac8b619e69af06ae0ae9216716d400117152086e85c4ad267efef80bd3fd1",
|
|
290
|
+
octets=2_228_421,
|
|
291
|
+
note="X.500 catalog sync 2026-11-07: id read off the ITU component page, which lists this PDF as freely "
|
|
292
|
+
"available at 2228421 bytes; digest from the bytes downloaded.",
|
|
293
|
+
),
|
|
294
|
+
Edition(
|
|
295
|
+
key="X.521#2019-10",
|
|
296
|
+
rec="X.521",
|
|
297
|
+
edition="10/2019",
|
|
298
|
+
title="The Directory: Selected object classes",
|
|
299
|
+
status="in force",
|
|
300
|
+
artifact="T-REC-X.521-201910-I!!PDF-E",
|
|
301
|
+
sha256="da551843f975f7d54cb0bef92a3b9cec7efcfdf3177e9d0ce434d9424a7f63e3",
|
|
302
|
+
octets=1_079_233,
|
|
303
|
+
note="X.500 catalog sync 2026-11-07: id read off the ITU component page, which lists this PDF as freely "
|
|
304
|
+
"available at 1079233 bytes; digest from the bytes downloaded.",
|
|
305
|
+
),
|
|
306
|
+
Edition(
|
|
307
|
+
key="X.525#2019-10",
|
|
308
|
+
rec="X.525",
|
|
309
|
+
edition="10/2019",
|
|
310
|
+
title="The Directory: Replication",
|
|
311
|
+
status="in force",
|
|
312
|
+
artifact="T-REC-X.525-201910-I!!PDF-E",
|
|
313
|
+
sha256="49eedd99ab3892ad85ac46ac70d20548dec7e9ed6043d8a446cf7874e30b5efd",
|
|
314
|
+
octets=1_288_207,
|
|
315
|
+
note="X.500 catalog sync 2026-11-07: id read off the ITU component page, which lists this PDF as freely "
|
|
316
|
+
"available at 1288207 bytes; digest from the bytes downloaded.",
|
|
317
|
+
),
|
|
318
|
+
Edition(
|
|
319
|
+
key="X.530#2008-11",
|
|
320
|
+
rec="X.530",
|
|
321
|
+
edition="11/2008",
|
|
322
|
+
title="The Directory: Use of systems management for administration of the Directory",
|
|
323
|
+
status="in force",
|
|
324
|
+
artifact="T-REC-X.530-200811-I!!PDF-E",
|
|
325
|
+
sha256="2c6da6878e3f83b427dcd59f8e741a4daaadd8c545bc818d4081b65742520090",
|
|
326
|
+
octets=675_123,
|
|
327
|
+
note="X.500 catalog sync 2026-11-07: id read off the ITU component page, which lists this PDF as freely "
|
|
328
|
+
"available at 675123 bytes; digest from the bytes downloaded.",
|
|
329
|
+
),
|
|
330
|
+
)
|
|
331
|
+
|
|
332
|
+
SUPERSEDED: tuple[Edition, ...] = (
|
|
333
|
+
Edition(
|
|
334
|
+
key="X.690#2015-08",
|
|
335
|
+
rec="X.690",
|
|
336
|
+
edition="08/2015",
|
|
337
|
+
title="ASN.1 encoding rules: BER, CER and DER",
|
|
338
|
+
status="superseded",
|
|
339
|
+
artifact="T-REC-X.690-201508-S!!PDF-E",
|
|
340
|
+
sha256="5b61e6a08ee78b7eb3cee4215916647c5f30cb6e36b59348a25d61fa988cb529",
|
|
341
|
+
octets=935_416,
|
|
342
|
+
note="Superseded editions are listed under a -S id, not -I: the -I form returns 'Document Not Found'. "
|
|
343
|
+
"Digest measured 2026-11-07; 38 pages.",
|
|
344
|
+
),
|
|
345
|
+
Edition(
|
|
346
|
+
key="X.690#2008-11",
|
|
347
|
+
rec="X.690",
|
|
348
|
+
edition="11/2008",
|
|
349
|
+
title="ASN.1 encoding rules: BER, CER and DER",
|
|
350
|
+
status="superseded",
|
|
351
|
+
artifact="T-REC-X.690-200811-S!!PDF-E",
|
|
352
|
+
sha256="56b3a3f95ab19bbf521f3242756191a3bbf7ee0fb352290cee301c542b3b3a86",
|
|
353
|
+
octets=203_955,
|
|
354
|
+
note="The edition most legacy Python codecs were written against. This is the base text: Corrigenda 1 "
|
|
355
|
+
"(10/11) and 2 (03/14) are separate documents and are not applied to it. Digest measured 2026-11-07; "
|
|
356
|
+
"38 pages.",
|
|
357
|
+
),
|
|
358
|
+
)
|
|
359
|
+
|
|
360
|
+
AMENDMENTS: tuple[Amendment, ...] = (
|
|
361
|
+
Amendment(
|
|
362
|
+
key="X.690#2021-02!erratum-1",
|
|
363
|
+
rec="X.690",
|
|
364
|
+
label="Erratum 1 (09/2021) to Rec. X.690 (2021) | ISO/IEC 8825-1:2021",
|
|
365
|
+
status="in force",
|
|
366
|
+
artifact="T-REC-X.690-202109-I!Err1!PDF-E",
|
|
367
|
+
note="Listed In force on the X.690 page. A one-page covering note, 13 September 2021: Figure 4 "
|
|
368
|
+
"(high-tag-number identifier octets) has a typo in its penultimate octet and is replaced. The id is "
|
|
369
|
+
"read off the erratum's own page; the `!!ERSN1-E` and `!!DOC-E` guesses return HTTP 500.",
|
|
370
|
+
sha256="bb1acaa66a0897f9e53569d3449ce8fbf0892243ddd0cc430c912ed3178d6835",
|
|
371
|
+
octets=194_138,
|
|
372
|
+
),
|
|
373
|
+
Amendment(
|
|
374
|
+
key="X.500#2019-10!amd1",
|
|
375
|
+
rec="X.500",
|
|
376
|
+
label="Amendment 1 (10/2024) to Rec. X.500 (2019): Miscellaneous enhancements",
|
|
377
|
+
status="in force",
|
|
378
|
+
artifact="T-REC-X.500-202410-I!Amd1!PDF-E",
|
|
379
|
+
note="X.500 catalog sync 2026-11-07: listed In force on the X.500 page, PDF 218291 bytes as listed. "
|
|
380
|
+
"Not applied to the base text and not indexed; read it with `primarysource itu read X.500#2019-10!amd1`.",
|
|
381
|
+
sha256="df26e76b8cd2e9e17de507f2187f15dc10d11b8894894758eb3eeed7e7b8ec8d",
|
|
382
|
+
octets=218_291,
|
|
383
|
+
),
|
|
384
|
+
Amendment(
|
|
385
|
+
key="X.501#2019-10!amd1",
|
|
386
|
+
rec="X.501",
|
|
387
|
+
label="Amendment 1 (10/2021) to Rec. X.501 (2019): Miscellaneous enhancements",
|
|
388
|
+
status="in force",
|
|
389
|
+
artifact="T-REC-X.501-202110-I!Amd1!PDF-E",
|
|
390
|
+
note="X.500 catalog sync 2026-11-07: listed In force on the X.501 page, PDF 351086 bytes as listed. "
|
|
391
|
+
"Not applied to the base text and not indexed; read it with `primarysource itu read X.501#2019-10!amd1`.",
|
|
392
|
+
sha256="24ad1e87d3c9eff366cc178616fa88c4b6e9c47ea29504001259337bea6a1bdb",
|
|
393
|
+
octets=351_086,
|
|
394
|
+
),
|
|
395
|
+
Amendment(
|
|
396
|
+
key="X.501#2019-10!amd2",
|
|
397
|
+
rec="X.501",
|
|
398
|
+
label="Amendment 2 (10/2024) to Rec. X.501 (2019): Miscellaneous enhancements",
|
|
399
|
+
status="in force",
|
|
400
|
+
artifact="T-REC-X.501-202410-I!Amd2!PDF-E",
|
|
401
|
+
note="X.500 catalog sync 2026-11-07: listed In force on the X.501 page, PDF 550429 bytes as listed. "
|
|
402
|
+
"Not applied to the base text and not indexed; read it with `primarysource itu read X.501#2019-10!amd2`.",
|
|
403
|
+
sha256="084fbedc61083c3e5b2a0f6b6c5e44b62f6d1cf0ed1d93bb5ed59ac08fea5872",
|
|
404
|
+
octets=550_429,
|
|
405
|
+
),
|
|
406
|
+
Amendment(
|
|
407
|
+
key="X.509#2019-10!cor1",
|
|
408
|
+
rec="X.509",
|
|
409
|
+
label="Corrigendum 1 (10/2021) to Rec. X.509 (2019)",
|
|
410
|
+
status="in force",
|
|
411
|
+
artifact="T-REC-X.509-202110-I!Cor1!PDF-E",
|
|
412
|
+
note="X.500 catalog sync 2026-11-07: listed In force on the X.509 page, PDF 367050 bytes as listed. "
|
|
413
|
+
"Not applied to the base text and not indexed; read it with `primarysource itu read X.509#2019-10!cor1`.",
|
|
414
|
+
sha256="ddcc42186f120c51d40ba278b0ca31f528fde851ea663a69474fbcd09bd06f7c",
|
|
415
|
+
octets=367_050,
|
|
416
|
+
),
|
|
417
|
+
Amendment(
|
|
418
|
+
key="X.509#2019-10!cor2",
|
|
419
|
+
rec="X.509",
|
|
420
|
+
label="Corrigendum 2 (10/2023) to Rec. X.509 (2019)",
|
|
421
|
+
status="in force",
|
|
422
|
+
artifact="T-REC-X.509-202310-I!Cor2!PDF-E",
|
|
423
|
+
note="X.500 catalog sync 2026-11-07: listed In force on the X.509 page, PDF 352052 bytes as listed. "
|
|
424
|
+
"Not applied to the base text and not indexed; read it with `primarysource itu read X.509#2019-10!cor2`.",
|
|
425
|
+
sha256="583416a04fcd76a201e43486d92eb183c5ddae3f03947bf43d50b8185ab5f5a9",
|
|
426
|
+
octets=352_052,
|
|
427
|
+
),
|
|
428
|
+
Amendment(
|
|
429
|
+
key="X.509#2019-10!amd1",
|
|
430
|
+
rec="X.509",
|
|
431
|
+
label="Amendment 1 (10/2024) to Rec. X.509 (2019): Miscellaneous enhancements",
|
|
432
|
+
status="in force",
|
|
433
|
+
artifact="T-REC-X.509-202410-I!Amd1!PDF-E",
|
|
434
|
+
note="X.500 catalog sync 2026-11-07: listed In force on the X.509 page, PDF 300835 bytes as listed. "
|
|
435
|
+
"Not applied to the base text and not indexed; read it with `primarysource itu read X.509#2019-10!amd1`.",
|
|
436
|
+
sha256="7b0f16ec963fead56accab523fef543295f7946272330b2843799ade96d6cf76",
|
|
437
|
+
octets=300_835,
|
|
438
|
+
),
|
|
439
|
+
Amendment(
|
|
440
|
+
key="X.511#2019-10!amd1",
|
|
441
|
+
rec="X.511",
|
|
442
|
+
label="Amendment 1 (10/2024) to Rec. X.511 (2019): Miscellaneous enhancements",
|
|
443
|
+
status="in force",
|
|
444
|
+
artifact="T-REC-X.511-202410-I!Amd1!PDF-E",
|
|
445
|
+
note="X.500 catalog sync 2026-11-07: listed In force on the X.511 page, PDF 246331 bytes as listed. "
|
|
446
|
+
"Not applied to the base text and not indexed; read it with `primarysource itu read X.511#2019-10!amd1`.",
|
|
447
|
+
sha256="322169a1f4861f4ca00c49b5c4c7e41686ea3c762d3faa416c9c21888064a806",
|
|
448
|
+
octets=246_331,
|
|
449
|
+
),
|
|
450
|
+
Amendment(
|
|
451
|
+
key="X.518#2019-10!amd1",
|
|
452
|
+
rec="X.518",
|
|
453
|
+
label="Amendment 1 (10/2024) to Rec. X.518 (2019): Miscellaneous enhancements",
|
|
454
|
+
status="in force",
|
|
455
|
+
artifact="T-REC-X.518-202410-I!Amd1!PDF-E",
|
|
456
|
+
note="X.500 catalog sync 2026-11-07: listed In force on the X.518 page, PDF 239174 bytes as listed. "
|
|
457
|
+
"Not applied to the base text and not indexed; read it with `primarysource itu read X.518#2019-10!amd1`.",
|
|
458
|
+
sha256="312d69f9f4094548ce8f15cee1d43dd42ce5070f2491250a9fb92121e0032ff3",
|
|
459
|
+
octets=239_174,
|
|
460
|
+
),
|
|
461
|
+
Amendment(
|
|
462
|
+
key="X.519#2019-10!amd1",
|
|
463
|
+
rec="X.519",
|
|
464
|
+
label="Amendment 1 (10/2024) to Rec. X.519 (2019): Miscellaneous enhancements",
|
|
465
|
+
status="in force",
|
|
466
|
+
artifact="T-REC-X.519-202410-I!Amd1!PDF-E",
|
|
467
|
+
note="X.500 catalog sync 2026-11-07: listed In force on the X.519 page, PDF 278528 bytes as listed. "
|
|
468
|
+
"Not applied to the base text and not indexed; read it with `primarysource itu read X.519#2019-10!amd1`.",
|
|
469
|
+
sha256="40d6c66587c395836491589d9dbe0660e349b30e39f79b4ed9b2118859829952",
|
|
470
|
+
octets=278_528,
|
|
471
|
+
),
|
|
472
|
+
Amendment(
|
|
473
|
+
key="X.520#2019-10!amd1",
|
|
474
|
+
rec="X.520",
|
|
475
|
+
label="Amendment 1 (10/2024) to Rec. X.520 (2019): Miscellaneous enhancements",
|
|
476
|
+
status="in force",
|
|
477
|
+
artifact="T-REC-X.520-202410-I!Amd1!PDF-E",
|
|
478
|
+
note="X.500 catalog sync 2026-11-07: listed In force on the X.520 page, PDF 560983 bytes as listed. "
|
|
479
|
+
"Not applied to the base text and not indexed; read it with `primarysource itu read X.520#2019-10!amd1`.",
|
|
480
|
+
sha256="20ff1efd7cee34887939b73d82bd9f4e32e8ea39d8df2ebc2c9eb1302de7671d",
|
|
481
|
+
octets=560_983,
|
|
482
|
+
),
|
|
483
|
+
Amendment(
|
|
484
|
+
key="X.521#2019-10!amd1",
|
|
485
|
+
rec="X.521",
|
|
486
|
+
label="Amendment 1 (10/2024) to Rec. X.521 (2019): Miscellaneous enhancements",
|
|
487
|
+
status="in force",
|
|
488
|
+
artifact="T-REC-X.521-202410-I!Amd1!PDF-E",
|
|
489
|
+
note="X.500 catalog sync 2026-11-07: listed In force on the X.521 page, PDF 231439 bytes as listed. "
|
|
490
|
+
"Not applied to the base text and not indexed; read it with `primarysource itu read X.521#2019-10!amd1`.",
|
|
491
|
+
sha256="f78c10f0266c004c6cc5fb822a2cfb758439734aba6977578ab68969d24cd435",
|
|
492
|
+
octets=231_439,
|
|
493
|
+
),
|
|
494
|
+
Amendment(
|
|
495
|
+
key="X.525#2019-10!amd1",
|
|
496
|
+
rec="X.525",
|
|
497
|
+
label="Amendment 1 (10/2024) to Rec. X.525 (2019): Miscellaneous enhancements",
|
|
498
|
+
status="in force",
|
|
499
|
+
artifact="T-REC-X.525-202410-I!Amd1!PDF-E",
|
|
500
|
+
note="X.500 catalog sync 2026-11-07: listed In force on the X.525 page, PDF 207369 bytes as listed. "
|
|
501
|
+
"Not applied to the base text and not indexed; read it with `primarysource itu read X.525#2019-10!amd1`.",
|
|
502
|
+
sha256="787be5f950b4b3f950326a1bd80ffd36979043918bf41ae35bed65f664c743c8",
|
|
503
|
+
octets=207_369,
|
|
504
|
+
),
|
|
505
|
+
Amendment(
|
|
506
|
+
key="X.509#2019-10!cor3",
|
|
507
|
+
rec="X.509",
|
|
508
|
+
label="Corrigendum 3 (07/2026) to Rec. X.509 (2019)",
|
|
509
|
+
status="in force (prepublished)",
|
|
510
|
+
artifact=None,
|
|
511
|
+
note="Not registered. The X.509 page lists it 'In force (prepublished)', free download, 492,808 bytes "
|
|
512
|
+
"(id T-REC-X.509-202607-P!Cor3!PDF-E). `dologin_pub.asp` returns an 11,563-byte login page for it; only "
|
|
513
|
+
"`dologin.asp`, the URL on the component page itself, served a %PDF of the listed size. That is not the "
|
|
514
|
+
"URL template this registry uses, and a prepublished text can change before final publication, so "
|
|
515
|
+
"pinning a digest now would pin a draft.",
|
|
516
|
+
),
|
|
517
|
+
Amendment(
|
|
518
|
+
key="X.510#2023-10!amd1",
|
|
519
|
+
rec="X.510",
|
|
520
|
+
label="Amendment 1 (07/2026) to Rec. X.510 (2023)",
|
|
521
|
+
status="in force (prepublished)",
|
|
522
|
+
artifact=None,
|
|
523
|
+
note="Not registered: the component page restricts it to TIES users (listed 392,348 bytes); "
|
|
524
|
+
"`dologin_pub.asp` and `dologin.asp` both return a login page.",
|
|
525
|
+
),
|
|
526
|
+
Amendment(
|
|
527
|
+
key="X.690#2002-07!amd2",
|
|
528
|
+
rec="X.690",
|
|
529
|
+
label="Amendment 2 (06/2006) Time type support",
|
|
530
|
+
status="superseded",
|
|
531
|
+
artifact=None,
|
|
532
|
+
note="Relevant to the UTCTime/GeneralizedTime rows: the time rules moved editions, so a row resolved "
|
|
533
|
+
"against 02/2021 may not describe what an older decoder implemented.",
|
|
534
|
+
),
|
|
535
|
+
)
|
|
536
|
+
|
|
537
|
+
# ITU-T recommendation series, as titled on https://www.itu.int/rec/T-REC/en (read 2026-11-07). There is no
|
|
538
|
+
# B, C or W series. L's title is truncated on the page and is kept truncated rather than completed from memory.
|
|
539
|
+
SERIES: dict[str, str] = {
|
|
540
|
+
"A": "Organization of the work of ITU-T",
|
|
541
|
+
"D": "Tariff and accounting principles and international telecommunication/ICT economic and policy issues",
|
|
542
|
+
"E": "Overall network operation, telephone service, service operation and human factors",
|
|
543
|
+
"F": "Non-telephone telecommunication services",
|
|
544
|
+
"G": "Transmission systems and media, digital systems and networks",
|
|
545
|
+
"H": "Audiovisual and multimedia systems",
|
|
546
|
+
"I": "Integrated services digital network",
|
|
547
|
+
"J": "Cable networks and transmission of television, sound programme and other multimedia signals",
|
|
548
|
+
"K": "Protection against interference",
|
|
549
|
+
"L": "Environment and ICTs, climate change, e-waste, energy efficiency; construction, ... (title truncated)",
|
|
550
|
+
"M": "Telecommunication management, including TMN and network maintenance",
|
|
551
|
+
"N": "Maintenance: international sound programme and television transmission circuits",
|
|
552
|
+
"O": "Specifications of measuring equipment",
|
|
553
|
+
"P": "Telephone transmission quality, telephone installations, local line networks",
|
|
554
|
+
"Q": "Switching and signalling, and associated measurements and tests",
|
|
555
|
+
"R": "Telegraph transmission",
|
|
556
|
+
"S": "Telegraph services terminal equipment",
|
|
557
|
+
"T": "Terminals for telematic services",
|
|
558
|
+
"U": "Telegraph switching",
|
|
559
|
+
"V": "Data communication over the telephone network",
|
|
560
|
+
"X": "Data networks, open system communications and security",
|
|
561
|
+
"Y": "Global information infrastructure, Internet protocol aspects, next-generation networks, "
|
|
562
|
+
"Internet of Things and smart cities",
|
|
563
|
+
"Z": "Languages and general software aspects for telecommunication systems",
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
# In-force X.500-series recommendations that could not be registered, with the reason read off ITU's page.
|
|
567
|
+
NOT_REGISTERED: dict[str, str] = {
|
|
568
|
+
"X.506": "X.506 (07/26), 'The Directory: General methods for migration of cryptographic algorithms': "
|
|
569
|
+
"In force (prepublished) and 'Document restricted to TIES users' (listed 883,728 bytes); both download URLs "
|
|
570
|
+
"return a login page.",
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
BY_REC: dict[str, tuple[Edition, ...]] = {}
|
|
574
|
+
for _edition in (*IN_FORCE, *SUPERSEDED):
|
|
575
|
+
BY_REC.setdefault(_edition.rec, ())
|
|
576
|
+
BY_REC[_edition.rec] = (*BY_REC[_edition.rec], _edition)
|
|
577
|
+
|
|
578
|
+
|
|
579
|
+
def current(rec: str) -> Edition:
|
|
580
|
+
"""The in-force edition of a recommendation, or KeyError. Never a silent default."""
|
|
581
|
+
for edition in IN_FORCE:
|
|
582
|
+
if edition.rec == rec:
|
|
583
|
+
return edition
|
|
584
|
+
raise KeyError(f"{rec}: no in-force edition registered")
|
|
585
|
+
|
|
586
|
+
|
|
587
|
+
def resolve_document(key: str) -> Edition | Amendment:
|
|
588
|
+
"""An edition, or an amendment/erratum when the key names one (`X.690#2021-02!erratum-1`)."""
|
|
589
|
+
for amendment in AMENDMENTS:
|
|
590
|
+
if amendment.key == key:
|
|
591
|
+
return amendment
|
|
592
|
+
return resolve(key)
|
|
593
|
+
|
|
594
|
+
|
|
595
|
+
def resolve(key: str) -> Edition:
|
|
596
|
+
"""Look an edition up by `rec` or by `rec#edition`. Ambiguity is an error, not a guess."""
|
|
597
|
+
for edition in (*IN_FORCE, *SUPERSEDED):
|
|
598
|
+
if edition.key == key or edition.rec == key:
|
|
599
|
+
return edition
|
|
600
|
+
raise KeyError(f"unknown edition {key!r}; registered: {', '.join(e.key for e in (*IN_FORCE, *SUPERSEDED))}")
|