- Notifications
You must be signed in to change notification settings - Fork0
A Go implementation of the Callisto protocol
License
ymarcus93/gallisto
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A Go implementation of theCallistoprotocol
This repository contains both a library implementation of the protocol (seeprotocol
folder), and an interactive CLI (seecmd/gallisto
folder).
The CLI is bundled as a release. Download the latest release fromhere
A signed list of checksums is available to verify the authenticity of allreleases. The checksum file (sha256sum.txt
) is signed using the followingMinisign key:RWQiEhl2q3tjeBIvQEjWyR/i/rhJqeuCc0Qjs0tXZqL3X2c221s3Se3n
You can verify the signature and checksums as follows:
$minisign -Vm sha256sum.txt -P RWQiEhl2q3tjeBIvQEjWyR/i/rhJqeuCc0Qjs0tXZqL3X2c221s3Se3n$sha256sum -c sha256sum.txt
Now uncompress the tar file:
$tar -xvf<name-of-release>.tar.gz
And run the cli:
$cd<name-of-release>$./gallisto
The CLI is bundled with a Callisto server (holder of OPRF key) and has thefunctionality to spawn new Callisto clients (submitters of entries).
The CLI is stateless. When the program starts up, new keys for the server andDLOCs/LOCs are created.
The CLI provides an interactive series of menus to execute the protocol. Thereare two main actions: (1) Submit an entry, and (2) Find matches
This command walks the user through a series of questions in order to submit anentry to the server.
When the user asks to submit a new entry, an initial Callisto client is created.For each subsequent submission, the CLI asks if a new client should be created.
If there is more than one available clients, the CLI asks the user which client to use.
This command checks to see if there are any matches on submitted entries.
Recall that in the Callisto protocol, a match between entries can only be foundif more than twodistinct users report the same perpetrator. In thisimplementation, perpetrator IDs are derived from the perpretrator's name.
For a match to be found, use theSubmit an entry command tosubmit an entry with the same perpetrator name using distinct clients.
Once a match has been found, the CLI asks which matches to decrypt. The CLI thenuses the LOC/DLOC private keys to decrypt all entry/assignment data submittedfor the matched perpretrator.
About
A Go implementation of the Callisto protocol