Skip to content

agl/pond

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9d341e1 · Nov 27, 2014
May 12, 2013
Jan 21, 2013
Nov 27, 2014
Sep 22, 2013
Sep 22, 2014
Jan 18, 2014
Jun 29, 2014
Feb 21, 2014
Nov 16, 2013
Jul 6, 2014
Sep 12, 2014
Dec 25, 2012
Nov 9, 2014
Dec 21, 2013
Jul 13, 2013
Dec 21, 2013
Dec 23, 2013
Nov 17, 2014
Nov 17, 2014
Nov 22, 2012

Repository files navigation

Pond

(Or, how to better organise a discreet relationship with the Director of the CIA.)

At this point, I welcome technical feedback on the design and comments from the sort of (often non-technical) folks who need this sort of thing about whether it actually meets their needs.

For details, see the main website.

The code here is broken down as follows:

  • bbssig contains an implementation of the BBS group signature scheme. This is used in Pond to allow servers to reject messages from non-contacts without the server being able to identify those contacts.
  • bn256cgo contains a wrapping of Naehrig, Niederhagen and Schwabe's pairing library. This is a drop in replacement for the bn256 package from go.crypto and speeds up bbssig. See https://github.com/agl/dclxvi.
  • client contains the Pond GUI and CLI client and package for manipulating state files.
  • doc contains the https://pond.imperialviolet.org site in Jeykll format.
  • editstate contains a debugging utility for manipulating state files.
  • panda contains a library for performing shared-key exchanges. It's used by client/ to implement that functionality.
  • protos contains the protocol buffer files for client to server communication.
  • server contains the Pond server.
  • transport contains code to implement the, low-level, client to server transport protocol.