openwallet-foundation-labs / identity-credential

Apache License 2.0
149 stars 76 forks source link

Implement 18013-5 Server Retrieval #403

Open davidz25 opened 8 months ago

davidz25 commented 8 months ago

This entails both wallet-side, reader-side, and server-side code.

For the wallet-side, this would depend on work in Issue #402.

For the reader-side, this would require adding new code to VerificationHelper.

For the server-side, I imagine we can include a simple Servlet (similar to csa-server in the experimental-cloud-secure-area branch) which implements OpenID Connect according to the requirements in 18013-5. This servlet would likely also include a couple of endpoints for our wallet app to a) register a credential with the server; and (maybe) b) obtaining the server retrieval token at presentation time.

We should also check that our wallet implementation works with 3rd party readers. And that our reader works with 3rd party wallets.

davidz25 commented 7 months ago

We should also experiment with having a "self-signed" implementation which implements the server-side bits on the device itself. Of course this only works if the mdoc reader and the mdoc are on the same network (and can access each other) but that's probably good enough for just a demo. This is very similar to how we implement the REST API from 18013-7, that is, appverifier exposes a HTTP endpoint.