EdDSA Reference Implementation

Last update: 27 June 2017

This is an implementation of the Ed25519 elliptic curve digital signature algorithm using 32-bit integers in C. It can be used as a reference for systems which do not have 64-bit data types, such as programmable logic controllers.

256-bit values are represented using N B-bit pieces, with N=22 and B=12, stored in N 32-bit unsigned integers. This enables multiplication of two sums for EdDSA point addition to be done without reducing the coefficients until the end.

impl.tar.gz - download

src/ - browse files - see impl.h and impl.c, everything else is for testing

Reference:

RFC 8032 - Edwards-Curve Digital Signature Algorithm (EdDSA), January 2017