Coherence is cryptographic server for modern web apps
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Welcome to (Cryptoserver)

 _______  _____  _     _ _______  ______ _______ __   _ _______ _______
 |       |     | |_____| |______ |_____/ |______ | \  | |       |______
 |_____  |_____| |     | |______ |    \_ |______ |  \_| |_____  |______


"Privacy is the power to selectively reveal oneself to the world". Eric Hughes


"Suitable connection or dependence, consistency" (in narrative or argument), also more literally "act or state of sticking or cleaving of one thing to another".


Cohenrence is cryptographic server, it provides a TCP server whith an json interface to perfom cryptographic operations. It helps you to create your own cryptographic protocols for modern web apps to protect data, for exmaple: data base encryption, digital signatures, file encryption.

Make Javascript do Renders not Cryptography


  • Hash functions: SHA3, SHA2, SHA1, WHIRLPOOL, Blake2b.
  • Password-hashing function: Argon2
  • Stream ciphers: Sosemanuk, Salsa20/20.
  • Block ciphers: AES, RC6, MARS, Twofish, Serpent, CAST-256, Camellia, SPECK, SIMECK.
  • Block ciphers modes: CTR, GCM.
  • Message authentication codes: HMAC(SHA3, SHA2, SHA1, WHIRLPOOL), CMAC(AES, RC6, MARS, Twofish, Serpent, CAST-256, Camellia), VMAC(AES, RC6, MARS, Twofish, Serpent, CAST-256, Camellia), Poly1305.
  • RSA: Key generation, digital signature, encryption.
  • DSA: Key generation, digital signature.
  • DH: Key generation, key exchange (rfc and custom parameters).
  • ECC: Key generation, ECIES, ECDSA, ECDH.
  • Post-Quantum Cryptography: NTRU, Qtesla.

Be careful qtesla is not an standard yet and is experimental, We are including Qtesla as previous feature from experimental branch

If you are looking for Post-Quantum Cryptography, no standard features and so on, please see experimental branch

Quickstart (Docker)

Quickstart (Linux)

For Centos 7 dependencies:

  • yum install glibc-static libstdc++-static autoconf automake gcc gcc-c++ make libtool git wget unzip

For Debian 9 dependencies:

  • apt-get install autoconf automake gcc g++ make libtool git wget unzip

Now compile it:

#!/usr/bin/env python

import socket
import json
import os,binascii

def sending(message):
	ip = ''
	port = 6613
	BUFFER_SIZE = 65536
	s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
	s.connect((ip, port))
	data = s.recv(BUFFER_SIZE)
        print data
	return data

data_js='{"version":1,"algorithm":"SHA3_512","type":"string","plaintext":"Hello world!"}'

We are getting SHA3-512 for "Hello world!" string.


You can use your favorite language, we are using python only for illustrative examples( your language needs to support TCP sockets and json format).

The code is very simple and with basic programming knowledge you should be able to understand it. You only need to understand python tcp sockets and json format.


on ~/coherence02/

Terminal 1

  • watch python -p $(pidof coherence)

Terminal 2

  • cd bin/ && ./coherence 6613

Terminal 3

  • cd examples/ && sh



Please see


  • Be cryptoserver (server dedicated for cryptography)
  • Improve security in L7 (Cryptography for webapps)


Current version Essence.


  • Master: Stable and standard algorithms.
  • Experimental: postquatum algorithms and homomorphic encryption, pairing based cryptography , as well as new features.


liesware 4t liesware d0t com , only concise and well-reasoned feedback are welcome. please be critic with yourself before writing.