[BREAKGLASS] Append-only mirror of github.com/signalapp/signal-zkgroup-node
Go to file
2021-09-29 15:41:36 -05:00
dist Update repository to zkgroup 0.8.2 2021-09-29 15:41:36 -05:00
zkgroup Update repository to zkgroup 0.8.2 2021-09-29 15:41:36 -05:00
.gitignore Initial artifact commit 2020-02-27 11:53:34 -08:00
index.ts Update repository to zkgroup v0.8.0 2021-09-24 17:20:50 -05:00
libzkgroup-x64.dll Update repository to zkgroup 0.8.2 2021-09-29 15:41:36 -05:00
libzkgroup-x64.dylib Update repository to zkgroup 0.8.2 2021-09-29 15:41:36 -05:00
libzkgroup-x64.so Update repository to zkgroup 0.8.2 2021-09-29 15:41:36 -05:00
LICENSE Initial artifact commit 2020-02-27 11:53:34 -08:00
package-lock.json Update repository to zkgroup 0.8.2 2021-09-29 15:41:36 -05:00
package.json Update repository to zkgroup 0.8.2 2021-09-29 15:41:36 -05:00
README.md Update repository to zkgroup v0.8.0 2021-09-24 17:20:50 -05:00

Library for the Signal Private Group System.

Work in progress. Subject to change without notice, use outside Signal not yet recommended.

Overview

This library provides zero-knowledge group functionality through several layers of APIs. From lower-level to higher-level:

  • internal.rs provides the actual Rust implementations, based on Rust structures.

  • simpleapi.rs provides wrapper functions around internal.rs functions that use serde to serialize/deseralize byte arrays into Rust structures.

  • ffiapi.rs and ffiapijava.rs provide wrapper functions around simpleapi.rs functions to export them via C and JNI, respectively.

  • The subdirectories under ffi contain code in various host languages for accessing the exported functions:

    • Under c is a zkgroup.h header file.

    • Under android is a ZKGroup.java file and instructions for building an aar.

    • Under node is some example code for declaring the FFI functions in javascript.

Setup

The rust-toolchain.toml file should get things automatically setup for you provided you are using rustup. See it for the toolchain and channel and targets in use for this build.

Building Rust

Run ./gradlew tasks and see make tasks under the "Rust tasks" group.