Skip to content

feat: add support for iso 18013-7 dc api - #2922

Open
TimoGlastra wants to merge 11 commits into
mainfrom
feat/iso-18013-7-dc-api
Open

feat: add support for iso 18013-7 dc api#2922
TimoGlastra wants to merge 11 commits into
mainfrom
feat/iso-18013-7-dc-api

Conversation

@TimoGlastra

Copy link
Copy Markdown
Contributor

Adds support for creating mdoc verification sessions for the org-iso-mdoc protocol over DC API. This has been tested on both iOS and Android and can be used with e.g. the expo-digital-credentials-api library (see animo/expo-digital-credentials-api#8).

DC API requires HPKE, this is not supported by Askar or Node.JS natively, so we use the hpke library for this. We still use the raw ECDH key from askar, so we don't have to export the private key (only the derived key). We do require @panva/hpke-noble for the other features in the Askar KMS, so it works in both RN And Node.JS. The Node KMS depends on the Node crypto. (there's an issue open in Askar to support HPKE).

HPKE will probably see more usages in the future (e.g. OpenID4VP/HAIP will also adopt it), and now we have a generalized implementation.

Since this adds a new protocol on the verifier side, it introduces new exchange records.

ScreenRecording_08-28-2026.12-04-22_1.MP4

@TimoGlastra
TimoGlastra requested a review from a team as a code owner August 29, 2026 14:29
@changeset-bot

changeset-bot Bot commented Aug 29, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 18cff53

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 18 packages
Name Type
@credo-ts/core Patch
@credo-ts/drizzle-storage Patch
@credo-ts/askar Patch
@credo-ts/node Patch
@credo-ts/openid4vc Patch
@credo-ts/action-menu Patch
@credo-ts/anoncreds Patch
@credo-ts/askar-to-drizzle-storage-migration Patch
@credo-ts/cheqd Patch
@credo-ts/didcomm Patch
@credo-ts/drpc Patch
@credo-ts/hedera Patch
@credo-ts/indy-vdr Patch
@credo-ts/question-answer Patch
@credo-ts/react-native Patch
@credo-ts/redis-cache Patch
@credo-ts/tenants Patch
@credo-ts/webvh Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Signed-off-by: Timo Glastra <timo@animo.id>
Signed-off-by: Timo Glastra <timo@animo.id>
Signed-off-by: Timo Glastra <timo@animo.id>
Signed-off-by: Timo Glastra <timo@animo.id>
Signed-off-by: Timo Glastra <timo@animo.id>
Signed-off-by: Timo Glastra <timo@animo.id>
Comment thread packages/core/src/modules/mdoc/MdocDcApiService.ts
Comment thread packages/core/src/modules/mdoc/MdocService.ts
Comment thread packages/core/src/modules/mdoc/MdocDcApiService.ts Outdated
…request

Update @owf/mdoc, @owf/cose and @owf/token-status-list to the latest
releases. The DC API verifier now matches the response against the device
request of the session, and Mdoc.sign accepts keyAuthorizations for device
signed elements.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: TimoGlastra <timo@animo.id>
Signed-off-by: TimoGlastra <timo@animo.id>

# Conflicts:
#	packages/core/package.json
#	packages/drizzle-storage/migrations/core/postgres/meta/0004_snapshot.json
#	packages/drizzle-storage/migrations/core/postgres/meta/_journal.json
#	packages/drizzle-storage/migrations/core/sqlite/meta/0004_snapshot.json
#	packages/drizzle-storage/migrations/core/sqlite/meta/_journal.json
#	packages/drizzle-storage/migrations/core/sqlite/migrations.js
#	pnpm-lock.yaml
@TimoGlastra
TimoGlastra force-pushed the feat/iso-18013-7-dc-api branch from 4c8baea to 9611e3b Compare September 10, 2026 12:34
Signed-off-by: TimoGlastra <timo@animo.id>
@@ -0,0 +1,29 @@
---

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: the other changelog entries don't do line wrapping, this one does.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants