plan.html 4.3 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
16
17
  <p> 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-10-01]</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.4 </h1>
Niels Möller's avatar
Niels Möller committed
32

Niels Möller's avatar
Niels Möller committed
33
34
35
36
37
38
39
  <h2> Bug fixes </h2>
  <p class='should'> 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.
  </p>

Niels Möller's avatar
Niels Möller committed
40
  <h2> New features </h2>
Niels Möller's avatar
Niels Möller committed
41
  <p class='postponed'>
Niels Möller's avatar
Niels Möller committed
42
    Add larger "safe" curves, e.g., M-383, curve41417, curve448 and
Niels Möller's avatar
Niels Möller committed
43
    E-521. (curve448 in progress, on its own branch).
Niels Möller's avatar
Niels Möller committed
44
  </p>
Niels Möller's avatar
Niels Möller committed
45

Niels Möller's avatar
Niels Möller committed
46
  <p class='postponed'>
Niels Möller's avatar
Niels Möller committed
47
48
    Add functions for converting ECC points to and from ANSI x9.62.
  </p>
Niels Möller's avatar
Niels Möller committed
49
50
51

  <p class='postponed'>
    Support for the Skein hash function.
Niels Möller's avatar
Niels Möller committed
52
  </p>
Niels Möller's avatar
Niels Möller committed
53
54
55
56
57
58
59
60

  <p class='postponed'>
    Support for more GOST standard algorithms.
  </p>

  <p class='wish'>
    Support for CFB mode (patch by Dmitry Eremin-Solenikov posted on
    the list).
Niels Möller's avatar
Niels Möller committed
61
  </p>
Niels Möller's avatar
Niels Möller committed
62
63
64

  <h2> Optimizations </h2>

Niels Möller's avatar
Niels Möller committed
65
  <p class='postponed'>
Niels Möller's avatar
Niels Möller committed
66
    Assembly optimizations for ARMv8 (64-bit).
Niels Möller's avatar
Niels Möller committed
67
  </p>
Niels Möller's avatar
Niels Möller committed
68
  <p class='postponed'>
Niels Möller's avatar
Niels Möller committed
69
    Further optimizations of curve25519 and EdDSA, in particular,
Niels Möller's avatar
Niels Möller committed
70
71

    <a href='http://www.hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html#addition-add-2008-hwcd-3'>more
Niels Möller's avatar
Niels Möller committed
72
73
    efficient</a> point addition.
  </p>
Niels Möller's avatar
Niels Möller committed
74
75
  
  <h2> Miscellaneous </h2>
Niels Möller's avatar
Niels Möller committed
76
  <p class='postponed'>
77
78
79
    Use more functions from GMP-6 and later, when available:
    mpn_sec_add_1, mpn_sec_tabselect, mpn_sec_invert, mpn_cnd_swap,
    ...
Niels Möller's avatar
Niels Möller committed
80
  </p>
Niels Möller's avatar
Niels Möller committed
81

Niels Möller's avatar
Niels Möller committed
82
  <p class='done'> Change base16 and base64 interfaces to use char
Niels Möller's avatar
Niels Möller committed
83
    for encoded data, and fix remaining pointer-signedness warnings.
Niels Möller's avatar
Niels Möller committed
84
  </p>
Niels Möller's avatar
Niels Möller committed
85
  
Niels Möller's avatar
Niels Möller committed
86
87
88
  <h2> Documentation </h2>

  
Niels Möller's avatar
Niels Möller committed
89
  <h2> Build system </h2>
Niels Möller's avatar
Niels Möller committed
90
91
  <p class='should'>
    Delete AX_CREATE_STDINT_H, use stdint.h unconditionally.
Niels Möller's avatar
Niels Möller committed
92
  </p>
Niels Möller's avatar
Niels Möller committed
93
  
Niels Möller's avatar
Niels Möller committed
94
95
96
97
  <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
98
99
100
101
102
    <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>
Niels Möller's avatar
Niels Möller committed
103
104
    <li class='should'> x86-darwin (needs help from Nettle users)</li>
    <li class='should'> x86_64-darwin (needs help from Nettle users)</li>
Niels Möller's avatar
Niels Möller committed
105
    <li class='should'> armv5-linux-gnu (qemu)</li>
Niels Möller's avatar
Niels Möller committed
106
    <li class='should'> armv7-linux-gnu (qemu)</li>
Niels Möller's avatar
Niels Möller committed
107
108
109
    <li class='should'> armv8-linux-gnu (qemu)</li>
    <li class='should'> ppc64-linux-gnu (qemu)</li>
    <li class='should'> ppc32-linux-gnu (qemu)</li>
Niels Möller's avatar
Niels Möller committed
110
    <li class='should'> mips64-linux-gnu (qemu)</li>
Niels Möller's avatar
Niels Möller committed
111
    <li class='should'> mips32-linux-gnu (qemu)</li>
Niels Möller's avatar
Niels Möller committed
112
    <li class='should'> m68k-linux-gnu (aranym)</li>
Niels Möller's avatar
Niels Möller committed
113
    <li class='wish'> armv7-android </li>
Niels Möller's avatar
Niels Möller committed
114
115
  </ul>

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

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

Niels Möller's avatar
Niels Möller committed
120
  <h2> Interface changes </h2>
Niels Möller's avatar
Niels Möller committed
121
122
  <p class='should'>
    For Merkle-Damgaard hash functions, separate the state and the
Niels Möller's avatar
Niels Möller committed
123
124
    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
125
126
127
  </p>
  <p class='should'>
    Reorganize private key operations. Need to support RSA with and
Niels Möller's avatar
Niels Möller committed
128
    without blinding, and DSA according to spec and some deterministic
Niels Möller's avatar
Niels Möller committed
129
130
131
132
133
    variant (like putty
    or <a href='http://tools.ietf.org/html/rfc6979'>RFC6979</a>), and
    possibly also smartcard versions where the private key is not
    available to the library. And without an explosion of the number
    of functions.
Niels Möller's avatar
Niels Möller committed
134
135
136
  </p>
</body>
</html>