TGuard is a web-based sending and decrypting service for irmaseal-encrypted messages that is currently in development at Tweede Golf. TGuard utilizes IRMA to allow an user to encrypt messages client-side. These messages can be decrypted client-side once the receiver proofs to be the owner of attributes the message was encrypted for, like an e-mail address, name or an identifying number.
Tguard supports local running through a docker setup. For this you need to have both docker and docker-compose installed. The application uses a database, which can be initialized with the ./setup.sh
script included. After this, a local copy of the application can be started docker-compose up
, and the tguard website will be localy available at http://tguard.localhost
The easyest way to start developing with this software is using docker-compose. The docker files contain all software neccecary to run the application (eg. Postgres, Nginx, Rust).
Currently we use the following software versions for this project:
- Golang version 1.17
- Rust version 1.57 (see rust:bullseye)
- NGINX version 1.21
- Postgres version 12
- Mailhog version 1.0
In addition to Rust the wasm target and the cargo packages trunk
and wasm-bindgen-cli
must be installed:
rustup target add wasm32-unknown-unknown
cargo install trunk wasm-bindgen-cli
TGuard is written in Rust, both the back-end and the front-end. The front-end is compiled and bundled using trunk and uses the front-end framework yew.
The other Rust libraries used can be found in Cargo.toml
in both the frontend and backend directories.
For a technical overview of IRMA you can consult this resource. IRMA Seal has a technical overview that can be found here.
This project was funded through the NGI0 PET Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme.