https://github.com/crocs-muni/meesign-client
https://github.com/crocs-muni/meesign-client
cryptography flutter multiparty-computation threshold-signature
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/crocs-muni/meesign-client
- Owner: crocs-muni
- Created: 2021-12-13T13:00:35.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-12-12T09:41:44.000Z (6 months ago)
- Last Synced: 2025-12-13T21:48:05.451Z (6 months ago)
- Topics: cryptography, flutter, multiparty-computation, threshold-signature
- Language: Dart
- Homepage: https://meesign.crocs.fi.muni.cz/
- Size: 3.55 MB
- Stars: 9
- Watchers: 3
- Forks: 6
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MeeSign Client
An open-source tool for multi-party document signing, client for [MeeSign Server](https://github.com/crocs-muni/meesign-server).
To learn more about MeeSign, visit [our website](https://meesign.crocs.fi.muni.cz/).
## Build
1. [Install Flutter](https://flutter.dev/docs/get-started/install), be sure to also follow the instructions for the platform you want to build for, i.e. **enable desktop support or set up Android SDK** (all described on the same page). At the moment, the following targets are supported: **Linux, Windows, Android**
2. [Install Rust](https://www.rust-lang.org/tools/install)
1. Android only:
1. Add Android targets for cross-compilation
```bash
rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android i686-linux-android
```
2. Point cargo to the linker provided by Android NDK, a helper script for generating the necessary configuration is provided in [tool/cargo-config-gen-android.sh](tool/cargo-config-gen-android.sh), append the output to your [cargo configuration file](https://doc.rust-lang.org/cargo/reference/config.html#hierarchical-structure), e.g. by:
```bash
ANDROID_NDK_HOME="path/to/ndk/version" ANDROID_API="30" bash ./tool/cargo-config-gen-android.sh >> ~/.cargo/config.toml
```
3. Clone the repository:
```bash
git clone https://github.com/crocs-muni/meesign-client --recurse-submodules
```
4. Copy MeeSign CA certificate to `assets/ca-cert.pem`
If you have a local build of MeeSign server, the corresponding file is placed in `keys/meesign-ca-cert.pem`.
5. Build the app:
```bash
flutter build
```
or run it directly:
```bash
flutter run
```
### Options
The build can be customized by passing `--dart-define=OPTION=VALUE` to `flutter run` or `flutter build`, see `flutter run --help` for more details. The following definitions are considered:
* `ALLOW_BAD_CERTS`: If `true`, certificate checks are skipped and any server certificate is accepted.
## Card Support
For increased security, the app can optionally transfer the user's private key share in the given group to a smart card. To use this feature, install a supported applet on your card and select the appropriate protocol when creating a new group.
Supported applets:
* [JCFROST](https://github.com/crocs-muni/JCFROST)
## Acknowledgements
* This work was supported by the Ministry of the Interior of the Czech Republic under grant VJ01010084 in program IMPAKT I.