This is an attempt at defining a development target for the next release of Nettle, inspired by similar pages for recent GMP releases. [Last updated 2017-11-14]
This really ought to be done before release
Try to get this done before release
Done!
Leave for some later release!
Fix issues with sizes of objects like the nettle_hashes array and the ecc_curve structs accidentally leaking into the ABI. Fix by another level of indirection, with a function call to return the start address.
Add larger "safe" curves, e.g., M-383, curve41417, curve448 and E-521. (curve448 in progress, on its own branch).
Add functions for converting ECC points to and from ANSI x9.62.
Support for the Skein hash function.
Support for more GOST standard algorithms.
Support for CFB mode (patch by Dmitry Eremin-Solenikov posted on the list).
Assembly optimizations for ARMv8 (64-bit).
Further optimizations of curve25519 and EdDSA, in particular, more efficient point addition, using extended XYZT coordinates.
Use more functions from GMP-6 and later, when available: mpn_sec_add_1, mpn_sec_tabselect, mpn_sec_invert, mpn_cnd_swap, ...
Change base16 and base64 interfaces to use char for encoded data, and fix remaining pointer-signedness warnings.
Delete AX_CREATE_STDINT_H, use stdint.h unconditionally.
Since xenofarm isn't up and running, do some manual testing:
These are some larger 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.