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:
- SUPERCOP reference "ref10" implementation;
- Adam Langley's Golang ed25519;
- @dalek-cryptography Rust curve25519-dalek/ed25519-dalek.
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 (() ((())) () (())
:)
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.
- field element implementation;
- group element implementation;
- scalar implementation;
- generate/sign/verify API;
- warnings, debugging and testing.