Skip to content

Flock, a traffic analysis resistant multi-user file-transfer protocol

License

Notifications You must be signed in to change notification settings

alex-dot/flock-protocol

Repository files navigation

Flock Protocol Specification

The Flock protocol is specified in the two files flock.md (the actual specification) and flock_fsm.xml a finite-state machine representation of the specification.

Additionally, this folder provides a Makefile to generate

  • a flow diagram visualizing the state machine
  • a latex-style pdf of the specification
  • a C-library implementing the state machine

Needed packages

The following packages are needed to generate the above:

graphviz, pdflatex, gsl

To install gsl follow the instructions at https://github.com/imatix/gsl

Additionally, to make cross-references work, pandoc-crossref is needed, and for bibliography generation, pandoc-citeproc is needed. Unfortunately the first is a Haskell script and needs the Haskell platform to work. However there are plans to include this feature in pandoc itself (jgm/pandoc#813). Note that installing that filter will also install pandoc through Haskell. Also note that when using cabal install, all programs will be installed locally per-user, so you might want to add ~/.cabal/bin to your PATH.

Generation usage

Simply run make all-clean to generate the above or make all to keep all intermediate output files (mostly latex related).

To only generate the diagram run make make-image and to only generate the pdf (with the diagram) run make make-pdf.

To only generate the C-library run make make-code.

Licensing

The protocol in form of flock.md and in form of flock_fsm.xml, and the documents generated by the Makefile are released under the GPLv3 (or later) license. See LICENSE.

The gsl scripts are released under the MPL 2.0.

The file acm-sig-proceedings.csl is released under the CC-BY-SA-3.0 license by the CSL project (https://CitationStyles.org).

About

Flock, a traffic analysis resistant multi-user file-transfer protocol

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published