This is a proof of concept of an elliptic curve library.

I wrote this because there are few curves in use. The NIST recommends 15 curves; SECG recommends 33 curves; Brainpool recommends 7 curves. SafeCurves lists 20 curves, not all of which it recommends (one was deliberately made weak, another was made for pairing, and some others are weak for various reasons).

When you create an RSA key, you pick two primes. When you create an El Gamal, Diffie-Hellman, or DSS key, you pick the prime. When you create an elliptic curve key, you use a curve that someone else picked. This isn't right.

This program lets you pick your own curves. It has 2619 fields ranging from the toy F7 to the 2047-bit F8388587^89. You can pick a curve over any of these fields (if you have enough time).

Download

Version 0.1.0

Version 0.1.1 includes a few compiling and bug fixes. Somewhere between Boost 1.58 and 1.65, there's a version that threw strange errors when compiling accumulator.h, a module used for parsing repeated -v options.

The list of primes is computed by the program; I've posted it here to save you time.