A CONIKS implementation in Golang
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
application Pin key server initial STR, load in client (#204) Jul 22, 2018
cli
crypto
internal
merkletree
protocol
storage
utils
.gitignore
.travis.yml
CONTRIBUTING.md
Gopkg.lock
Gopkg.toml
LICENSE
README.md
test_coverage.sh

README.md

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: