ForTrust · EUDI Interoperability

Conformance & proof

Where ForTrust stands against the EUDI ARF 3.0 / OpenID / ISO stack — every row points at real code or verified interop.
24
Building blocks implemented
8/32
ARF PID attributes (mandatory/total)
4/4
OIDF OID4VP 1.0 Final tests

ARF 2.8.0 / 3.0 PID Rulebook — attribute coverage

mDoc nameSD-JWT VCReq.Description
family_namefamily_name MUST Current last name(s) / surname(s)
given_namegiven_name MUST Current first name(s)
birth_datebirthdate MUST Date of birth (full-date)
age_over_18age_over_18 MUST Attesting the holder is over 18
issuance_dateiat MUST PID issuance date
expiry_dateexp MUST PID expiry date
issuing_authorityissuing_authority MUST PID Provider name
issuing_countryissuing_country MUST Issuing country (ISO 3166-1 a-2)
age_over_16age_over_16 optional Attesting the holder is over 16
age_over_21age_over_21 optional Attesting the holder is over 21
age_over_65age_over_65 optional Attesting the holder is over 65
age_in_yearsage_in_years optional Current age in years
age_birth_yearage_birth_year optional Year of birth
family_name_birthfamily_name_birth optional Last name(s) at birth
given_name_birthgiven_name_birth optional First name(s) at birth
birth_placeplace_of_birth optional Place of birth (nested for SD-JWT)
birth_countryplace_of_birth.country optional Country of birth
birth_stateplace_of_birth.region optional State/region of birth
birth_cityplace_of_birth.locality optional City of birth
resident_addressaddress.formatted optional Full residential address
resident_countryaddress.country optional Country of residence
resident_stateaddress.region optional State/region of residence
resident_cityaddress.locality optional City of residence
resident_postal_codeaddress.postal_code optional Postal code
resident_streetaddress.street_address optional Street
resident_house_numberaddress.house_number optional House number
sexsex optional Sex (ISO/IEC 5218: 0-9)
nationalitynationalities optional Nationality/-ies (a-2; plural in SD-JWT)
document_numberdocument_number optional PID document number
personal_administrative_numberpersonal_administrative_number optional Administrative number (e.g. national identifier)
issuing_jurisdictionissuing_jurisdiction optional Issuing subdivision
portraitpicture optional Facial image of the holder

Building-block coverage

Building blockStatusEvidence
OID4VCI pre-auth + auth-code issuance ✓ implemented issuer_vci + document_server
OID4VP presentation ✓ implemented verifier engine
Credential format: ISO mdoc (mso_mdoc) ✓ implemented COSE/ES256, tag-24, golden vectors
Credential format: SD-JWT VC (dc+sd-jwt) ✓ implemented document_server/sd_jwt_vc_issuer
DCQL query language ✓ implemented verifier DCQL
HAIP 1.0 profile ✓ implemented VCI_HAIP_MODE umbrella
transaction_data (OID4VP 1.0) ✓ implemented conformant + fallback, tested
Encrypted response direct_post.jwt (ECDH-ES) ✓ implemented verifier/jwe_ecdh
client_id prefixes (x509_san_dns / verifier_attestation / did) ✓ implemented
Wallet attestation (WUA/WIA/KA) ✓ implemented wallet_attestation
Trust: signed/versioned Trusted List snapshot ✓ implemented trust_registry
Dual trust anchor (ETSI 119 612 + LoTE) ✓ implemented sync_eu_tsl + lote_sync
ISO 18013-5 proximity (mDL) ✓ implemented cross-vendor verified (Scytales)
ISO 18013-7 online (Option A) ✓ implemented direct_post.jwt live
DSC revocation via IACA CRL ✓ implemented revocation_service/crl
Status Lists (Token Status List) ✓ implemented revocation_service
VICAL consumer (ISO 18013-5 Annex C) ✓ implemented interop/vical.py — COSE verify + IACA extract
ARF PID Rulebook claim names ✓ implemented issuer/utils/pid_claim_names + arf_pid_reference
OIDF OID4VP 1.0 Final conformance suite ✓ implemented 4/4 passed 2026-08-22
Live interop runners (OID4VP present + OID4VCI issue) ✓ implemented interop/runner.py
Full EUDI lifecycle test (Issue -> Present -> Verify) ✓ implemented interop lifecycle runner
Trusted List / LoTE consumer (ETSI TS 119 612) ✓ implemented interop/trusted_list.py — XAdES/JWS signature verified, fail-closed
Programmatic interop API + CI (tiered) ✓ implemented interop/api_views.py — API-key runs, machine-readable PASS/FAIL
External-interop evidence register ✓ implemented interop/evidence.py — third-party proof w/ artifacts + reproduction
Holder-side OID4VCI (External Issuer -> ForTrust Wallet) partial interop/holder_client.py — real pre-auth OID4VCI pull + issuer-sig verify
Formal EUDI certification external requires the official conformance body
Code-presence + verified-interop assessment. Not a formal EUDI certification — that requires the official conformance body.