Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
N
nettle
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Container registry
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Wim Lewis
nettle
Commits
eee1f125
Commit
eee1f125
authored
10 years ago
by
Niels Möller
Browse files
Options
Downloads
Patches
Plain Diff
Updated 3.1 release plan.
parent
ab8fb60b
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
misc/plan.html
+53
-123
53 additions, 123 deletions
misc/plan.html
with
53 additions
and
123 deletions
misc/plan.html
+
53
−
123
View file @
eee1f125
...
@@ -13,8 +13,8 @@
...
@@ -13,8 +13,8 @@
<body>
<body>
<h1>
Nettle release plans
</h1>
<h1>
Nettle release plans
</h1>
<p>
This is an attempt at defining a development target for
<p>
This is an attempt at defining a development target for
Nettle-3.
0
, inspired by similar pages for recent GMP releases. [Last
Nettle-3.
1
, inspired by similar pages for recent GMP releases. [Last
updated 2014-0
6
-0
4
]
</p>
updated 2014-0
9
-0
7
]
</p>
<p
class=
'should'
>
<p
class=
'should'
>
This really ought to be done before release
This really ought to be done before release
</p>
</p>
...
@@ -28,163 +28,97 @@
...
@@ -28,163 +28,97 @@
Leave for some later release!
Leave for some later release!
</p>
</p>
<h1>
Plans for nettle-3.0
</h1>
<h1>
Plans for nettle-3.1
</h1>
<p>
nettle-3.0 is intended primarily as an API cleanup, with few new
features.
</p>
<h2>
Interface changes
</h2>
<h2>
Interface changes
</h2>
<p
class=
'done'
>
<p
class=
'should'
>
Change the type of all lengths from
<tt>
unsigned
</tt>
Review public functions in ecc.h, move some to ecc-internal.h, to
to
<tt>
size_t
</tt>
. An ABI change on most 64-bit platforms.
enable sane support for other types of curves.
</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>
</p>
<h2>
New features
</h2>
<h2>
New features
</h2>
<p
class=
'done'
>
<p
class=
'should'
>
Add
<a
href=
'http://www.cs.ucdavis.edu/~rogaway/papers/eax.pdf'
>
EAX
</a
>
Add support for curve25519. What about the "x25519" name?
mode?
</p>
<p
class=
'done'
>
Add poly1305.
</p>
</p>
<p
class=
'
done
'
>
<p
class=
'
should
'
>
Add
chacha
.
Add
support for EdDSA25519 signatures
.
</p>
</p>
<p
class=
'
done
'
>
<p
class=
'
wish
'
>
Add
ecc_bit_size function
.
Add
larger "safe" curves, e.g., M-383, curve41417 and E-521
.
</p>
</p>
<p
class=
'
postponed
'
>
<p
class=
'
wish
'
>
Add functions for converting ECC points to and from ANSI x9.62.
Add functions for converting ECC points to and from ANSI x9.62.
</p>
</p>
<p
class=
'
postponed
'
>
<p
class=
'
wish
'
>
Use side-channel silent GMP functions for RSA and DSA. May require
Use side-channel silent GMP functions for RSA and DSA. May require
additional interface changes, to use mpn functions.
additional interface changes, to use mpn functions.
</p>
</p>
<h2>
Documentation
</h2>
<p
class=
'done'
>
<p
class=
'done'
>
Document new AES and Camellia interface
.
Make it possible to build nettle and hogweed using mini-gmp
.
</p>
</p>
<p
class=
'
done
'
>
<p
class=
'
should
'
>
Document additional sha512 variants
.
Side-channel silent mem_equalp
.
</p>
</p>
<p
class=
'done'
>
Document new EAX mode.
<h2>
Optimizations
</h2>
<p
class=
'should'
>
Support for using AES acceleration.
</p>
</p>
<p
class=
'done'
>
Document new CCM mode.
<p
class=
'should'
>
Assembly optimizations for ARMv8 (64-bit).
</p>
</p>
<p
class=
'done'
>
Document new DSA interface.
<h2>
Miscellaneous
</h2>
<p
class=
'should'
>
Use more GMP-6 functions when available.
</p>
</p>
<p
class=
'done'
>
Document poly1305.
<h2>
Documentation
</h2>
<p
class=
'should'
>
Document curve25519.
</p>
</p>
<p
class=
'
done
'
>
<p
class=
'
should
'
>
Document
chacha
.
Document
EdDSA
.
</p>
</p>
<h2>
Build system
</h2>
<h2>
Build system
</h2>
<p
class=
'done'
>
<p
class=
'should'
>
Update config.guess and config.sub. Needed for ppc64le support.
Support for fat binaries on ARM and x86_64, selecting code at
</p>
runtime depending on cpu capabilities.
<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>
</p>
<p
class=
'done'
>
<p
class=
'done'
>
Delay building of test programs until
<tt>
make check
</tt>
.
Stop using the nonstandard
<tt>
.po
</tt>
extension
.
</p>
</p>
<p
class=
'done'
>
<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>
<p
class=
'postponed'
>
<p
class=
'should'
>
Make the time consuming ecc_curve_check in eccdata.c
Update AX_CREATE_STDINT_H to the latest version.
optional.
<span
class=
'done'
>
Enabled optimization instead.
</span>
</p>
</p>
<h2>
Testing
</h2>
<h2>
Testing
</h2>
<p>
Since xenofarm isn't up and running, do some manual testing:
<p>
Since xenofarm isn't up and running, do some manual testing:
</p>
</p>
<ul>
<ul>
<li
class=
'done'
>
Test with gmp-6.0.0
</li>
<li
class=
'should> x86_64-linux-gnu</li>
<li
class=
'done'
>
x86_64-linux-gnu
</li>
<li class='
should
'
>
x86-linux-gnu
</li>
<li
class=
'done'
>
x86-linux-gnu
</li>
<li
class=
'should'
>
x86_64-freebsd
</li>
<li
class=
'done'
>
x86_64-freebsd
</li>
<li
class=
'should'
>
x86-w*ndows (using cross compiler and wine)
</li>
<li
class=
'postponed'
>
x86-freebsd (building with -m32 on a 64-bit
<li
class=
'should'
>
x86_64-w*ndows (using cross compiler and wine)
</li>
system doesn't work due to broken header files).
</li>
<li
class=
'should'
>
x86-darwin (needs help from Nettle users)
</li>
<li
class=
'done'
>
x86-w*ndows (using cross compiler and wine)
</li>
<li
class=
'should'
>
x86_64-darwin (needs help from Nettle users)
</li>
<li
class=
'done'
>
x86_64-w*ndows (using cross compiler and wine)
</li>
<li
class=
'should'
>
armv7-linux-gnu (pandaboard test platform)
</li>
<li
class=
'done'
>
x86-darwin (needs help from Nettle users)
</li>
<li
class=
'wish'
>
armv7-android
</li>
<li
class=
'done'
>
x86_64-darwin (needs help from Nettle users)
</li>
<li
class=
'should'
>
sparc32-solaris10
</li>
<li
class=
'done'
>
armv7-linux-gnu (pandaboard test platform)
</li>
<li
class=
'should'
>
sparc64-solaris10
</li>
<li
class=
'wish'
>
armv7-android (possible test platform: N10 tablet)
</li>
<li
class=
'done'
>
sparc32-solaris10
</li>
<li
class=
'done'
>
sparc64-solaris10
</li>
</ul>
</ul>
<h1>
Changes under consideration for later releases
</h1>
<h1>
Changes under consideration for later releases
</h1>
<p>
These are some other changes under consideration.
</p>
<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>
<h2>
Interface changes
</h2>
<p
class=
'should'
>
<p
class=
'should'
>
For Merkle-Damgaard hash functions, separate the state and the
For Merkle-Damgaard hash functions, separate the state and the
...
@@ -198,9 +132,5 @@
...
@@ -198,9 +132,5 @@
the private key is not available to the library. And without an
the private key is not available to the library. And without an
explosion of the number of functions.
explosion of the number of functions.
</p>
</p>
<h2>
Miscellaneous
</h2>
<p
class=
'should'
>
Update AX_CREATE_STDINT_H to the latest version.
</p>
</body>
</body>
</html>
</html>
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment