Final fix which should now pass all tests.
[gnupg.git] / TODO
diff --git a/TODO b/TODO
index 138f9ba..6d2d2f5 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,48 +1,33 @@
                                                               -*- outline -*-
 
-
 * src/base64
 ** Make parsing more robust
-Currently we don't cope with overlong lines in the best way.
+   Currently we don't cope with overlong lines in the best way.
+** Check that we really release the ksba reader/writer objects.
 
 * sm/call-agent.c
-** The protocol uses an incomplete S-expression
-We should always use valid S-Exp and not just parts.
 ** Some code should go into import.c
 ** When we allow concurrent service request in gpgsm, we
-might want to have an agent context for each service request
-(i.e. Assuan context).
-
-* sm/certreqgen.c
-** Improve error reporting
-** Do some basic checks on the supplied DNs
+   might want to have an agent context for each service request
+   (i.e. Assuan context).
 
 * sm/certchain.c
 ** When a certificate chain was sucessfully verified, make ephemeral certs used  in this chain permanent.
-** figure out how to auto retrieve a key by serialno+issuer.
-   Dirmngr is currently not able to parse more than the CN.
-
-* sm/certlist.c
-** ocspSigning usage is not fully implemented
-   We should review the entire CRL and OCSP validation system.
-   Okay.  This has been fixed in dirmngr when running it in system
-   daemon mode.
+** Try to keep certificate references somewhere
+  This will help with some of our caching code.  We also need to test
+  that caching; in particular "regtp_ca_chainlen".
 
 * sm/decrypt.c
 ** replace leading zero in integer hack by a cleaner solution
 
 * sm/gpgsm.c
-** Support --output for all commands
 ** mark all unimplemented commands and options.
-** Print a hint when MD2 is the cause for a problem.
 ** Implement --default-key
-** Using --export-secret-key-p12 with a non-pth agent
-   This leads to a lockup because gpgsm is still accessing the agent
-   while gpg-protect-tool wants to pop up the pinentry.  Solution is
-   to release the connection.  This is not trivial, thus we are going
-   to do that while changing gpgsm to allow concurrent operations.
 ** support the anyPolicy semantic
 ** Check that we are really following the verification procedures in rfc3280.
+** Implement a --card-status command.
+   This is useful to check whether a card is supported at all.
+
 
 * sm/keydb.c
 ** Check file permissions
@@ -50,10 +35,9 @@ might want to have an agent context for each service request
 ** Remove the inter-module dependencies between gpgsm and keybox
 ** Add an source_of_key field
 
-* agent/gpg-agent.c
-** A SIGHUP should also restart the scdaemon
-   But do this only after all connections terminated.  As of now we
-   only send a RESET.
+* agent/
+** If we detect that a private key has been deleted
+   Bump the key event counter.
 
 * agent/command.c
 ** Make sure that secure memory is used where appropriate
@@ -62,36 +46,69 @@ might want to have an agent context for each service request
 ** Don't use stdio to return results.
 ** Support DSA
 
-* agent/divert-scd.c
- Remove the agent_reset_scd kludge.
-
 * Move pkcs-1 encoding into libgcrypt.
 
-* Use a MAC to protect some files.
+* Use a MAC to protect sensitive files.
+  The problem here is that we need yet another key and it is unlikely
+  that users are willing to remember that key too.  It is possible to
+  do this with a smartcard, though.
 
 * sm/export.c
 ** Return an error code or a status info per user ID.
 
-* Where is http.c, regcomp.c, srv.c, w32reg.c  ?
+* scd/tlv.c
+  The parse_sexp function should not go into this file.  Check whether
+  we can change all S-expression handling code to make use of this
+  function.
+
+* scd
+** Application context vs. reader slot
+  We have 2 concurrent method of tracking whether a read is in use:
+  Using the session_list in command.c and the lock_table in app.c.  IT
+  would be better to do this just at one place. First we need to see
+  how we can support cards with multiple applications.
+** Detecting a removed card works only after the ticker detected it.
+  We should check the card status in open-card to make this smoother.
+  Needs to be integrated with the status file update, though.  It is
+  not a real problem because application will get a card removed
+  status and should the send a reset to try solving the problem.
 
-* scd/sc-investigate
-** Enhance with card compatibility check
+** Add a test to check the extkeyusage.
 
-* tests
-** Makefile.am
-  We use printf(1) to setup the library path, this is not portable.
-  Furthermore LD_LIBRARY_PATH is not used on all systems.  It doesn't
-  matter for now, because we use some GNU/*BSDish features anyway.
+* Windows port
+** gpgsm's LISTKEYS does not yet work
+    Fix is to change everything to libestream
+** Signals are not support 
+    This means we can't reread a configuration
+** No card status notifications.
 
-** Add a test to check the extkeyusage.
+* sm/
+** check that we issue NO_SECKEY xxx if a -u key was not found
+   We don't. The messages returned are also wrong (recipient vs. signer).
+
+* jnlib/
+** provide jnlib_malloc and try to remove all jnlib_xmalloc.
+
+* g10/
+** issue a NO_SECKEY xxxx if a -u key was not found.
+
+
+* When requiring libksba 1.0.1
+** Remove the extra GPG_ERR_NO_VALUE tests 
+   They have need added on 2006-10-18 to fix a libksba problem.
 
-* doc/
-** Explain how to setup a root CA key as trusted
-** Explain how trustlist.txt might be managed.
-** Write a script to generate man pages from texi.
+* When switching to libgcrypt 1.3
+** scd#encode_md_for_card, g10#encode_md_value, sm@do_encode_md
+   Remove the extra test for a valid algorithm as libgcrypt will do it
+   then in gcry_md_algo_info.
+** skclist.c
+   Remove the hard coded constant in random_is_faked.
+** g10/ Replace DIGEST_ALGO_SHA224
+   We can't do that right now because it is only defined by newer
+   versions of libgcrypt. 
+** GCRY_MD_USER
+   Remove these definitions.
 
-* Requirements by the BSI
-** Support authorityKeyIdentifier.keyIdentifier
-   This needs support in libksba/src/cert.c as well as in sm/*.c.
-   Need test certs as well.  Same goes for CRL authorityKeyIdentifier.
+* Extend selinux support to other modules
 
+* Remove -sat PGP2 compatibility hack