This is a work-in-progress prototype providing a relying party backend as counterpart for an EUDI wallet app.
This repository is a fork from the EU Digital Identity Wallet project. The main changes are:
- Add functionality for an Zero-Knowledge Proof, providing the necessary information.
- Add verification of the tokens received from the wallet app.
This project has been developed as part of the SPRIND EUDI Wallet Prototypes Challenge. The approach is based on variant C of the German Architecture Proposal (Version 2). In addition a Zero-Knowledge-Proof (ZKP)mechanism has been implemented in order for the wallet to disclose the credentials in a way that enables pausible deniability against third parties.
This backend is able to handle requests by frontend and apps to showcase the whole presentation flow - with and without Zero-Knowledge Proof.
See more details in the [README from the forked repository](Upstream-README.md].
The components of the EU Reference Implementation have been used as a foundation as much as possible. In order to apply adjustments and feature additions (see above), the repo has been forked. We would love to contribute the changes that have some value to the community once the challenge is concluded.
The ZKP operations are integrated via ZKP.
Since this application is just for demonstration purposes, the presentation definition and parsing of the received data is done by the frontend. This is done to be able to demonstrate different scenarios, but should not be used in production.
This backend can be used by wallet apps using the OpenId4VP protocol. The ZKP is not yet part of that, but is implemented in those wallet apps:
To run the application, the public key for the issuer is needed (without header and footer (i.e. BEGIN
and END
lines) and injected as environment variable ISSUER_CERT
.
Having that, just clone the repository and build and run the application using Gradle:
ISSUER_CERT=[...] ./gradlew bootRun
The software in this repository is still under development and not intended to be used in production.
Copyright 2024 TICE GmbH
This project is licensed under the Apache v2.0 License.