10.4. QEAA and PuB-EAA Data Model

This section profiles a Qualified Electronic Attestation of Attributes (QEAA) and an Electronic Attestation of Attributes issued by or on behalf of a public body responsible for an authentic source (PuB-EAA).

It applies when the Credential Catalog entry has legal_type set to qeaa or pub-eaa. The generic rules in Digital Credential Data Model apply. This section adds the rules of [ETSI TS 119 472-1] for those two legal classifications.

A QEAA or a PuB-EAA MUST be encoded as SD-JWT VC, the realization in clause 5 of [ETSI TS 119 472-1], or as mdoc-CBOR, the realization in clause 6 of [ETSI TS 119 472-1]. The JSON-LD W3C VC realization in clause 7 of [ETSI TS 119 472-1] and the X.509 attribute certificate realization in clause 8 of [ETSI TS 119 472-1] are outside this specification.

Issuance of these attestations follows [ETSI TS 119 472-3]. Presentation of these attestations follows [ETSI TS 119 472-2]. Provider registration and trust anchors remain those specified for a QEAA Provider and a PuB-EAA Provider in QEAA Provider and PuB-EAA Provider.

10.4.1. Scope

User attributes of a QEAA or a PuB-EAA depend on the credential type registered in the Credential Catalog. This section specifies the metadata that [ETSI TS 119 472-1] requires for every such type.

Annex V of [EU_2024_1183] sets the content of a QEAA. Annex VII of [EU_2024_1183] sets the content of a PuB-EAA. Where those annexes require an issuer name, a country, a validity period, or the location of the signing certificate, the encoding is the one in this section.

10.4.2. Category

The category value identifies the legal classification inside the attestation.

legal_type

SD-JWT VC claim ``category``

mdoc element ``category``

qeaa

REQUIRED. The value MUST be urn:etsi:esi:eaa:eu:qualified.

REQUIRED. The value MUST be urn:etsi:esi:eaa:eu:qualified.

pub-eaa

REQUIRED. The value MUST be urn:etsi:esi:eaa:eu:pub.

REQUIRED. The value MUST be urn:etsi:esi:eaa:eu:pub.

The claim and the element implement [ETSI TS 119 472-1] QEAA-5.2.2.2-02, PuB-EAA-5.2.2.3-02, QEAA-6.2.2.2-02 and PuB-EAA-6.2.2.3-02. In mdoc the element category MUST be placed in the namespace org.etsi.01947201.010101. An attestation whose legal_type is eaa MUST NOT contain category ([ETSI TS 119 472-1] EAA-5.2.2.1-01 and EAA-6.2.2.1-01).

10.4.3. Issuer Identification

The signer certificate MUST be a qualified certificate. A QEAA uses the profile in (Q)EAA Provider Sign/Seal Certificate. A PuB-EAA uses the profile in PuB-EAA Provider Sign/Seal Certificate. The signature MUST be a qualified electronic signature or a qualified electronic seal ([ETSI TS 119 472-1] QEAA-5.6.2-01, PuB-EAA-5.6.3-01, QEAA-6.6.2-01 and PuB-EAA-6.6.3-01).

The registration identifier in that certificate MUST follow clause 5.1.4 of [ETSI EN 319 412-1] ([ETSI TS 119 472-1] QEAA-5.2.4.2-04, PuB-EAA-5.2.4.3-04, QEAA-6.2.4.2-02 and PuB-EAA-6.2.4.3-02). In SD-JWT VC the qualified certificate supporting the signature is incorporated in the x5c header parameter, as required in Protected Header. An SD-JWT VC QEAA or PuB-EAA MUST NOT contain issuing_authority ([ETSI TS 119 472-1] EAA-5.2.4.1-03). An SD-JWT VC QEAA or PuB-EAA MUST NOT contain issuing_country ([ETSI TS 119 472-1] EAA-5.2.4.1-07). An SD-JWT VC QEAA or PuB-EAA MUST NOT contain iss_reg_id ([ETSI TS 119 472-1] EAA-5.2.4.1-11). In mdoc the qualified certificate supporting the signature is incorporated in the x5chain header, as required in Mobile Security Object Headers. An mdoc QEAA or PuB-EAA MUST NOT contain iss_reg_id ([ETSI TS 119 472-1] EAA-6.2.4.1-13).

10.4.4. Attestation Identity

The attestation identity code identifies one issued attestation.

In SD-JWT VC the attestation identity code is the jti claim ([ETSI TS 119 472-1] EAA-5.2.3-01). jti MAY be present. When jti is present, its value MUST uniquely identify that attestation.

In mdoc the attestation identity code is the document_number data element ([ETSI TS 119 472-1] EAA-6.2.3-01). document_number MUST be present. For an mDL, document_number MUST use the namespace org.iso.18013.5.1. For an mdoc that is not an mDL, document_number MUST use the namespace org.iso.23220.1.

10.4.5. Subject

Every attribute in a QEAA or a PuB-EAA MUST refer to one subject ([ETSI TS 119 472-1] QEAA-5.2.5.5-01, PuB-EAA-5.2.5.6-01, QEAA-6.2.5.5-01 and PuB-EAA-6.2.5.6-01). A QEAA or a PuB-EAA MUST NOT contain subAttrs. A QEAA or a PuB-EAA MUST NOT contain a SubAttr value.

In SD-JWT VC, sub follows Digital Credential SD-JWT Metadata Attributes. also_known_as is the subject pseudonym ([ETSI TS 119 472-1] EAA-5.2.5.2-01). also_known_as MUST be a string when present. A PuB-EAA in SD-JWT VC MUST contain exactly one of sub and also_known_as ([ETSI TS 119 472-1] PuB-EAA-4.2.6.8-01). A QEAA in SD-JWT VC MAY contain sub. A QEAA in SD-JWT VC MAY contain also_known_as. A QEAA in SD-JWT VC MUST NOT contain both sub and also_known_as.

In mdoc, the subject is identified either by also_known_as or by the set given_name, family_name and document_number ([ETSI TS 119 472-1] EAA-6.2.5.1-02 and EAA-6.2.5.1-05). The attestation MUST contain one of those two identifications. The attestation MUST NOT contain both. also_known_as MUST be a text string in the namespace org.etsi.01947201.010101. For an mDL, given_name and family_name MUST use the namespace org.iso.18013.5.1. For an mdoc that is not an mDL, given_name and family_name MUST use the namespace org.iso.23220.1 ([ISO-IEC-23220-2] and [ETSI TS 119 472-1] EAA-6.1-03).

10.4.6. Technical and Administrative Validity

Technical validity is the interval during which the encoded attestation and its signature are valid. Administrative validity is the interval during which the attested attributes remain administratively valid, such as the expiry of a licence. Passing that date does not revoke the attestation. Revocation does not require that date to have passed. See Credential Lifecycle States Mapping.

In SD-JWT VC, technical validity MUST be expressed by nbf and exp, as already required for an EAA in Digital Credential SD-JWT Metadata Attributes ([ETSI TS 119 472-1] EAA-5.2.7.1-01 and EAA-5.2.7.1-03). Administrative validity MUST be expressed by issuance_date and date_of_expiry when the credential type defines them. A QEAA or a PuB-EAA MUST NOT contain adm_nbf. A QEAA or a PuB-EAA MUST NOT contain adm_exp.

In mdoc, technical validity MUST be expressed by validFrom and validUntil inside validityInfo ([ETSI TS 119 472-1] EAA-6.2.7.1-01 and EAA-6.2.7.1-02). validFrom MUST be present. validUntil MUST be present. Both values MUST be UTC times. Both values MUST have a precision of whole seconds. Both values MUST omit fractions of a second ([ETSI TS 119 472-1] EAA-6.2.7.1-03, EAA-6.2.7.1-04 and EAA-6.2.7.1-05). Administrative validity MUST be expressed by issue_date and expiry_date in the document namespace ([ETSI TS 119 472-1] EAA-6.2.6-01 and EAA-6.2.7.2-01).

10.4.7. Status and Short-Lived Attestations

