Make it also work for the card.
[gnupg.git] / TODO
diff --git a/TODO b/TODO
index f37749c..c43aabe 100644 (file)
--- a/TODO
+++ b/TODO
+                                                              -*- outline -*-
 
-Scheduled for 1.1
------------------
-  * With option -i prompt before adding a key to the keyring and show some
-    info what we are about to add.
-
-  * Speed up calculation of key validation.
-
-  * Allow a replacement for the progress functions in ./cipher
-
-  * print a warning when a revoked/expired _secret_ key is used.
-
-  * --disable-asm should still assemble _udiv_qrnnd when needed
-
-  * Skip RO keyrings when importing a key.
-
-  * Use the newest encryption key if only the main key has been given.
-
-  * replace the keyserver stuff either by a call to a specialized
-    utility and SOCKSify this utility.
-
-  * Check the beginning of file to detect already compressed files (gzip,
-    bzip2, xdelta and some picture formats)
-
-
-Nice to have
-------------
-  * Official test vectors for 3DES-EDE3
-  * use DEL and ^H for erasing the previous character (util/ttyio.c).
-    or better readline.
-  * Print a warning if the directory mode is wrong.
-  * Do a real fix for bug #7 or document that it is a PGP 5 error.
-  * preferences of hash algorithms are not yet used.
-  * Replace the SIGUSR1 stuff by semaphores to avoid loss of a signal.
-    or use POSIX.4 realtime signals.  Overhaul the interface and the
-    test program.  Use it with the test suite?
-  * add test cases for invalid data (scrambled armor or other random data)
-  * add checking of armor trailers
-  * Burn the buffers used by fopen(), or use read(2). Does this
-    really make sense? And while we are at it:  implement a secure deletion
-    stuff?
-  * the pubkey encrypt functions should do some sanity checks.
-  * dynload: implement the hint stuff.
-  * "gpg filename.tar.gz.asc" should work like --verify (-sab).
-  * for messages created with "-t", it might make sense to append the
-    verification status of the message to the output (i.e. write something to
-    the --output file and not only to stderr.
-  * configure option where to find zlib
-  * Display more validity information about the user IDs at certain places.
-    We need a more general function to extract such kind of info from the
-    trustdb.
-  * Evaluate whether it make sense to replace the namehashs either by
-    using the user ID directly or by using pointers into the trustdb.
-  * --gen-prime may trigger a log_bug; should be a log_fatal.
+* src/base64
+** Make parsing more robust
+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
+** 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/certchain.c
+** When a certificate chain was sucessfully verified, make ephemeral certs used  in this chain permanent.
+** 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
+** mark all unimplemented commands and options.
+** Implement --default-key
+** 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
+** Check that all error code mapping is done.
+** Remove the inter-module dependencies between gpgsm and keybox
+** Add an source_of_key field
+
+* agent/command.c
+** Make sure that secure memory is used where appropriate
+
+* agent/pkdecrypt.c, agent/pksign.c
+** Don't use stdio to return results.
+** Support DSA
+
+* Move pkcs-1 encoding into libgcrypt.
+
+* 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.
+
+* scd/tlv.c
+  The parse_sexp fucntion 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.
+
+** Add a test to check the extkeyusage.
+
+* 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.
+
+* 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.
+** qbits
+   We pass a new qbit parameter to genkey - implement this in libgcrypt.
+
+* 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. 
+
+
+* Extend selinux support to other modules
+
+* Remove -sat PGP2 compatibility hack