Skip to content

Commit c921d57

Browse files
authored
Add CS-05: Business Wallet Unit Attestation (BWUA) Lifecycle (v0.9) (#285)
* Add CS-05: Business Wallet Unit Attestation (BWUA) Lifecycle (v0.9 draft) * cs-05: fix typo in 6.5.1 ('One another' -> 'One other') * cs-05: point provisioning-cadence cross-refs in 5.2 and 6.3 at section 6.6 * cs-05: add figures and the Annex B.3 binding sequence Add three diagrams and wire them into the sections they illustrate, following the CS-04 figure conventions (captions live in the Markdown, not in the images): - Figure 1 (5.1) actors and the high-level BWUA issuance and verification - Figure 2 (5.2) BWUA (BWIA/SKA) attestation lifecycle - Figure 3 (6.5.1) discovery of a Credential Offer Endpoint for a BWU The figures are referenced with an explicit display width so they render at a consistent size on GitHub, and the PNGs are downscaled to twice that width to stay crisp without carrying multi-megapixel sources. Add a mermaid sequence diagram for Annex B.3 (Figure B.1), mirroring CS-04 Annex B, covering key binding at issuance and holder binding at presentation for a server-hosted wallet. Refs #177 * cs-05: add the editable Excalidraw sources for the figures Keep the Excalidraw scenes alongside the exported PNGs so the figures in sections 5.1, 5.2 and 6.5.1 can be revised without redrawing them: - bwua-actors-interactions.excalidraw - bwua-lifecycle-states.excalidraw - bwua-discovery-model.excalidraw Each scene matches its committed PNG. Soft-deleted elements left behind by editing are stripped, so the file contains only what the figure shows. Refs #177 * cs-05: expiry in 5.2 applies to the SKA as well as the BWIA Section 7.1 requires each SKA to be issued with a short token-level time-to-live comparable to the BWIA, so the Expired state is reached by either attestation, not by the BWIA alone. Addresses review feedback from @eklaver on PR #285. Refs #177 * cs-05: single-use in 5.4 is a BWU behaviour the provider ensures The Business Wallet Provider controls how long a BWIA lives, but using it only once is something the BWU does, so the responsibility reads as ensuring the BWU treats each BWIA as single-use rather than as a property the provider sets directly. Addresses review feedback from @eklaver on PR #285. Refs #177 * cs-05: require the Issuer to check the provider certificate against the Trust List Section 7.3 required only that the Issuer verify the signature on the BWIA and SKA, which on its own proves nothing about who signed them: iss is omitted from both attestations by design, so the Business Wallet Provider is identified solely by the x5c certificate chain. Without a Trust List check an Issuer could accept a BWUA signed by any key, including a self-signed one. Add the chain check as the first Issuer obligation, before signature and status verification, and renumber the rest of the list. Note in section 2 that CS-05 requires the check but leaves the establishment, population and discovery of the Trust List to be handled separately, so the new requirement does not contradict the scope exclusion. Adopt "Wallet Provider Trust List" as the term and align the three existing references in Annex B, which already assumed this check. Addresses review feedback from @eklaver on PR #285. Refs #177 * cs-05: take natural-person co-signing out of scope and drop the MLS construction The MLS group construction was not testable as a normative requirement. No standard profiles MLS with OAuth DPoP, and the property it was there to provide is already delivered elsewhere: section 7.3 item 4 requires the natural person's presentation to be holder-bound into the same issuance session carrying the session freshness value, and the fresh Authorization Server nonce together with the single-use BWIA cover replay. Co-signature is in any case a signing concern rather than an attestation-lifecycle one. Add co-signature by a natural person to the out-of-scope list in section 2, and remove the construction from sections 5.3, 6.4 and 7.3, including the BWU obligation to establish an MLS group. Renumber the remaining BWU obligation in 7.3. Drop the CS-03 cross-reference from the closing paragraph of 6.4. It was wrong: CS-03 covers remote qualified signing and says nothing about MLS or co-signing. Remove RFC 9420 from the references and renumber SD-JWT-VC to [15] and RFC 7800 to [16], updating the Annex B citations. Also drop the co-signing clause from Annex B.3, which pointed at the session-level construction in section 5.3 that this change removes. Addresses review feedback from @sander on PR #285. Refs #177 * cs-05: note the status of Annex C and tighten its opening Annex C records the Credential Offer Endpoint Registry and Lookup Service as currently built, following adr/ebw-endpoint-lookup-service.md. It covers one use case, an Issuer reaching a business wallet with no browser session and no user present to scan a QR code, and it is not a specification of the WE BUILD Digital Directory as a whole. State that plainly at the head of the annex: it is informative rather than normative, wider directory requirements are expected to be specified separately, and the annex will be revisited in a subsequent iteration of CS-05. Record that section 7.4 depends on a Registry Management API and a Lookup Service API existing but not on the paths, payloads or scopes given here, so refining the annex later does not disturb section 7. Drop the opening clause of the following paragraph, which hedged the same point more weakly than the note now states it. Addresses review discussion with @eklaver and @sander on PR #285. Refs #177 * cs-05: release as version 1.0 and refresh the sibling spec citations Set the version to 1.0 and drop the Draft marker now that the specification has been reviewed and approved, dating it 05-August-2026 in the same form CS-04 uses. Move CS-005 from WBCSs Under Development to Approved WBCSs in the conformance-specs README, at version 1.0. Bring the sibling specification references up to the current versions. The entries were carried over from CS-04 and had gone stale: CS-01 Credential Issuance is at version 1.2 and CS-03 Remote Qualified Signing with Wallet Units is at version 1.2. Correct the year on the CS-01 entry to match. CS-02 at version 1.1 and CS-04 at version 1.0 were already current. Refs #177
1 parent 757f969 commit c921d57

8 files changed

Lines changed: 3837 additions & 1 deletion

conformance-specs/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,12 @@ graph TB
5656
| CS-002 | [Credential Presentation - v1.0](cs-02-credential-presentation.md) |
5757
| CS-003 | [Remote Qualified Signing with Wallet Units - v1.0](cs-03-remote-signing-with-wallet-units.md) |
5858
| CS-004 | [Individual Wallet Unit Attestation (WUA) Lifecycle - v1.0](cs-04-wua-lifecycle.md) |
59+
| CS-005 | [Business Wallet Unit Attestation (BWUA) Lifecycle - v1.0](cs-05-bwua-lifecycle.md) |
5960

6061
### WBCSs Under Development
6162

6263
| **WBCS #** | **WBCS Title** |
6364
| -------- | ------------ |
64-
| CS-005 | [European Business Wallet Unit Attestation (BWUA) Lifecycle](https://github.com/webuild-consortium/wp4-architecture/issues/177) |
6565
| CS-006 | [Issuance of Relying Party Access and Registration Certificates](https://github.com/webuild-consortium/wp4-architecture/issues/190) |
6666
| CS-007 | [Credential Presentation and Issuance via the Digital Credentials API (Pre-flight)](cs-07-credential-presentation-dc-api.md) |
6767

conformance-specs/cs-05-bwua-lifecycle.md

Lines changed: 1257 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)