@@ -4,9 +4,26 @@ Kotlin/JVM library for loading trust lists and resolving certificates, certifica
44
55Supported inputs:
66
7- - ETSI TS 119 612 Trust List XML
8- - Provisional LoTE JSON and XML used by current EUDI pilots
9- - LoTE JSON in a compact-JWS envelope
7+ - ETSI TS 119 612 Trust List and List of Trusted Lists XML
8+ - ETSI TS 119 602 V1.1.1 JSON, validated against the ETSI Annex A.1 schema
9+ - ETSI TS 119 602 V1.1.1 XML, validated against the ETSI Annex A.2.1 XSD
10+ - TS 119 602 JSON in a compact-JWS envelope
11+
12+ Other JSON/XML shapes are rejected.
13+
14+ ## Standards status
15+
16+ | Area | Status |
17+ | ---| ---|
18+ | TS 119 602 Annex A.1 JSON syntax | ETSI JSON Schema validation and normalization implemented |
19+ | TS 119 602 Annex A.2.1 XML syntax | Offline ETSI XSD validation and normalization implemented |
20+ | TS 119 602 Annex A.2.2 / TS 119 612 XML | Ingestion implemented |
21+ | RFC 7515 compact JWS integrity | Implemented for embedded ECDSA payloads |
22+ | TS 119 602 profile rules, annexes D–I | Conformance test expansion required |
23+ | JAdES Baseline B / XAdES-B-B profile validation | Not complete; cryptographic signature validation alone is not a conformance claim |
24+
25+ The library must not be described as fully ETSI-conformant until the remaining profile rules and AdES validation are
26+ implemented and verified against an independent conformance suite.
1027
1128## Security model
1229
@@ -96,13 +113,23 @@ check(result.assurance?.authenticityState == AuthenticityState.INTEGRITY_VERIFIE
96113
97114For ` AUTHENTICATED ` , use ` REQUIRE_AUTHENTICATED ` and configure independently trusted TSL signer certificates.
98115
116+ The parser distinguishes a national trust list from the EU List of Trusted Lists (LoTL):
117+
118+ ``` kotlin
119+ check(result.format == TrustListFormat .ETSI_TS_119_612_TRUST_LIST_XML )
120+ ```
121+
122+ For the EU LoTL, ` result.format ` is ` ETSI_TS_119_612_LIST_OF_TRUST_LISTS_XML ` and
123+ ` result.pointersLoaded ` reports the number of ` OtherTSLPointer ` entries. The library does not automatically fetch the
124+ member-state lists referenced by those pointers; register and load each required national list explicitly.
125+
99126### Explicitly allow an unsigned list
100127
101128Unsigned LoTE inputs require an explicit policy:
102129
103130``` kotlin
104131val result = registry.loadSourceFromContent(
105- sourceId = " pilot-lote " ,
132+ sourceId = " wallet-providers " ,
106133 content = loteJson,
107134 options = SourceLoadOptions (
108135 acceptancePolicy = SourceAcceptancePolicy .ALLOW_UNSIGNED
@@ -143,10 +170,15 @@ Failed refreshes do not replace the active source snapshot. `RefreshResult` prov
143170
144171- Boolean ` validateSignature ` loading methods remain temporarily available but are deprecated. New integrations should use ` SourceLoadOptions ` .
145172- Persisted sources created before the assurance model must be refreshed or migrated; missing assurance is treated as not admitted.
146- - The LoTE JSON/XML shapes are provisional pilot formats, not claims of final ETSI schema conformance.
147173- Compact JWS support validates embedded payloads and pinned X.509 signers; it is not full JAdES support.
148174- ` InMemoryTrustStore ` is thread-safe but not persistent. Production deployments should provide a persistent ` TrustStore ` implementation.
149175
176+ Useful public test sources:
177+
178+ - Austria TSL: ` https://www.signatur.rtr.at/vertrauensliste.xml `
179+ - Italy TSL: ` https://eidas.agid.gov.it/TL/TSL-IT.xml `
180+ - EU LoTL: ` https://ec.europa.eu/tools/lotl/eu-lotl.xml `
181+
150182## Tests
151183
152184``` bash
@@ -155,3 +187,10 @@ Failed refreshes do not replace the active source snapshot. `RefreshResult` prov
155187```
156188
157189Network tests are disabled by default. Enable them explicitly with ` RUN_NETWORK_TESTS=true ` .
190+
191+ Normative references:
192+
193+ - ETSI TS 119 602 V1.1.1: < https://www.etsi.org/deliver/etsi_ts/119600_119699/119602/01.01.01_60/ts_119602v010101p.pdf >
194+ - ETSI schemas, pinned in the implementation to commit ` e84f427f0cde99513b574ef4b5a155ac4a38eab6 ` :
195+ < https://forge.etsi.org/rep/esi/x19_60201_lists_of_trusted_entities >
196+ - ETSI TS 119 612 V2.4.1: < https://www.etsi.org/deliver/etsi_ts/119600_119699/119612/02.04.01_60/ts_119612v020401p.pdf >
0 commit comments