Crate lox_library

source ·
Expand description

Implementation of a new style of bridge authority for Tor that allows users to invite other users, while protecting the social graph from the bridge authority itself.

We use CMZ14 credentials (GGM version, which is more efficient, but makes a stronger security assumption): “Algebraic MACs and Keyed-Verification Anonymous Credentials” (Chase, Meiklejohn, and Zaverucha, CCS 2014)

The notation follows that of the paper “Hyphae: Social Secret Sharing” (Lovecruft and de Valence, 2017), Section 4.

Modules

  • The encrypted table of bridges.
  • The various credentials used by the system.
  • Filter duplicate shows of credentials and open invitations by id (which will typically be a Scalar).
  • The migration table.
  • The protocol modules.

Structs

Enums

  • This error is thrown after the MAX_DAILY_BRIDGES threshold for bridges distributed in a day has been reached
  • This error is thrown if the number of buckets/keys in the bridge table exceeds u32 MAX.It is unlikely this error will ever occur.
  • ReplaceSuccess sends a signal to the lox-distributor to inform whether or not a bridge was successfully replaced

Constants

  • TODO: Decide on maximum daily number of invitations to be distributed
  • Number of times a given invitation is ditributed
  • An open invitation is a [u8; OPENINV_LENGTH] where the first 32 bytes are the serialization of a random Scalar (the invitation id), the next 4 bytes are a little-endian bucket number, and the last SIGNATURE_LENGTH bytes are the signature on the first 36 bytes.

Functions