coniks-go

module
v0.0.0-...-11acf48 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 22, 2018 License: BSD-3-Clause

README

CONIKS Go

Build Status Coverage Status

http://coniks.org

Overview

CONIKS is a key management system that provides transparency and privacy for end-user public keys. CONIKS protects end-to-end encrypted communications against malicious or compromised communication providers and surveillance by storing users' encryption keys in tamper-evident and publicly auditable key directories on the server side. This allows messaging clients to verify the identity of users automatically, and prevents malicious/compromised servers from hijacking secure communications without getting caught.

This repository provides a Golang implementation of the CONIKS system. The implementation consists of a library, described in the following section, a standalone CONIKS-server and -client, and a registration proxy using this library.

Golang Library

The packages in this library implement the various components of the CONIKS system and may be imported individually.

  • application: CONIKS application-layer library.
  • cli: CONIKS command-line tools (registration bots, key server, and test client).
  • crypto: Cryptographic algorithms and operations
  • merkletree: Merkle prefix tree and related data structures
  • utils: Utility functions
  • protocol: CONIKS protocols implementation/library
  • storage: Hooks for persistent storage backend (currently unused)

Installation

You need to have Golang version 1.9 or higher installed. If Golang is set up correctly, you can simply run:

go get github.com/coniks-sys/coniks-go/...

For usage instructions, see the documentation in their respective packages: CONIKS-server, a simple command-line client, and the registration-proxy.

Disclaimer

Please keep in mind that this CONIKS library is under active development. The repository may contain experimental features that aren't fully tested. We recommend using a tagged release.

API Documentation

https://godoc.org/github.com/coniks-sys/coniks-go

Current Core Developers

Releases of coniks-go will be signed with one of the following GPG keys:

Directories

Path Synopsis
Package application is a library for building compatible CONIKS clients and servers.
Package application is a library for building compatible CONIKS clients and servers.
bots
Package bots implements the CONIKS account verification protocol for first-party identity providers.
Package bots implements the CONIKS account verification protocol for first-party identity providers.
testutil
Package testutil provides utility functions for writing server tests and generating a test server configuration.
Package testutil provides utility functions for writing server tests and generating a test server configuration.
cli
Package cli provides an API to implement various commands for any kind of CONIKS command-line application/executable.
Package cli provides an API to implement various commands for any kind of CONIKS command-line application/executable.
coniksbot
Executable CONIKS registration proxy for Twitter usernames.
Executable CONIKS registration proxy for Twitter usernames.
coniksbot/internal/cmd
Package cmd provides the CLI commands for a CONIKS account verification bot for Twitter accounts.
Package cmd provides the CLI commands for a CONIKS account verification bot for Twitter accounts.
coniksclient
Executable CONIKS test client.
Executable CONIKS test client.
coniksserver
Executable CONIKS key server.
Executable CONIKS key server.
coniksserver/internal/cmd
Package cmd implements the CLI commands for a CONIKS key server.
Package cmd implements the CLI commands for a CONIKS key server.
Package crypto contains the cryptographic routines for CONIKS: hashing, cryptographic commitments, digital signatures, VRF, and random number generation.
Package crypto contains the cryptographic routines for CONIKS: hashing, cryptographic commitments, digital signatures, VRF, and random number generation.
internal/ed25519/edwards25519
Package edwards25519 implements operations in GF(2**255-19) and on an Edwards curve that is isomorphic to curve25519.
Package edwards25519 implements operations in GF(2**255-19) and on an Edwards curve that is isomorphic to curve25519.
sign
Package sign implements a digital signature scheme using the Edwards form of Curve25519.
Package sign implements a digital signature scheme using the Edwards form of Curve25519.
vrf
Package vrf implements a verifiable random function using the Edwards form of Curve25519, SHA3 and the Elligator map.
Package vrf implements a verifiable random function using the Edwards form of Curve25519, SHA3 and the Elligator map.
Package merkletree implements a Merkle prefix tree and related data structures.
Package merkletree implements a Merkle prefix tree and related data structures.
Package protocol is a library for building compatible CONIKS clients and servers.
Package protocol is a library for building compatible CONIKS clients and servers.
Package storage implements hooks for different kinds of persistent storage backends.
Package storage implements hooks for different kinds of persistent storage backends.
kv
Package kv contains a generic interface for key-value databases with support for batch writes.
Package kv contains a generic interface for key-value databases with support for batch writes.
kv/leveldbkv
Package leveldbkv implements the kv interface using leveldb.
Package leveldbkv implements the kv interface using leveldb.
Package utils contains utility functions used in the coniks-go library.
Package utils contains utility functions used in the coniks-go library.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL