Add support for presentment of SD-JWT VCs via the W3C DC API. #890
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a complicated change with several steps
Rename Claim, MdocClaim, VcClaim to in the .request package to RequestedClaim, RequestedMdocClaim, RequestedVcClaim to better reflect it's used for a request (no value is provided) and to free up these names.
Introduce Claim, MdocClaim, VcClaim which is used to model the claims / data elements in a credential.
Add new Credential.getClaims() method to get all the claims in a credential. This involves requiring each concrete Credential subclass to specify how issuer-provided data is formatted b/c getClaims() now depends on it. We already have this for SD-JWT, add this for ISO mdoc and make it so it's the same format as used in OpenID4VCI: IssuerSigned CBOR according to ISO/IEC 18013-5:2021. This makes Credential and SecureAreaBoundCredential abstract so update unit tests for this.
To make it easier to work with IssuerSigned CBOR, introduce new class IssuerNamespaces, IssuerNamespacesBuilder, and IssuerSignedItem classes and add support for this in DocumentGenerator and MobileSecurityObjectGenerator.
Extend DocumentType.addAttribute() to take different values for ISO mdoc and VC sample values.
This allows us to now remove nameSpacedData from DocumentMetadata.
Add new RenderClaimValue() composable to render a MdocClaim / VcClaim
Add new screens in testapp (DocumentViewerScreen, CredentialViewerScreen, CredentialClaimsViewerScreen) to show docouments, credentials, and claims.
Use this new machinery for presentment and exporting to the W3C DC API for both ISO mdoc and IETF SD-JWT credentials.
Update Credman matcher to support IETF SD-JWT credentials.
Update EUPersonalID to latest ARF (version 1.5)
Make DrivingLicense mdoc-only (according to ARF it should only be a mdoc)
Update JsonWebEncryption.encrypt to take APU and APV as strings.
Test: Manually tested (both samples/testapp and wallet module)
Test: New unit tests and all unit tests pass.