The short-lived signal means that the validity period is short enough that a revocation check is not required ([ETSI TS 119 472-1] EAA-4.2.13-02).

In SD-JWT VC the short-lived signal is the claim shortLived with the JSON null value ([ETSI TS 119 472-1] EAA-5.2.12-02). In mdoc the short-lived signal is the element shortLived set to true in the namespace org.etsi.01947201.010101 ([ETSI TS 119 472-1] EAA-6.2.12-04). shortLived MAY be present.

When the short-lived signal is absent, status MUST be present ([ETSI TS 119 472-1] QEAA-5.2.10.2-01, PuB-EAA-5.2.10.3-01, QEAA-6.2.10.2-01 and PuB-EAA-6.2.10.3-01). That status value MUST follow Digital Credential SD-JWT Metadata Attributes for SD-JWT VC. That status value MUST follow Mobile Security Object for mdoc. The status_list member with idx and uri is specified in Digital Credential SD-JWT Metadata Attributes. When status is present in an SD-JWT VC QEAA or PuB-EAA, it MUST contain type with the value TokenStatusList ([ETSI TS 119 472-1] EAA-5.2.10.1-04 and EAA-5.2.10.1-05). When status is present in an SD-JWT VC QEAA or PuB-EAA, it MUST contain purpose with the value revocation. When status is present in an SD-JWT VC QEAA or PuB-EAA, it MUST contain index and uri ([ETSI TS 119 472-1] EAA-5.2.10.1-08 and EAA-5.2.10.1-10). The value of index MUST equal the value of status_list.idx. The value of uri MUST equal the value of status_list.uri. Token Status List, as already required by those sections, is the EAA status service of [ETSI TS 119 472-1] clause 5.2.10 and clause 6.2.10.

Warning

SD-JWT status object

Clause 5.2.10 of [ETSI TS 119 472-1] places type, purpose, index and uri on the SD-JWT status object. Section 6.2 of [TOKEN-STATUS-LIST] places the reference in status.status_list. Both shapes are present and identify the same status list. Clause 6.2.10 of [ETSI TS 119 472-1] uses the status_list member for mdoc (EAA-6.2.10.1-03).

A QEAA or a PuB-EAA MAY contain oneTime. In SD-JWT VC, a present oneTime claim MUST have the JSON null value ([ETSI TS 119 472-1] EAA-5.2.8.2-05). In mdoc, oneTime MUST be a boolean in the namespace org.etsi.01947201.010101 ([ETSI TS 119 472-1] EAA-6.2.8.2-03). When oneTime is present in SD-JWT VC, the Wallet Unit MUST present the attestation only once ([ETSI TS 119 472-1] EAA-5.2.8.2-03). When oneTime is present in SD-JWT VC, the Wallet Unit MUST NOT retain the attestation for future use ([ETSI TS 119 472-1] EAA-5.2.8.2-03). When oneTime is true in mdoc, the Wallet Unit MUST present the attestation only once ([ETSI TS 119 472-1] EAA-6.2.8.2-04). When oneTime is true in mdoc, the Wallet Unit MUST NOT retain the attestation for future use ([ETSI TS 119 472-1] EAA-6.2.8.2-04).

10.4.8. Components Not Used

A QEAA or a PuB-EAA MUST NOT contain an audience component ([ETSI TS 119 472-1] EAA-5.2.8.1-01 and EAA-6.2.8.1-01). Relying Party restrictions for these attestations use the Embedded Disclosure Policy (EDP). A QEAA or a PuB-EAA MUST NOT contain a renewal-service component ([ETSI TS 119 472-1] EAA-5.2.11-01 and EAA-6.2.11-01). An SD-JWT VC QEAA or PuB-EAA MUST NOT contain an evidence claim. An mdoc QEAA or PuB-EAA MUST NOT contain an attributes-evidence element ([ETSI TS 119 472-1] EAA-6.2.9-01).

10.4.9. SD-JWT VC Profile

Selective disclosure, vct, vct#integrity, _sd and _sd_alg remain those specified in SD-JWT-VC Credential Format. The vct value MUST identify a Credential Catalog entry whose legal_type is qeaa or pub-eaa.

10.4.9.1. Protected Header

The protected JOSE header MUST contain x5u ([ETSI TS 119 472-1] QEAA-5.6.2-02 and PuB-EAA-5.6.3-02). The protected JOSE header MUST contain x5t#S256 ([ETSI TS 119 472-1] QEAA-5.6.2-02 and PuB-EAA-5.6.3-02). x5t#S256 is the base64url-encoded SHA-256 digest of the DER encoding of the signing certificate, as specified in RFC 7515. x5u MUST be an HTTPS URI at which the signer certificate is available free of charge. x5c remains REQUIRED as specified in Digital Credential SD-JWT Metadata Attributes. The end-entity certificate in x5c MUST be the certificate identified by x5u and x5t#S256.

10.4.9.2. Payload Claims

The following claims apply in addition to Digital Credential SD-JWT Metadata Attributes.

Claim

Description

Reference

category

REQUIRED. String. Values are specified in Category.

[ETSI TS 119 472-1] clause 5.2.2

jti

OPTIONAL. String. Attestation identity code. See Attestation Identity.

[ETSI TS 119 472-1] EAA-5.2.3-02

also_known_as

See Subject.

[ETSI TS 119 472-1] EAA-5.2.5.2-02

shortLived

OPTIONAL. JSON null. See Status and Short-Lived Attestations.

[ETSI TS 119 472-1] EAA-5.2.12-02

oneTime

OPTIONAL. JSON null. See Status and Short-Lived Attestations.

[ETSI TS 119 472-1] EAA-5.2.8.2-05

10.4.10. mdoc-CBOR Profile

An mDL QEAA or PuB-EAA MUST carry the mDL data elements in the namespace org.iso.18013.5.1 ([ISO18013-5] and [ETSI TS 119 472-1] EAA-6.1-02). A QEAA or PuB-EAA that is not an mDL MUST carry its document data elements in the namespace org.iso.23220.1 ([ISO-IEC-23220-2] and [ETSI TS 119 472-1] EAA-6.1-03). Data elements defined by [ETSI TS 119 472-1] MUST use the namespace org.etsi.01947201.010101 ([ETSI TS 119 472-1] EAA-6.1-04).

10.4.10.1. Mobile Security Object Headers

For a Digital Credential that is not a QEAA or a PuB-EAA, issuerAuth is a COSE_Sign1 whose protected header contains only the signature algorithm, as specified in Mobile Security Object. For an mdoc QEAA or PuB-EAA, issuerAuth MUST be a CB-AdES digital signature ([ETSI TS 119 472-1] EAA-6.6.1-01). The protected header of that CB-AdES signature is specified in this section.

Warning

mdoc issuerAuth signature

Other mdoc credentials use a COSE_Sign1 whose protected header contains only the signature algorithm. [ETSI TS 119 472-1] EAA-6.6.1-01 requires a CB-AdES digital signature. QEAA-6.6.2-02 and PuB-EAA-6.6.3-02 place x5u and x5t in that protected header. QEAA-6.6.2-04 and PuB-EAA-6.6.3-04 place x5chain there as a should. This specification uses CB-AdES for an mdoc QEAA or PuB-EAA. The protected header contains the signature algorithm, x5u and x5t. x5chain stays in the unprotected header, as required for every mdoc in Mobile Security Object. Other mdoc credentials remain a COSE_Sign1.

The protected header MUST contain the signature algorithm, label 1. The protected header MUST contain x5u, label 35, as specified in RFC 9360 ([ETSI TS 119 472-1] QEAA-6.6.2-02 and PuB-EAA-6.6.3-02). The protected header MUST contain x5t, label 34, as specified in RFC 9360 ([ETSI TS 119 472-1] QEAA-6.6.2-02 and PuB-EAA-6.6.3-02). The hash algorithm inside x5t MUST be SHA-256 ([ETSI TS 119 472-1] QEAA-6.6.2-03 and PuB-EAA-6.6.3-03). x5u MUST be an HTTPS URI at which the signer certificate is available free of charge.

