plan.html 4.04 KB
Newer Older
Niels Möller's avatar
Niels Möller committed
1
<?xml version="1.0" encoding="utf-8"?>
Niels Möller's avatar
Niels Möller committed
2
3
4
5
6
7
8
9
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <link rel="stylesheet" title="Default"
      type="text/css" href="todo.css" media="all"/>
    <meta http-equiv="Content-Type"
Niels Möller's avatar
Niels Möller committed
10
      content="text/html; charset=utf-8"/>
Niels Möller's avatar
Niels Möller committed
11
<title>TODO for coming releases</title>
Niels Möller's avatar
Niels Möller committed
12
13
</head>
<body>
Niels Möller's avatar
Niels Möller committed
14
  <h1> Nettle release plans </h1>
Niels Möller's avatar
Niels Möller committed
15
  <p> This is an attempt at defining a development target for
Niels Möller's avatar
Niels Möller committed
16
17
  Nettle-3.1, inspired by similar pages for recent GMP releases. [Last
  updated 2014-09-07]</p>
Niels Möller's avatar
Niels Möller committed
18
19
20
21
22
23
24
25
26
27
28
29
  <p class='should'>
    This really ought to be done before release
  </p>
  <p class='wish'>
    Try to get this done before release
  </p>
  <p class='done'>
    Done!
  </p>
  <p class='postponed'>
    Leave for some later release!
  </p>
Niels Möller's avatar
Niels Möller committed
30

Niels Möller's avatar
Niels Möller committed
31
  <h1> Plans for nettle-3.1 </h1>
Niels Möller's avatar
Niels Möller committed
32
33

  <h2> Interface changes </h2>
Niels Möller's avatar
Niels Möller committed
34
35
36
  <p class='should'>
    Review public functions in ecc.h, move some to ecc-internal.h, to
    enable sane support for other types of curves.
Niels Möller's avatar
Niels Möller committed
37
38
  </p>
  
Niels Möller's avatar
Niels Möller committed
39
  <h2> New features </h2>
Niels Möller's avatar
Niels Möller committed
40
41
  <p class='should'>
    Add support for curve25519. What about the "x25519" name?
Niels Möller's avatar
Niels Möller committed
42
  </p>
Niels Möller's avatar
Niels Möller committed
43
44
  <p class='should'>
    Add support for EdDSA25519 signatures.
Niels Möller's avatar
Niels Möller committed
45
  </p>
Niels Möller's avatar
Niels Möller committed
46
47
  <p class='wish'>
    Add larger "safe" curves, e.g., M-383, curve41417 and E-521.
Niels Möller's avatar
Niels Möller committed
48
  </p>
Niels Möller's avatar
Niels Möller committed
49
  <p class='wish'>
Niels Möller's avatar
Niels Möller committed
50
51
    Add functions for converting ECC points to and from ANSI x9.62.
  </p>
Niels Möller's avatar
Niels Möller committed
52
  <p class='wish'>
Niels Möller's avatar
Niels Möller committed
53
54
55
    Use side-channel silent GMP functions for RSA and DSA. May require
    additional interface changes, to use mpn functions.
  </p>
56
  <p class='done'>
Niels Möller's avatar
Niels Möller committed
57
    Make it possible to build nettle and hogweed using mini-gmp.
Niels Möller's avatar
Niels Möller committed
58
  </p>
Niels Möller's avatar
Niels Möller committed
59
60
  <p class='should'>
    Side-channel silent mem_equalp.
Niels Möller's avatar
Niels Möller committed
61
  </p>
Niels Möller's avatar
Niels Möller committed
62
63
64
65

  <h2> Optimizations </h2>
  <p class='should'>
    Support for using AES acceleration.
Niels Möller's avatar
Niels Möller committed
66
  </p>
Niels Möller's avatar
Niels Möller committed
67
68
69

  <p class='should'>
    Assembly optimizations for ARMv8 (64-bit).
Niels Möller's avatar
Niels Möller committed
70
  </p>
Niels Möller's avatar
Niels Möller committed
71
72
73
74
  
  <h2> Miscellaneous </h2>
  <p class='should'>
    Use more GMP-6 functions when available.
Niels Möller's avatar
Niels Möller committed
75
  </p>
Niels Möller's avatar
Niels Möller committed
76
77
78
79

  <h2> Documentation </h2>
  <p class='should'>
    Document curve25519.
Niels Möller's avatar
Niels Möller committed
80
  </p>
Niels Möller's avatar
Niels Möller committed
81
82
  <p class='should'>
    Document EdDSA.
Niels Möller's avatar
Niels Möller committed
83
  </p>
Niels Möller's avatar
Niels Möller committed
84
  
Niels Möller's avatar
Niels Möller committed
85
  <h2> Build system </h2>
Niels Möller's avatar
Niels Möller committed
86
87
88
  <p class='should'>
    Support for fat binaries on ARM and x86_64, selecting code at
    runtime depending on cpu capabilities.
Niels Möller's avatar
Niels Möller committed
89
  </p>
Niels Möller's avatar
Niels Möller committed
90
  <p class='done'>
Niels Möller's avatar
Niels Möller committed
91
    Stop using the nonstandard <tt>.po</tt> extension.
Niels Möller's avatar
Niels Möller committed
92
  </p>
Niels Möller's avatar
Niels Möller committed
93
  <p class='done'>
Niels Möller's avatar
Niels Möller committed
94
95
    Reconsider assembly make rules, going back to an .asm.o: rule
    might work better with Solaris' make.
Niels Möller's avatar
Niels Möller committed
96
  </p>
Niels Möller's avatar
Niels Möller committed
97
98
  <p class='should'>
    Update AX_CREATE_STDINT_H to the latest version.
Niels Möller's avatar
Niels Möller committed
99
  </p>
Niels Möller's avatar
Niels Möller committed
100
  
Niels Möller's avatar
Niels Möller committed
101
102
103
104
  <h2> Testing </h2>
  <p> Since xenofarm isn't up and running, do some manual testing:
  </p>
  <ul>
Niels Möller's avatar
Niels Möller committed
105
106
107
108
109
110
111
112
113
114
115
    <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>
Niels Möller's avatar
Niels Möller committed
116
117
  </ul>

Niels Möller's avatar
Niels Möller committed
118
  <h1> Changes under consideration for later releases </h1>
Niels Möller's avatar
Niels Möller committed
119

Niels Möller's avatar
Niels Möller committed
120
121
  <p> These are some other changes under consideration. </p>

Niels Möller's avatar
Niels Möller committed
122
  <h2> Interface changes </h2>
Niels Möller's avatar
Niels Möller committed
123
124
  <p class='should'>
    For Merkle-Damgaard hash functions, separate the state and the
Niels Möller's avatar
Niels Möller committed
125
126
    buffering. E.g., when using them for HMAC keyed "inner" and
    "outer" states, we now get three buffers but we only need one.
Niels Möller's avatar
Niels Möller committed
127
128
129
  </p>
  <p class='should'>
    Reorganize private key operations. Need to support RSA with and
Niels Möller's avatar
Niels Möller committed
130
131
132
    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
Niels Möller's avatar
Niels Möller committed
133
    explosion of the number of functions.
Niels Möller's avatar
Niels Möller committed
134
135
136
  </p>
</body>
</html>