Skip to content

feat(join): join-as-subject + paste-a-VIC; subject-linkage groundwork#129

Merged
stormer78 merged 1 commit into
mainfrom
vic-followups
Jun 17, 2026
Merged

feat(join): join-as-subject + paste-a-VIC; subject-linkage groundwork#129
stormer78 merged 1 commit into
mainfrom
vic-followups

Conversation

@stormer78

Copy link
Copy Markdown
Contributor

Summary

Applicant-side follow-ups to the VIC join flow. Companion to verifiable-trust-infrastructure #526.

What's included

#1a — Join as the VIC subject. When a loaded (--invitation) or pasted invitation is bound to one of our personas, the join flow presents that persona automatically — holder-binding then matches at the VTC (presenter == VIC subject) with no linkage proof needed.

#3 — Paste a VIC into the TUI. Pasting a JSON object on the join entry page is treated as an invitation credential: validated (must be an InvitationCredential) and stashed into the join flow, mirroring the --invitation <file> flag. The entry page shows a paste hint and the loaded-invitation indicator.

#1b groundwork. openvtc_core::join::build_join_vp now takes an optional SubjectLinkage; added SUBJECT_LINKAGE_DOMAIN_TAG (byte-matches the VTC's), subject_linkage_signing_bytes, and invitation_subject / invitation_id extractors. Unit-tested.

Remaining (groundwork in place; VTC + SDK already support both)

Tests

openvtc-core join helpers unit-tested (5); binary builds; fmt clean.

🤖 Generated with Claude Code

@stormer78 stormer78 requested a review from a team as a code owner June 17, 2026 12:38
#1a Join as the VIC subject: when a loaded/pasted invitation is bound to one of
our personas, the join flow presents that persona automatically (holder-binding
then matches at the VTC — presenter == VIC subject — with no linkage proof).

#3 Paste a VIC into the TUI: pasting a JSON object on the join entry page is
treated as an invitation credential — validated (must be an InvitationCredential)
and stashed into the join flow, mirroring the `--invitation <file>` flag. The
entry page shows a paste hint, and the loaded-invitation indicator on success.

openvtc-core groundwork for the linkage path (#1b): `build_join_vp` now takes an
optional `SubjectLinkage`; added `SUBJECT_LINKAGE_DOMAIN_TAG` (matches the VTC),
`subject_linkage_signing_bytes`, and `invitation_subject` / `invitation_id`
extractors. Unit-tested.

Remaining (groundwork in place; VTC + SDK already support both): build the
subject-linkage signature in the join flow for a fresh presenting DID (#1b),
and load/store the VIC via the VTA credential vault (cred_vault_*) instead of
the file/paste path (#2).

Signed-off-by: Glenn Gore <glenn.g@affinidi.com>
@stormer78 stormer78 merged commit 9322fe4 into main Jun 17, 2026
8 of 13 checks passed
@stormer78 stormer78 deleted the vic-followups branch June 17, 2026 12:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant