Skip to main content

Protocol Mapping

This page provides a reference table mapping EUDIPLO's internal concepts to their corresponding protocol elements in OID4VCI, OID4VP, and related standards. Use this as a quick lookup when translating between EUDIPLO configuration and protocol-level interactions.


Core Entity Mappingโ€‹

EUDIPLO ConceptProtocol ConceptProtocolNotes
Tenant(no direct equivalent)โ€”Tenant isolation is an EUDIPLO abstraction for multi-tenancy; not visible in protocols
Credential Configurationcredential_configurations_supportedOID4VCIPublished in OID4VCI issuer metadata (.well-known/openid-credential-issuer)
Credential OfferCredentialOffer objectOID4VCIContains credential_issuer, credential_configuration_ids, and grants
Issuance ConfigurationAuthorization server metadataOID4VCIPublished in AS metadata (.well-known/oauth-authorization-server)
Presentation ConfigurationAuthorization Request (DCQL)OID4VPContains presentation_definition, nonce, response_uri, and trust requirements
Sessionissuer_state (issuance) / nonce (presentation)OID4VCI / OID4VPUsed for session correlation; walletNonce for OID4VP
Key ChainSigning/verification key materialAllJWK or X.509 certificate used for signing/verifying JWTs, CWTs, status lists, etc.
Trust Listtrusted_authorities (ETSI TL / OpenID Federation)OID4VPSpecifies which issuers are trusted when verifying credentials
Status ListOAuth Token Status ListOID4VCI / OID4VPRevocation/suspension status encoded as JWT or CWT
Attribute Provider(no direct equivalent)โ€”EUDIPLO abstraction for external claim sources; not part of OID4VCI spec
Webhook Endpoint(no direct equivalent)โ€”EUDIPLO abstraction for notification delivery; not part of core protocols

Issuance Flow Mappingโ€‹

EUDIPLO ConceptProtocol ConceptProtocol ElementNotes
Credential Offer CreationCredential offer generationPOST /offers (EUDIPLO API)Returns credential_offer_uri or credential_offer JSON
Authorization RequestOAuth 2.0 authorization requestGET /authorizeRedirects wallet to AS for user authentication
Authorization CodeOAuth 2.0 authorization codecode parameter in callbackExchanged for access token at /token
Access TokenOAuth 2.0 access token (JWT)access_tokenContains issuer_state, cnf.jkt (DPoP), client_id
DPoP ProofDemonstrating Proof-of-PossessionDPoP headerJWT signed by wallet's key proving possession
Wallet AttestationOAuth Client AttestationOAuth-Client-Attestation / OAuth-Client-Attestation-PoP headersProves wallet provider trustworthiness
Credential RequestCredential requestPOST /credentialWallet requests credential using access token and proof
Credential ResponseCredential responseJSON response with credential fieldContains SD-JWT VC or mDOC credential
Batch IssuanceBatch credential requestcredential_requests arrayMultiple credentials in one request
Deferred CredentialDeferred credential issuancetransaction_idWallet polls /deferred for credential availability
NotificationNotification endpointPOST /notificationWallet notifies EUDIPLO of credential acceptance/rejection

Presentation Flow Mappingโ€‹

EUDIPLO ConceptProtocol ConceptProtocol ElementNotes
Presentation Request CreationAuthorization request generationPOST /verifier/offer (EUDIPLO API)Returns request_uri for wallet to dereference
Presentation RequestOID4VP authorization requestGET /request/{id}Contains DCQL query, trusted authorities, and security parameters
DCQL QueryDigital Credentials Query Languagedcql_query in presentation_definitionSpecifies required credentials, formats, claims, and value constraints
Trusted AuthoritiesTrust anchorstrusted_authorities arrayETSI TL or OpenID Federation trust roots
Wallet ResponseVP Token submissionPOST /direct_post.jwtWallet posts encrypted VP Token
VP TokenVerifiable Presentation Token (JWT)vp field in JWTContains presented credentials and wallet signature
JWE EncryptionJWE-encrypted responseresponse parameter (JWE)VP Token encrypted to verifier's public key
Response CodeSame-device redirect code (ยง13.3)response_code query parameterOne-time code to prevent session fixation
Wallet NonceSession identifier (ยง13.3)nonce claim in authorization requestWallet-facing identifier distinct from internal session ID
Verification Result(no direct equivalent)Webhook payloadEUDIPLO sends result to configured webhook endpoint

Credential Format Mappingโ€‹

EUDIPLO ConceptProtocol ConceptFormat IdentifierNotes
SD-JWT VCSelective Disclosure JWT Verifiable Credentialdc+sd-jwtJWT with selective disclosure and key binding
mDOCMobile Document (ISO 18013-5)mso_mdocCBOR-encoded document signed with CWT (COSE)
VCT (SD-JWT VC)Verifiable Credential Typevct claim in JWTType identifier (e.g., urn:eu:diploma)
DocType (mDOC)Document Typedoctype claim in CBORType identifier (e.g., org.iso.18013.5.1.mDL)
Credential FieldsClaim definitionsclaims array in credential configurationPath, type, display, selective disclosure policy
Selective DisclosureSD-JWT disclosures_sd claim and disclosure tilde-separated suffixHidden claims revealed via disclosures
Key BindingKey binding JWT (SD-JWT VC)Final segment after tildesProves wallet's possession of credential

