This is an attempt at defining a development target for Nettle-3.1, inspired by similar pages for recent GMP releases. [Last updated 2014-10-22]
This really ought to be done before release
Try to get this done before release
Done!
Leave for some later release!
Review public functions in ecc.h, move some to ecc-internal.h, to enable sane support for other types of curves.
Add support for curve25519. What about the "x25519" name?
Add support for Ed25519 signatures.
Add larger "safe" curves, e.g., M-383, curve41417 and E-521.
Add functions for converting ECC points to and from ANSI x9.62.
Use side-channel silent GMP functions for RSA and DSA. May require additional interface changes, to use mpn functions.
Make it possible to build nettle and hogweed using mini-gmp.
Side-channel silent mem_equalp.
Support for using AES acceleration.
Assembly optimizations for ARMv8 (64-bit).
Further optimizations of curve25519 and EdDSA, in particular, radix 51 modp operations, and more efficient point addition.
Use more GMP-6 functions when available.
Document curve25519.
Document EdDSA.
Support for fat binaries on ARM and x86_64, selecting code at runtime depending on cpu capabilities.
Stop using the nonstandard .po extension.
Reconsider assembly make rules, going back to an .asm.o: rule might work better with Solaris' make.
Update AX_CREATE_STDINT_H to the latest version.
Since xenofarm isn't up and running, do some manual testing:
These are some other changes under consideration.
For Merkle-Damgaard hash functions, separate the state and the buffering. E.g., when using them for HMAC keyed "inner" and "outer" states, we now get three buffers but we only need one.
Reorganize private key operations. Need to support RSA with and without blinding, and DSA according to spec and some deterministic variant (like putty or RFC6979), and possibly also smartcard versions where the private key is not available to the library. And without an explosion of the number of functions.