ForkbombEu / mobile_zencode

0 stars 0 forks source link
# Mobile Zencode ### Mobile components implementating [OpenID4VC](https://openid.net/sg/openid4vc/) and [OpenID4VP](https://openid.net/specs/openid-4-verifiable-presentations-1_0.html) based on [Zenroom stack](https://forkbomb.solutions/component/zenroom/) and [Slangroom](https://github.com/dyne/slangroom)

Mobile Zencode is a comprehensive open-source implementation of the OpenID4VC "OpenID for Verifiable Credential" and OpenID4VP "OpenID for Verifiable Presentation" protocols, designed to easily be plugged into an existing mobile application. This project is built using the Zenroom ecosystem (uses Zenroom and Slangroom), incorporating Zencode natural language smart contracts for secure, flexible, and human-readable protocol implementation.

Can be used in connetion with DIDroom_microservices




๐Ÿงฑ Building blocks

๐Ÿšฆ Request to Authorization Server (OAuth 2.0)

REFERENCE RFC6749

Credential Issuers use OAuth 2.0 RFC6749 Authorization Server for access. A single server can protect multiple Issuers, identified via metadata (/.well-known/openid-credential-issuer). All OAuth 2.0 Grant Types and extensions work with the credential issuance API. Unspecified aspects follow [@!RFC6749]. Some tweaks and enhancements are needed although, this extensions include:

For details, refer to the full specification.

๐ŸŽซ Request to Verifiable Credential issuer

OIDC4VCI REFERENCE

The credential issuer is the component that implements the endpoint to issue verifiable credentials in different formats (eg. w3c-vc, iso.18013-5 aka mDL) actually it's agnostic to the format.

API for credential issuance is comprised of the following endpoints

Mandatory

POST /credential
GET /.well-known/openid-credential-issuer
GET /.well-known/openid-configuration

Optionals

GET /credential_offer
GET /authorize
POST /batch_credential
POST /token
POST /op/par
POST /as/par

Core concepts of the issuer:

๐Ÿ‘ Request to Relying Party


### ๐Ÿšฉ Table of Contents - [๐ŸŽฎ Quick start](#-quick-start) - [๐Ÿš‘ Community & support](#-community--support) - [๐Ÿ‹ Docker](#-docker) - [๐Ÿ API](#-api) - [๐Ÿ”ง Configuration](#-configuration) - [๐Ÿ“‹ Testing](#-testing) - [๐Ÿ› Troubleshooting & debugging](#-troubleshooting--debugging) - [๐Ÿ˜ Acknowledgements](#-acknowledgements) - [๐Ÿ‘ค Contributing](#-contributing) - [๐Ÿ’ผ License](#-license)

๐ŸŽฎ Quick start

To start using all the components run the following command in the root folder

make

Then point your browser to the http://localhost:3000/docs to see all the exposed endpoints


๐Ÿš‘ Community & support

๐Ÿ“ Documentation - Getting started and more.

๐ŸŒฑ Ecosystem - W3C-DID Dyne, Signroom, Zenroom, Didroom

๐Ÿšฉ Issues - Bugs end errors you encounter using {project_name}.

[] Matrix - Hanging out with the community.

๐Ÿ—ฃ๏ธ Discord - Hanging out with the community.

๐Ÿช Telegram - Hanging out with the community.

๐Ÿ” back to top


๐Ÿ‹ Docker

You can start it using docker, just have to mount you static file directory

docker pull ghcr.io/forkbombeu/didroom_microservices:latest
docker run -p 3000:3000 -v public:/app/public ghcr.io/forkbombeu/didroom_microservices:latest

Please refer to DOCKER PACKAGES

๐Ÿ” back to top


๐Ÿ API

Available endpoints, TBD

๐Ÿ” back to top


๐Ÿ”ง Configuration

TBD

๐Ÿ” back to top


๐Ÿ“‹ Testing

TBD

๐Ÿ” back to top


๐Ÿ› Troubleshooting & debugging

TBD

๐Ÿ” back to top


๐Ÿ˜ Acknowledgements

Copyleft ๐Ÿ„ฏ 2023 by Forkbomb BV, Amsterdam

Designed, written and maintained by Puria Nafisi Azizi, Andrea D'Intino, Alberto Lerda with contributions of Matteo Cristino.

๐Ÿ” back to top


๐Ÿ‘ค Contributing

Please first take a look at the our Contributor License Agreement then

  1. ๐Ÿ”€ FORK IT
  2. Create your feature branch git checkout -b feature/branch
  3. Commit your changes git commit -am 'feat: New feature\ncloses #398'
  4. Push to the branch git push origin feature/branch
  5. Create a new Pull Request gh pr create -f
  6. ๐Ÿ™ Thank you

๐Ÿ” back to top


๐Ÿ’ผ License

Mobile Zencode 

Copyleft ๐Ÿ„ฏ 2023 Forkbomb BV, Amsterdam

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

๐Ÿ” back to top