Package: pyeudiw
eudi-wallet-it-pythonThe EUDI Wallet Python toolchain is a suite of Python libraries designed to
make it easy the implementation of an EUDI Wallet Relying Party according
to theItalian Wallet implementation profile.The toolchain contains the following components:NameDescriptionjwkJSON Web Key (JWK) according toRFC7517.jwtSigned and encrypted JSON Web Token (JWT) according toRFC7519,RFC7515andRFC7516tools.qrcodeQRCodes creationoauth2.dpopTools for issuing and parsing DPoP artifacts, according toOAuth 2.0 Demonstrating Proof-of-Possession at the Application Layer (DPoP)federationTrust evaluation mechanisms, according toOpenID Federation 1.0trustHelper classes to handle both X.509 and OpenID Federation trust evaluation mechanismssatosa.backendSATOSA Relying Party backend, according toOpenID for Verifiable Presentationsopenid4vpClasses and schemas related toOpenID for Verifiable Presentationspresentation_exchangeResources related toDiF Presentation Exchangesd_jwtIssuance and verification of SD-JWT according toSelective Disclosure for JWTs (SD-JWT)SetupInstall enviroment and dependenciessudo apt install python3-dev python3-pip git
sudo python3 -m pip install --upgrade pip
sudo python3 -m pip install virtualenvActivate the environment. It's optional and up to you if you want to install
in a separate env or system widevirtualenv -p python3 env
source env/bin/activateInstall using pip:pip install pyeudiworpip install pyeudiw[satosa]for the satosa backend.Install using github:pip install git+https://github.com/italia/eudi-wallet-it-pythonOptionally for generate the documentation you need to install the following packages:pip install sphinx sphinx_rtd_themeDocumentationThe API documentation is available in the githubpages,here.In thedocs/folder there are some common example for some specific tasks.Build the DocumentationFor generate the documentaation enter in the terminal the following commands.
The last argument is the exclude path, unit tests are then excluded from the API documentation.cd docs
sphinx-apidoc -o ./source ../pyeudiw ../pyeudiw/tests
make htmlExample projectThe example project is a docker-compose that runs a demo composed by the following component:Wordpress with SAML2 support and Bootstrap Italia template preregistered to the IAM Proxy.Satosa-Saml2SpidIAM Proxy with a preconfigured OpenID4VP backend.Please readthis READMEto get a fully working Wordpress setup with SAML2 support.SatoSa configurationSaToSais a general purpose IAM
proxy solution that allows interoperability between different entities that implements different
authentication protocols such as SAML2, OpenID Connect and OAuth2. This project offers a SaToSa
backend to enable the OpenID4VP protocol.Please read thisREADMEany details about how to configure SaToSa with the OpenID4VP Relying Party backend.ContributeYour contribution is welcome, no question is useless and no answer is obvious, we need you.Contribute as end userPlease open an issue if you've found a bug or if you want to ask some features.Contribute as developerPlease open your Pull Requests on thedevbranch.
Please consider the following branches:main: where we merge the code before tag a new stable release.dev: where we push our code during development.other-custom-name: where a new feature/contribution/bugfix will be handled, revisioned and then merged to dev branch.AuthorsGiuseppe De MarcoPasquale De RoseAlessio MurruSalvatore LaisoNicola Saitto