diff options
author | Niels Möller <nisse@lysator.liu.se> | 2014-09-07 09:38:29 +0200 |
---|---|---|
committer | Niels Möller <nisse@lysator.liu.se> | 2014-09-07 09:38:29 +0200 |
commit | eee1f125616f0f54c0581f1156a3d44fcebbc2f9 (patch) | |
tree | 1345f5570d0af07085eb7d1bfd5d101b5cff28f7 /misc/plan.html | |
parent | ab8fb60b93cacb54e00e75da3133d2af6f1d32ec (diff) | |
download | nettle-eee1f125616f0f54c0581f1156a3d44fcebbc2f9.tar.gz |
Updated 3.1 release plan.
Diffstat (limited to 'misc/plan.html')
-rw-r--r-- | misc/plan.html | 176 |
1 files changed, 53 insertions, 123 deletions
diff --git a/misc/plan.html b/misc/plan.html index 3f8ff489..aafd0992 100644 --- a/misc/plan.html +++ b/misc/plan.html @@ -13,8 +13,8 @@ <body> <h1> Nettle release plans </h1> <p> This is an attempt at defining a development target for - Nettle-3.0, inspired by similar pages for recent GMP releases. [Last - updated 2014-06-04]</p> + Nettle-3.1, inspired by similar pages for recent GMP releases. [Last + updated 2014-09-07]</p> <p class='should'> This really ought to be done before release </p> @@ -28,163 +28,97 @@ Leave for some later release! </p> - <h1> Plans for nettle-3.0 </h1> - - <p> nettle-3.0 is intended primarily as an API cleanup, with few new - features. </p> + <h1> Plans for nettle-3.1 </h1> <h2> Interface changes </h2> - <p class='done'> - Change the type of all lengths from <tt>unsigned</tt> - to <tt>size_t</tt>. An ABI change on most 64-bit platforms. - </p> - <p class='done'> - 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. - </p> - <p class='done'> - Use the type <tt>uint64_t</tt> for 64-bit block counts in all hash - functions. - </p> - <p class='postponed'> - Move some internal-use macros from macros.h to nettle-internal.h. - </p> - <p class='done'> - Do separate aes128_ctx, etc, with smaller allocation for subkeys. - </p> - <p class='wish'> - <span class='done'>Do the same separation for camellia, which also - use fewer subkeys for shorter key - sizes.</span> <span class='postponed'>(And possibly also for - cast128).</span> - </p> - <p class='done'> - Don't require initialization of *dst_length for base*_decode_update. - </p> - <p class='done'> - New DSA interface, with a separate struct dsa_params. - </p> - <p class='done'> - Drop key size argument from <tt>nettle_set_key_func</tt>. - </p> - <p class='done'> - Use the nettle_cipher abstraction only for block ciphers (in - particular, exclude arcfour). Introduce nettle_cipher_func, with - const for the ctx argument. - </p> - <p class='wish'> - Consider making a public interface similar to nettle_aead? With - the above change, it can't use nettle_crypt_func. + <p class='should'> + Review public functions in ecc.h, move some to ecc-internal.h, to + enable sane support for other types of curves. </p> <h2> New features </h2> - <p class='done'> - Add <a href='http://www.cs.ucdavis.edu/~rogaway/papers/eax.pdf'>EAX</a > - mode? - </p> - <p class='done'> - Add poly1305. + <p class='should'> + Add support for curve25519. What about the "x25519" name? </p> - <p class='done'> - Add chacha. + <p class='should'> + Add support for EdDSA25519 signatures. </p> - <p class='done'> - Add ecc_bit_size function. + <p class='wish'> + Add larger "safe" curves, e.g., M-383, curve41417 and E-521. </p> - <p class='postponed'> + <p class='wish'> Add functions for converting ECC points to and from ANSI x9.62. </p> - <p class='postponed'> + <p class='wish'> Use side-channel silent GMP functions for RSA and DSA. May require additional interface changes, to use mpn functions. </p> - <h2> Documentation </h2> <p class='done'> - Document new AES and Camellia interface. + Make it possible to build nettle and hogweed using mini-gmp. </p> - <p class='done'> - Document additional sha512 variants. + <p class='should'> + Side-channel silent mem_equalp. </p> - <p class='done'> - Document new EAX mode. + + <h2> Optimizations </h2> + <p class='should'> + Support for using AES acceleration. </p> - <p class='done'> - Document new CCM mode. + + <p class='should'> + Assembly optimizations for ARMv8 (64-bit). </p> - <p class='done'> - Document new DSA interface. + + <h2> Miscellaneous </h2> + <p class='should'> + Use more GMP-6 functions when available. </p> - <p class='done'> - Document poly1305. + + <h2> Documentation </h2> + <p class='should'> + Document curve25519. </p> - <p class='done'> - Document chacha. + <p class='should'> + Document EdDSA. </p> <h2> Build system </h2> - <p class='done'> - Update config.guess and config.sub. Needed for ppc64le support. - </p> - <p class='postponed'> - Stop using the nonstandard <tt>.po</tt> extension, - using <tt>.p.o</tt> or some subdirectory instead. Also drop - <tt>CCPIC_MAYBE</tt>, and let the static libraries depend on the - right object files. - </p> - <p class='postponed'> - Reconsider assembly make rules, going back to a .asm.o: rule might - work better with Solaris' make. Alternatively, simply drop support - for non-GNU make programs. + <p class='should'> + Support for fat binaries on ARM and x86_64, selecting code at + runtime depending on cpu capabilities. </p> <p class='done'> - Delay building of test programs until <tt>make check</tt>. + Stop using the nonstandard <tt>.po</tt> extension. </p> <p class='done'> - Fix dependency problems with <tt>--disable-static</tt>. + Reconsider assembly make rules, going back to an .asm.o: rule + might work better with Solaris' make. </p> - <p class='postponed'> - Make the time consuming ecc_curve_check in eccdata.c - optional. <span class='done'>Enabled optimization instead.</span> + <p class='should'> + Update AX_CREATE_STDINT_H to the latest version. </p> <h2> Testing </h2> <p> Since xenofarm isn't up and running, do some manual testing: </p> <ul> - <li class='done'> Test with gmp-6.0.0 </li> - <li class='done'> x86_64-linux-gnu</li> - <li class='done'> x86-linux-gnu</li> - <li class='done'> x86_64-freebsd</li> - <li class='postponed'> x86-freebsd (building with -m32 on a 64-bit - system doesn't work due to broken header files).</li> - <li class='done'> x86-w*ndows (using cross compiler and wine)</li> - <li class='done'> x86_64-w*ndows (using cross compiler and wine)</li> - <li class='done'> x86-darwin (needs help from Nettle users)</li> - <li class='done'> x86_64-darwin (needs help from Nettle users)</li> - <li class='done'> armv7-linux-gnu (pandaboard test platform)</li> - <li class='wish'> armv7-android (possible test platform: N10 tablet)</li> - <li class='done'> sparc32-solaris10</li> - <li class='done'> sparc64-solaris10</li> + <li class='should> x86_64-linux-gnu</li> + <li class='should'> x86-linux-gnu</li> + <li class='should'> x86_64-freebsd</li> + <li class='should'> x86-w*ndows (using cross compiler and wine)</li> + <li class='should'> x86_64-w*ndows (using cross compiler and wine)</li> + <li class='should'> x86-darwin (needs help from Nettle users)</li> + <li class='should'> x86_64-darwin (needs help from Nettle users)</li> + <li class='should'> armv7-linux-gnu (pandaboard test platform)</li> + <li class='wish'> armv7-android </li> + <li class='should'> sparc32-solaris10</li> + <li class='should'> sparc64-solaris10</li> </ul> <h1> Changes under consideration for later releases </h1> <p> These are some other changes under consideration. </p> - <h2> New features </h2> - <p class='should'> - Make it possible to build nettle and hogweed using mini-gmp. - </p> - <p class='should'> - Fat binary, selecting code at runtime depending on cpu - capabilities. - </p> - <p class='should'> - Side-channel silent mem_equalp. - </p> - <h2> Interface changes </h2> <p class='should'> For Merkle-Damgaard hash functions, separate the state and the @@ -198,9 +132,5 @@ the private key is not available to the library. And without an explosion of the number of functions. </p> - <h2> Miscellaneous </h2> - <p class='should'> - Update AX_CREATE_STDINT_H to the latest version. - </p> </body> </html> |