This repository has been archived by the owner. It is now read-only.
Ed25519 vanity public key generator
Switch branches/tags
Nothing to show
Clone or download
Yawning Angel
Yawning Angel Add a LICENSE file.
Latest commit d4659bc Mar 17, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Add a LICENSE file. Mar 17, 2018
.gitignore Initial import. Oct 5, 2014
LICENSE Add a LICENSE file. Mar 17, 2018
Makefile Test signature verification as part of the key generation process. Jun 14, 2015 Initial import. Oct 5, 2014

horse25519 - An Ed25519 vanity public key generator

Yawning Angel (yawning at torproject dot org)


This is a Ed25519 vanity public key search tool in the spirit of shallot. It attempts to generate a Ed25519 keypair that has a public key with a user provided prefix when encoded in Base32.

It is slower than searching for keys via Scallion as it only runs on the CPU. Porting the relevant math to run on a GPU is left as an exercise for the student.


The Ed25519 implementation is ed25519/ref10 from SUPERCOP (20140924). The src/ref10 directory contains an unmodified copy, with the portability headers and routines thrown into src. In theory minor speedups may be obtained by switching to Floodyberry's ed25519-donna, but as the search phase does not do the scalar multiplication, this probably will not be that big of a gain.

The trick for skipping the scalar multiplication, and the basis for the implementation was shown to be my Nick Mathewson.

OpenSSL is used for the CSPRNG and a SHA512 implementation. This is subject to change at a later date since pulling in OpenSSL for either of those things is approaching overkill.

The code doesn't take any particular care to scrub values off the heap or stack. You are using this on a dedicated offline box without swap right?

The number of fucks I give about Windows or Darwin is equal to the number of computers I have that run either operating system. Patches for the latter probably accepted.