Trust and Security Mappingโ€‹

EUDIPLO ConceptProtocol ConceptProtocol ElementNotes
Trust List (ETSI TL)ETSI Trusted Listtype: "etsi_tl" in trusted_authoritiesJWT-encoded trust list of trusted issuers
Trust List (OpenID Federation)OpenID Federation Entity Statementtype: "openid_federation" in trusted_authoritiesFederation metadata and trust chains
Trust List Key ChainTrust list signing keyJWK or X.509 in verifierKey / verifierX509DerUsed to verify trust list JWT signature
Status ListOAuth Token Status Liststatus claim in credentialReferences status list JWT and bit index
Status List IndexBit index in status liststatus_list.idxPosition in status list bit array
Status List URIStatus list JWT URLstatus_list.uriWhere to fetch the status list JWT
Revocation StatusStatus bit value0x01Credential is revoked (permanently)
Suspension StatusStatus bit value0x02Credential is suspended (temporarily)
Certificate ChainX.509 certificate chainx5c header in JWT or COSELeaf certificate first, then intermediates/root
DPoP Key ThumbprintDPoP confirmation claimcnf.jkt in access tokenSHA-256 thumbprint of DPoP public key

Authorization Server Mappingโ€‹

EUDIPLO ConceptProtocol ConceptProtocol ElementNotes
Built-in ASEmbedded OAuth ASEUDIPLO-hosted AS endpointsMinimal AS for development/testing
External ASExternal OAuth ASCustom AS with issuer_state supportRequires AS modifications
Chained ASOAuth AS facadeEUDIPLO-hosted AS that delegates to upstream OIDCNo upstream AS modifications required
OID4VP-Based ASCredential-to-credential authorizationOID4VP presentation as authenticationProve existing credentials before issuance
PAR EndpointPushed Authorization RequestPOST /parWallet pushes authorization parameters before redirect
Token EndpointOAuth token endpointPOST /tokenExchanges authorization code for access token
Authorization EndpointOAuth authorization endpointGET /authorizeUser authentication and consent

Metadata Discovery Mappingโ€‹

EUDIPLO ConceptProtocol ConceptDiscovery EndpointNotes
Issuer MetadataOID4VCI issuer metadata.well-known/openid-credential-issuerPublished credential configurations and endpoints
AS Metadata (OID4VCI)OAuth AS metadata.well-known/oauth-authorization-serverPublished AS endpoints and capabilities
AS Metadata (Chained)OAuth AS metadata/{tenant}/chained-as/.well-known/oauth-authorization-serverChained AS metadata
Verifier MetadataOID4VP client metadataEmbedded in authorization requestVerifier capabilities (supported formats, algorithms)
JWKS (Issuer)JSON Web Key Set.well-known/jwks.jsonPublic keys for verifying issued credentials
JWKS (AS)JSON Web Key Set/{tenant}/issuer/.well-known/jwks.jsonPublic keys for verifying access tokens

Session and State Mappingโ€‹

EUDIPLO ConceptProtocol ConceptProtocol ElementNotes
Session ID(internal identifier)UUIDNever exposed in protocol; internal correlation only
Issuer StateSession correlation (issuance)issuer_state in credential offer and access tokenCorrelates credential offer with session
Wallet Nonce (OID4VP)Session correlation (presentation)nonce in authorization requestWallet-facing session identifier (ยง13.3)
Response Code (OID4VP)Same-device redirect coderesponse_code in redirect URIOne-time code for same-device flows (ยง13.3)
Session Status(internal state)active, fetched, completed, expired, failedTracks session lifecycle
Session ConsumedReplay prevention flagconsumed: truePrevents double-spending of sessions
Session TTLExpiration policyexpiresAt timestampSessions expire based on tenant config

API Mappingโ€‹

EUDIPLO ConceptProtocol ConceptEUDIPLO EndpointNotes
Create Credential OfferGenerate credential offerPOST /api/issuer/offerReturns credential_offer_uri
Create Presentation RequestGenerate authorization requestPOST /api/verifier/offerReturns request_uri
Fetch Credential OfferDereference credential offerGET /{tenant}/issuer/offers/{id}Returns CredentialOffer JSON
Fetch Presentation RequestDereference authorization requestGET /{tenant}/verifier/request/{id}Returns authorization request JSON
Token EndpointOAuth token exchangePOST /{tenant}/issuer/tokenExchanges code for access token
Credential EndpointCredential issuancePOST /{tenant}/issuer/credentialIssues credential
Deferred EndpointDeferred credential retrievalPOST /{tenant}/issuer/deferredRetrieves deferred credential
Notification EndpointWallet notificationPOST /{tenant}/issuer/notificationReceives credential acceptance/rejection
Direct Post EndpointVP Token submissionPOST /{tenant}/verifier/direct_post.jwtReceives encrypted VP Token

Next Stepsโ€‹