Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



35 Commits

Repository files navigation

SPHINCS-256 NIF for Erlang

Version: 1.0.0 (SUPERCOP: 20160910)

Authors: Alexander Færøy (

SPHINCS-256 is a high-security post-quantum stateless hash-based signature scheme. This repository contains the SPHINCS-256 implementation found in the SUPERCOP performance suite together with an Erlang NIF's for the SPHINCS API.

SPHINCS-256 uses 41 KB signatures, 1 KB public keys, and 1 KB private keys.

For more information about SPHINCS see:

  1. Alice generates a new keypair and sends her public key to Bob.
{ok, #{ secret := Secret, public := Public }} = sphincs:keypair().
  1. Alice signs a document and sends it to Bob.
SignedDocument = sphincs:sign(Document, Secret).
  1. Bob verifies the signed document from Alice.
sphincs:verify(SignedDocument, Public).
  • It's currently only the ref implementation of BLAKE-256, BLAKE-512, ChaCha12 and SPHINCS-256 that have been tested. It would be nice to have vectorized versions for higher performance.

  • The Erlang bindings of sphincs could use some tests :-)