Nettle release plans

This is an attempt at defining a development target for Nettle-2.6, inspired by similar pages for recent GMP releases. [Last updated 2013-01-01]

This really ought to be done before release

Try to get this done before release

Done!

Leave for some later release!

Plan for the Nettle-2.6 release

Documentation

Update documentation with info on SHA3.

Update NEWS file.

Build system

Ensure that make install without a preceding make works.

Testing

Since xenofarm isn't up and running, do some manual testing:

Plans for nettle-3.0

Interface changes

Change the type of all lengths from unsigned to size_t. An ABI change on most 64-bit platforms.

Change argument type of memxor and memxor3 from uint8_t * to void * (like modern memcpy). Consider them unconditionally part of the nettle library, with nettle_ prefix on the symbols, and no AC_REPLACE_FUNCS.

Rename sha256 to sha2_256, and similar for other sha2 functions. Split sha.h into sha1.h and sha2.h. For backwards compatibility, keep sha.h with old names as aliases.

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.

Use the nettle_cipher abstraction only for block ciphers (in particular, exclude arcfour). Use a const for the ctx argument to nettle_crypt_func.

Consider making a public interface similar to nettle_aead? With the above change, it can't use nettle_crypt_func.

Make it possible to build nettle and hogweed using mini-gmp.

Reorganize private key operations. Need to support RSA with and without blinding, and DSA according to spec and some deterministic variant (like putty), and possibly also smartcard versions where the private key is not available to the library. And without an explosion of the number of functions.