Implemented an Enforced FIPS mode.
[libgcrypt.git] / TODO
1 What's left to do                                 -*- outline -*-
2
3 * Next API break:
4 ** gcry_ac_io_t
5   Remove use of anonymous union.
6 ** gcry_ac
7   Consider to remove it.
8
9 * udiv-qrnbd.o should get build as *.lo [HPUX]
10
11 * Allow operation using RSA keys consisting of the OpenSSL keys.
12   This requires the introduction of a parameter names (say) U which
13   is calculated according to OpenSSL/PKCS#1 rules.
14
15 * linker script test
16   Write an autoconf test to check whether the linker supports a
17   version script. 
18
19 * Add attributes to the MPI functions.
20
21 * cipher/pubkey.c and pubkey implementaions.
22   Don't rely on the secure memory based wiping function but add an
23   extra wiping.
24   
25 * Use builtin bit functions of gcc 3.4
26
27 * Consider using a daemon to maintain the random pool
28   [Partly done] The down side of this is that we can't assume that the
29   random has has always been stored in "secure memory".  And we rely
30   on that sniffing of Unix domain sockets is not possible.  We can
31   implement this simply by detecting a special prefixed random seed
32   name and divert in this case to the daemon.  There are several
33   benefits with such an approach: We keep the state of the RNG over
34   invocations of libgcrypt based applications, don't need time
35   consuming initialization of the pool and in case the entropy
36   collectros need to run that bunch of Unix utilities we don't waste
37   their precious results.
38
39 * Out of memory handler for secure memory should do proper logging
40
41   There is no shortage of standard memory, so logging is most likely
42   possible.
43
44 * mpi_print does not use secure memory
45   for internal variables.
46
47 * Add OAEP
48
49 * gcryptrnd.c
50   Requires a test for pth [done] as well as some other tests.
51
52 * secmem.c
53   Check whether the memory block is valid before releasing it and
54   print a diagnosic, like glibc does.
55
56 * threads
57 ** We need to document fork problems
58   In particular that reinitialization is required in random.c
59   However, there is no code yet to do it.
60
61 * Tests
62   We need a lot more tests.  Lets keep an ever growing list here.
63 ** Write tests for the progress function
64 ** mpitests does no real checks yet.
65 ** pthreads
66   To catch simple errors like the one fixed on 2007-03-16.
67 ** C++ tests
68   We have some code to allow using libgcrypt from C++, so we also
69   should have a test case.