c867e6f858dc2e230cb6955c82fd228f3b878123
[libgcrypt.git] / TODO
1 What's left to do                                 -*- outline -*-
2
3 * Updated the FSF's directory.
4
5 * udiv-qrnbd.o should get build as *.lo [HPUX]
6
7 * Allow operation using RSA keys consisting of the OpenSSL list of
8   parameters and allow for a third form where the private Exponent
9   is not given (saves space).
10
11 * Add a warning to the manual, to check that libgcrypt actually has
12   been compiled with thread support when used by a threaded
13   application.
14
15 * linker script test
16   Write an autoconf test to check whether the linker supports a
17   version script. 
18
19 * Make use of the forthcoming visibility attribute.
20
21 * Add attributes to the MPI functions.
22
23 * In case the ac interface will be more popular than the pk interface,
24   the asymmetric ciphers could be changed for convenient interaction
25   with the ac interface (i.e. by using ac's `data sets') and the pk
26   interface could be changed to be a wrapper for the ac interface.
27
28 * cipher/pubkey.c and pubkey implementaions.
29   Don't rely on the secure memory based wiping function but add an
30   extra wiping.
31   
32 * update/improve documentation
33   - it's outdated for e.g. gcry_pk_algo_info.
34   - document algorithm capabilities
35
36 * Use builtin bit functions of gcc 3.4
37
38 * Consider using a daemon to maintain he random pool
39   [Partly done]
40   The down side of this is that we can't assume that the random has
41   has always been stored in "secure memory".  And we rely on that
42   sniffing of Unix domain sockets is not possible.  We can implement
43   this simply by detecting a special prefixed random seed name and
44   divert in this case to the daemon.  There are several benefits with
45   such an approach: We keep the state of the RNG over invocations of
46   libgcrypt based applications, don't need time consuming
47   initialization of the pool and in case the entropy collectros need
48   to run that bunch of Unix utilities we don't waste their precious
49   results.
50
51 * Out of memory handler for secure memory should do proper logging
52
53   There is no shortage of standard memory, so logging is most likely
54   possible.
55
56 * mpi_print does not use secure memory
57   for internal variables.
58
59 * gry_mpi_lshift is missing
60
61 * Add OAEP
62
63 * Next API break:
64 ** gcry_ac_io_t
65   Remove use of anonymous union.
66
67 * ac.c
68   There are still some things fishy.  The fixes I did today
69   (2006-10-23) seem to cure just a symptom.  Needs a complete review.
70
71 * gcryptrnd.c
72   Requires a test for pth [done] as well as some other tests.
73
74 * secmem.c
75   Check whether the memory block is valid before releasing it and
76   print a diagnosic, like glibc does.
77
78 * Tests
79   We need a lot more tests.  Lets keep an ever growing list here.
80 ** Write tests for the progress function
81
82