Patches and build system for DJB's ref10 Ed25519 implementation. Used in EdSRP's reference implementation.
  • C 55.4%
  • Makefile 17.9%
  • Shell 12.1%
  • JavaScript 9.3%
  • Go 5.3%
Find a file
2024-05-02 22:07:05 -04:00
include Add patch for ed25519_verify 2024-04-29 11:35:00 -04:00
patches Add patch for ed25519_verify 2024-04-29 11:35:00 -04:00
test Less verbose ed25519_verify test 2024-04-30 22:26:02 -04:00
.gitignore Add ed25519_verify test 2024-04-29 18:49:14 -04:00
go.work Implement C tests 2024-03-12 16:47:06 -04:00
LICENSE Initial commit 2024-03-12 14:27:49 -04:00
Makefile Clarify test deps 2024-05-02 22:07:05 -04:00
prepare.sh Add patch for ed25519_verify 2024-04-29 11:35:00 -04:00
README.md Clarify test deps 2024-05-02 22:07:05 -04:00

ed25519-edsrp

Patches and build system for DJB's ref10 Ed25519 implementation. Used in EdSRP's reference implementation.

Building

# Download and patch ref10 sources
make prepare

# Build static and shared libraries (release target)
make

# Build individual targets
make ed25519 # Static lib
make so # Shared lib
make wasm # WebAssembly lib (Emscripten required)

# Build all individual targets
make all

Installation

# Run tests before installing (requires Go)
make test-simple
# `make test` includes wasm tests which require Emscripten and Node.js

# Install with PREFIX=/usr/local
make install

# Install with PREFIX=/usr (read below)
make install PREFIX=/usr

Installation Prefix Note

Installation sets PREFIX=/usr/local by default. Unless you add /usr/local/lib to LD_LIBRARY_PATH, linkers will not be able to find libedsrp_ed25519 on most Linux distros. Two solutions to this problem exist:

  1. Add /usr/local/lib to LD_LIBRARY_PATH. This addition can be accomplished at a system level by editing /etc/ld.so.conf, or at a user level by editing your login shell's rc file (e.g ~/.bashrc).
  2. Install using make install PREFIX=/usr to ensure archive and shared object files are placed in /usr/lib.

Note that installing under /usr instead of /usr/local introduces the risk of conflicts with future system packages. However, these conflicts should be avoidable by uninstalling via make uninstall PREFIX=/usr before installing via your system's package manager.

Uninstallation/Removal

# Uninstall from /usr/local
make uninstall

# Uninstall from /usr
make uninstall PREFIX=/usr