The unprotected header MUST contain x5chain, label 33, as specified in Mobile Security Object. The Wallet Unit MUST retrieve the signer certificate from x5u. The Wallet Unit MUST reject the attestation when the SHA-256 digest of the DER encoding of that certificate differs from x5t. The Wallet Unit MUST reject the attestation when the end-entity certificate in x5chain differs from the certificate retrieved from x5u.

10.4.10.2. Namespace org.etsi.01947201.010101

Element

Description

Reference

category

REQUIRED. Text string. Values are specified in Category.

[ETSI TS 119 472-1] clause 6.2.2

also_known_as

Text string. See Subject.

[ETSI TS 119 472-1] EAA-6.2.5.2-01

iss_reg_id

MUST NOT be present. See Issuer Identification.

[ETSI TS 119 472-1] EAA-6.2.4.1-13

shortLived

OPTIONAL. Boolean. See Status and Short-Lived Attestations.

[ETSI TS 119 472-1] EAA-6.2.12-03

oneTime

OPTIONAL. Boolean. See Status and Short-Lived Attestations.

[ETSI TS 119 472-1] EAA-6.2.8.2-03

10.4.11. Verification

The Wallet Unit MUST reject a QEAA whose category differs from urn:etsi:esi:eaa:eu:qualified. The Wallet Unit MUST reject a PuB-EAA whose category differs from urn:etsi:esi:eaa:eu:pub. The Wallet Unit MUST validate the qualified signature or seal. The Wallet Unit MUST reject an SD-JWT VC QEAA or PuB-EAA when x5t#S256 differs from the digest of the end-entity certificate in x5c specified in Protected Header. The Wallet Unit MUST reject an SD-JWT VC QEAA or PuB-EAA when x5t#S256 differs from that digest of the certificate retrieved from x5u. For an mdoc, the Wallet Unit MUST apply the comparison already required for x5t in Mobile Security Object Headers. The Wallet Unit MUST validate the issuer certificate chain as specified in Trust Evaluation Process. A QEAA certificate chain ends at the Trusted List of the Qualified Trust Service Provider. A PuB-EAA certificate chain ends at the PuB-EAA Providers List of Trusted Entities. The Wallet Unit MUST reject the attestation outside its technical validity. When the short-lived signal is absent, the status check is specified in Checking Credentials Statuses.

Remote presentation MUST use [OpenID4VP] as profiled by [OPENID4VC-HAIP]. Proximity presentation of an mdoc MUST use [ISO18013-5].

10.4.12. Non-normative Examples

The following examples are non-normative.

SD-JWT VC protected header for a QEAA:

{
    "alg": "ES256",
    "typ": "dc+sd-jwt",
    "kid": "dB67gL7ck3TFiIAf7N6_7SHvqk0MDYMEQcoGGlkUAAw",
    "x5u": "https://issuer.example.org/certs/qeaa.cer",
    "x5t#S256": "bww8YajpegcFcrP8xDisd4AjsxoOxni8pM1bZx_a7n0",
    "x5c": [
        "<Issuer X.509 Certificate>"
    ]
}

SD-JWT VC claims that this section adds, shown without selective-disclosure encoding:

{
    "category": "urn:etsi:esi:eaa:eu:qualified",
    "jti": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
    "also_known_as": "holder-pseudonym-example",
    "oneTime": null
}

The same claims for a PuB-EAA, with category set to urn:etsi:esi:eaa:eu:pub:

{
    "category": "urn:etsi:esi:eaa:eu:pub",
    "jti": "6ba7b811-9dad-11d1-80b4-00c04fd430c8",
    "sub": "NzbLsXh8uDCcd7noWXFZAfHkxZsRGC9Xs"
}

mdoc elements in the namespace org.etsi.01947201.010101 for a QEAA, shown in diagnostic JSON and not as encoded CBOR:

{
    "namespace": "org.etsi.01947201.010101",
    "category": "urn:etsi:esi:eaa:eu:qualified",
    "shortLived": false,
    "oneTime": false
}