* gpgkeys_finger.c (main): We do not support relay fingering (i.e.
[gnupg.git] / keyserver / ChangeLog
index f8a34bb..434cd35 100644 (file)
@@ -1,3 +1,423 @@
+2004-10-14  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_finger.c (main): We do not support relay fingering
+       (i.e. "finger://relayhost/user@example.com"), but finger URLs are
+       occasionally miswritten that way.  Give an error in this case.
+
+2004-10-14  Werner Koch  <wk@g10code.com>
+
+       * gpgkeys_finger.c (get_key): s/unsigned char/byte/ due
+       to a strange typedef for RISC OS.  Noted by Stefan.
+
+2004-10-13  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c (main), gpgkeys_hkp.c (main), gpgkeys_http.c
+       (main), gpgkeys_finger.c (main): Call timeout functions before
+       performing an action that could block for a long time.
+
+       * ksutil.h, ksutil.c: New.  Right now just contains timeout
+       functions.
+
+2004-10-11  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_finger.c, gpgkeys_hkp.c, gpgkeys_http.c, gpgkeys_ldap.c:
+       Fix a few occurances of "filename" to `filename'.
+
+2004-10-11  Werner Koch  <wk@g10code.com>
+
+       * gpgkeys_finger.c: New.
+
+2004-08-27  Stefan Bellon  <sbellon@sbellon.de>
+
+       * gpgkeys_hkp.c (search_key): Fix the prior faulty fix by
+       introducing a cast but leaving skey unsigned.
+
+       * gpgkeys_hkp.c (search_key): Change type of variable skey from
+       unsigned char* to char* to fix type incompatibility.
+
+2004-08-23  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c (get_key, search_key), gpgkeys_hkp.c (get_key,
+       search_key), gpgkeys_http.c (get_key): Do not give informational
+       logs since this is now done inside gpg.
+
+       * gpgkeys_hkp.c (dehtmlize): Understand the quote character
+       (i.e. "&quot;") in HTML responses.
+       (search_key): Search key must be unsigned for url encoder to work
+       properly for 8-bit values.
+
+       * gpgkeys_ldap.c (get_key): Factor out informational display into
+       new function build_info().
+
+       * gpgkeys_ldap.c (build_attrs): Properly terminate user ID strings
+       that got shrunk due to encoding.
+
+2004-08-22  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c (find_basekeyspacedn): Use LDAP_SCOPE_BASE along
+       with a full DN rather than LDAP_SCOPE_ONELEVEL plus a filter to
+       find the pgpServerInfo object.  Some LDAP setups don't like the
+       search.
+       (main): Stop binding to the server since it seems no server really
+       requires it, and some require it not be there.
+
+2004-07-29  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c (main): Add "debug" option.  This is only really
+       useful with OpenLDAP, but it's practically vital to debug SSL and
+       TLS setups.  Add "basedn" option.  This allows users to override
+       the autodetection for base DN.  SSL overrides TLS, so TLS will not
+       be started on SSL connections (starting an already started car).
+
+2004-07-28  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c (build_attrs): Add "pgpKeySize" and "pgpSubKeyID"
+       attributes so we can do subkey searches.
+
+       * gpgkeys_ldap.c (main): Under certain error conditions, we might
+       try and unbind twice.  Don't.
+
+       * gpgkeys_ldap.c (join_two_modlists): New.
+       (send_key): Use new function so we can try a modify operation
+       first, and fail over to an add if that fails.  Add cannot cope
+       with the NULLs at the head of the modify request, so we jump into
+       the list in the middle.
+
+2004-07-27  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c (main): Don't try and error out before making a
+       ldaps connection to the NAI keyserver since we cannot tell if it
+       is a NAI keyserver until we connect.  Fail if we cannot find a
+       base keyspace DN.  Fix a false success message for TLS being
+       enabled.
+
+2004-07-20  Werner Koch  <wk@gnupg.org>
+
+       * gpgkeys_ldap.c [_WIN32]: Include Windows specific header files.
+       Suggested by Brian Gladman.
+
+2004-05-26  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_http.c: General polish and removal of leftover stuff
+       from gpgkeys_hkp.c.
+
+2004-05-21  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_http.c (get_key): Cosmetic fix - make sure that URLs
+       with no path use a path of "/".
+
+       * gpgkeys_ldap.c (ldap2epochtime): We can always rely on timegm()
+       being available now, since it's a replacement function.
+
+2004-05-20  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_http.c: New program to do a simple HTTP file fetch using
+       the keyserver interface.
+
+       * Makefile.am: Build it.
+
+2004-02-28  David Shaw  <dshaw@jabberwocky.com>
+
+       * Makefile.am: Don't split LDADD across two lines since some make
+       programs can't handle blank lines after a \ continuation.  Noted
+       by Christoph Moench-Tegeder.
+
+2004-02-25  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c (send_key): List pgpCertID as one of the deleted
+       attributes.  This guarantees that if something goes wrong, we
+       won't be able to complete the transaction, thus leaving any key
+       already existing on the server intact.
+
+2004-02-23  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c (delete_one_attr): Removed.
+       (make_one_attr): Delete functionality added.  Optional deduping
+       functionality added (currently only used for pgpSignerID).
+       (build_attrs): Translate sig entries into pgpSignerID.  Properly
+       build the timestamp for pgpKeyCreateTime and pgpKeyExpireTime.
+
+2004-02-22  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c (delete_one_attr): New function to replace
+       attributes with NULL (a "delete" that works even for nonexistant
+       attributes).
+       (send_key): Use it here to remove attributes so a modify operation
+       starts with a clean playing field.  Bias sends to modify before
+       add, since (I suspect) people update their existing keys more
+       often than they make and send new keys to the server.
+
+2004-02-21  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c (epoch2ldaptime): New.  Converse of
+       ldap2epochtime.
+       (make_one_attr): New. Build a modification list in memory to send
+       to the LDAP server.
+       (build_attrs): New. Parse INFO lines sent over by gpg.
+       (free_mod_values): New.  Unwinds a modification list.
+       (send_key_keyserver): Renamed from old send_key().
+       (send_key): New function to send a key to a LDAP server.
+       (main): Use send_key() for real LDAP servers, send_key_keyserver()
+       otherwise.
+
+2004-02-20  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c: Replacement prototypes for setenv and unsetenv.
+       (search_key): Catch a SIZELIMIT_EXCEEDED error and show the user
+       whatever the server did give us.
+       (find_basekeyspacedn): There is no guarantee that namingContexts
+       will be readable.
+
+       * Makefile.am: Link gpgkeys_ldap with libutil.a to get the
+       replacement functions (and eventually translations, etc).
+
+2004-02-19  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c (ldap2epochtime): LDAP timestamps are UTC, so do
+       not correct for timezones.
+       (main): Find the basekeyspacedn before we try to start TLS, so we
+       can give a better error message when a user tries to use TLS with
+       a LDAP keyserver.
+
+       * Makefile.am: Add automake conditionals to symlink gpgkeys_ldaps
+       to gpgkeys_ldap when needed.
+
+       * gpgkeys_ldap.c (main): Add support for LDAPS and TLS
+       connections.  These are only useful and usable when talking to
+       real LDAP keyservers.  Add new "tls" option to tune TLS use from
+       off, to try quietly, to try loudly, or to require TLS.
+
+       * gpgkeys_ldap.c (find_basekeyspacedn): New function to figure out
+       what kind of LDAP server we're talking to (either real LDAP or the
+       LDAP keyserver), and return the baseKeySpaceDN to find keys under.
+       (main): Call it from here, and remove the old code that only
+       handled the LDAP keyserver.
+
+2004-02-18  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c (ldap_to_gpg_err): Make sure that
+       LDAP_OPT_ERROR_NUMBER is defined before we use it.
+
+       * gpgkeys_mailto.in: Fix VERSION number.
+
+2004-01-13  Werner Koch  <wk@gnupg.org>
+
+       * gpgkeys_hkp.c (send_key): Add a content type.
+
+2004-01-11  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_hkp.c (search_key): Catch a mangled input file (useful
+       if something other than GnuPG is calling the program).
+       (main): Avoid possible pre-string write.  Noted by Christian
+       Biere.
+
+       * gpgkeys_ldap.c (main): Avoid possible pre-string write.
+
+2003-12-28  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_hkp.c (send_key, get_key, main): Work with new HTTP code
+       that passes the proxy in from the outside.  If the command file
+       sends a proxy, use it.  If it sends "http-proxy" with no
+       arguments, use $http_proxy from the environment.  Suggested by
+       Christian Biere.
+
+2003-12-28  Stefan Bellon  <sbellon@sbellon.de>
+
+       * gpgkeys_hkp.c, gpgkeys_ldap.c [__riscos__]: Removal of
+       unnecessary #ifdef __riscos__ sections.
+
+2003-11-27  Werner Koch  <wk@gnupg.org>
+
+       * gpgkeys_hkp.c (get_key): Fixed invalid use of fprintf without
+       format string.
+
+2003-10-25  Werner Koch  <wk@gnupg.org>
+
+       * Makefile.am (gpgkeys_hkp_LDADD): Replaced INTLLIBS by LIBINTL.
+
+2003-07-10  David Shaw  <dshaw@jabberwocky.com>
+
+       * Makefile.am: Use W32LIBS where appropriate.
+
+2003-05-30  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_hkp.c, gpgkeys_ldap.c: #include <getopt.h> if it is
+       available.  Also include extern references for optarg and optind
+       since there is no guarantee that any header file will include
+       them.  Standards?  We don't need no stinkin' standards.
+
+       * Makefile.am: Use @GETOPT@ to pull in libiberty on those
+       platforms that need it.
+
+2003-04-08  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_hkp.c (dehtmlize, parse_hkp_index): Fix memory
+       corruption bug on some platforms.
+
+2003-03-11  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_hkp.c (get_key): Properly handle CRLF line endings in
+       the armored key.
+       (main): Accept "try-dns-srv" option.
+
+       * Makefile.am: Use @CAPLIBS@ to link in -lcap if we are using
+       capabilities.  Use @SRVLIBS@ to link in the resolver if we are
+       using DNS SRV.
+
+2003-02-11  David Shaw  <dshaw@jabberwocky.com>
+
+       * Makefile.am: Use a local copy of libexecdir along with @PACKAGE@
+       so it can be easily overridden at make time.
+
+2003-01-29  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_mailto.in: Fix regexp to work properly if the "keyid" is
+       not a keyid, but rather a text string from the user ID.
+
+2003-01-06  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_hkp.c (get_key): Use options=mr when getting a key so
+       keyserver doesn't attach the HTML header which we will just have
+       to discard.
+
+2002-11-17  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c (main), gpgkeys_hkp.c (main): Use new keyserver
+       protocol version.
+
+2002-11-14  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c (get_key): The deduping code requires
+       "pgpcertid", but that was not available when running without
+       verbose on.  Noted by Stefan.
+
+2002-11-10  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c (get_key): Fix typo in deduping code.
+
+2002-11-05  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c (key_in_keylist, add_key_to_keylist,
+       free_keylist, get_key, search_key): The LDAP keyserver doesn't
+       remove duplicates, so remove them locally.  Do not include the key
+       modification time in the search response.
+
+2002-11-04  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_hkp.c (send_key), gpgkeys_ldap.c (send_key): Properly
+       handle an input file that does not include any key data at all.
+
+2002-10-24  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_hkp.c (main), gpgkeys_ldap.c (main): Add -V flag to
+       output protocol and program version.
+
+2002-10-21  David Shaw  <dshaw@jabberwocky.com>
+
+       * Makefile.am: Anything linking with libutil.a needs INTLLIBS as
+       well on platforms where INTLLIBS is set.
+
+2002-10-14  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_hkp.c (write_quoted): Use %-encoding instead of
+       \-encoding.
+       (parse_hkp_index): Use new keyserver key listing format, and add
+       support for disabled keys via include-disabled.
+
+       * gpgkeys_ldap.c (get_key): Don't print keysize unless it's >0.
+       (printquoted): Use %-encoding instead of \-encoding.
+       (search_key): Use new keyserver key listing format.
+
+2002-10-08  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c (search_key, main): Make sure LDAP values are
+       freed in case of error.
+
+       * gpgkeys_ldap.c (fail_all): New function to unwind a keylist and
+       error each item.
+       (main): Call fail_all from here, as needed.  Also add a NO_MEMORY
+       error in an appropriate place and fix error return code.
+       (ldap_err_to_gpg_err): Add KEYSERVER_UNREACHABLE.
+
+       * gpgkeys_hkp.c (fail_all): New function to unwind a keylist and
+       error each item.
+       (main): Call fail_all from here.  Also add a NO_MEMORY error in an
+       appropriate place.
+       (get_key): Use new UNREACHABLE error for network errors.
+
+2002-09-26  Werner Koch  <wk@gnupg.org>
+
+       * gpgkeys_ldap.c (send_key): Removed non-constant initializers.
+
+2002-09-24  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c (ldap_err_to_gpg_err, ldap_to_gpg_err, send_key,
+       get_key, search_key, main): Some minor error reporting
+       enhancements for use with GPA (show reasons for KEY FAILED).
+
+       * gpgkeys_hkp.c (send_key, get_key, search_key, main): Some minor
+       error reporting enhancements for use with GPA (show reasons for
+       KEY FAILED).
+
+2002-09-20  Werner Koch  <wk@gnupg.org>
+
+       * gpgkeys_hkp.c (handle_old_hkp_index): s/input/inp/ to avoid
+       shadowing warning.
+
+2002-09-19  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_hkp.c (get_key, handle_old_hkp_index, search_key):
+       Properly handle line truncation.
+
+2002-09-16  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_mailto.in: Add quasi-RFC-2368 mailto:email@addr?from=
+       syntax so people can set their own email address to respond to.
+
+       * gpgkeys_hkp.c (get_key): Properly respond with KEY FAILED (to
+       gpg) and "key not found" (to user) on failure.
+
+2002-09-13  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_hkp.c: (search_key, handle_old_hkp_index): Try and
+       request a machine-readable key index.  If the server supports
+       this, pass it through.  If the server does not support it, parse
+       the "index" page.
+
+2002-09-12  Stefan Bellon  <sbellon@sbellon.de>
+
+       * gpgkeys_hkp.c: Tidied up RISC OS initializations.
+
+2002-09-12  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_hkp.c (main): Remove warning - this is no longer
+       experimental code.
+
+2002-09-09  Werner Koch  <wk@gnupg.org>
+
+       * gpgkeys_hkp.c (send_key, get_key, search_key): Check return
+       value of malloc.
+       (dehtmlize): Use ascii_tolower to protect against weird locales.
+       Cast the argument for isspace for the sake of broken HP/UXes.
+       (search_key): Check return value of realloc.
+
+2002-09-09  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_ldap.c (get_key): Some compilers (RISC OS, HPUX c89)
+       don't like using variables as array initializers.
+
+       * gpgkeys_hkp.c (send_key): Use CRLF in headers.
+
+2002-08-28  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgkeys_hkp.c (parse_hkp_index): Use same types on all
+       platforms.  This was probably leftover from earlier code where the
+       typing mattered.
+
+       * gpgkeys_hkp.c: Overall cleanup from iobuf conversion.  Be
+       consistent in m_alloc and malloc usage.  Remove include-disabled
+       (meaningless on HKP).  RISC OS tweak.
+
 2002-08-27  David Shaw  <dshaw@jabberwocky.com>
 
        * gpgkeys_hkp.c, Makefile.am: Convert over to using iobufs.
        * gpgkeys_hkp.c (main): Don't warn about include-subkeys - it
        isn't unsupported, it's actually non-meaningful in the context of
        HKP (yet).
-       
+
        * gpgkeys_hkp.c (parse_hkp_index, dehtmlize): Move HTML
        functionality into new "dehtmlize" function.  Remove HTML before
        trying to parse each line from the keyserver.  If the keyserver
        * Initial version of gpgkeys_ldap (LDAP keyserver helper) and
        gpgkeys_mailto (email keyserver helper)
 
-       
- Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003,
+          2004 Free Software Foundation, Inc.
 
  This file is free software; as a special exception the author gives
  unlimited permission to copy and/or distribute it, with or without
  This file is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-       
\ No newline at end of file