Common Lisp implementation of Ed25519 signature protocol
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
core
eddsa
README.md
ed25519.asd

README.md

ed25519-xeno

Common Lisp implementation of EdDSA on top of curve isomorphic to the twisted Edwards curve -x²+y² = 1 - 121665/121666 x²y² over GF(2²⁵⁵ - 19).

The implementation heavily borrows from the following:

Rationale

Main goal is to benchmark performance of the SBCL-optimised low-level Common Lisp in the context of cryptographic algorithms, while the name is inspired partly by C++ ed25519-donna and Rust [ed25519-dalek][rust] libraries and partly by the the xenomorphic look of those (() ((())) () (()):)

Disclaimer

This is untested/unreviewed implementation that absolutely should not be used for anything at all unless it's your new cryptocurrency because it's fun to watch those fail and it's twice as fun to watch those fail in Common Lisp.

TODO

  • field element implementation;
  • group element implementation;
  • scalar implementation;
  • generate/sign/verify API;
  • warnings, debugging and testing.