(check_for_running_agent): New.
[gnupg.git] / TODO
diff --git a/TODO b/TODO
index bbd4995..dd69544 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
-
-  * add an option to use an OpenPGP packet as input (and don't build a literal
-    data packet)
-
-  * print a warning when a revoked/expired _secret_ key is used.
-
-
-Nice to have
-------------
-  * Offcial 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.
-  * replace the keyserver stuff either by a call to a specialized
-    utility and SOCKSify this utility.
-  * 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
-  * Check the beginning of file to detect already compresssed files (gzip,
-    bzip2, xdelta and some picture formats)
-  * 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.
+
+* 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
+
+* 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.
+
+* 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.
+
+* 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/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/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
+
+* agent/divert-scd.c
+ Remove the agent_reset_scd kludge.
+
+* Move pkcs-1 encoding into libgcrypt.
+
+* Use a MAC to protect some files.
+
+* 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/sc-investigate
+** Enhance with card compatibility check
+
+* 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.
+
+** Add a test to check the extkeyusage.
+
+* doc/
+** Explain how to setup a root CA key as trusted
+** Explain how trustlist.txt might be managed.
+
+
+* 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.
+
+** For pkcs#10 request header.
+   We use "NEW CERTIFICATE REQUEST" the specs say "CERTIFICATE
+   REQUEST" should be used.  However it seems that their CA software
+   is also able to use our header.  Binary pkcs#10 request are not
+   allowed.
+
+** Dirmngr:  name subordination (nameRelativeToCRLIssuer) 
+   is not yet supported by Dirmngr.
+
+** Dirmngr: CRL DP URI
+  The CRL DP shall use an URI for LDAP without a host name.  The host
+  name shall be looked by using the DN in the URI.  We don't implement
+  this yet.  Solution is to have a mapping DN->host in our ldapservers
+  configuration file.