* cardglue.c (open_card): Ask for card insertion.
[gnupg.git] / g10 / ChangeLog
index 7b9d244..2c6b1bc 100644 (file)
+2003-10-29  Werner Koch  <wk@gnupg.org>
+
+       * cardglue.c (open_card): Ask for card insertion.
+       (check_card_serialno): New.
+       (agent_scd_pksign, agent_scd_pkdecrypt): Use it here.
+       * cardglue.c (open_card): Issue insertion status message.
+       * status.h, status.c (STATUS_CARDCTRL): New.
+
+       * status.c (cpr_get_answer_okay_cancel): New.
+
+2003-10-28  Werner Koch  <wk@gnupg.org>
+
+       * keylist.c (list_keyblock_print): Denote secrets keys stored on a
+       card with an '>'. Print the '#' also for subkeys.
+       (list_keyblock_colon): Introduce new field 15 for sec/ssb to print
+       the serial number.
+
+2003-10-26  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Enhance the version-specific config file code to
+       try for more specific matches before giving up (e.g. 1.3.3-cvs,
+       1.3.3, 1.3, 1).
+
+2003-10-25  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Add --symmetric --encrypt command.  This generates
+       a message that can be decrypted via a passphrase or public key
+       system.
+
+       * main.h, encode.c (encode_seskey): Allow passing in an
+       already-created session key dek.
+       (encode_simple): Use the actual symmetric cipher when encrypting a
+       session key for a symmetric message.
+       (encode_crypt): Add a flag to trigger a hybrid mode that can be
+       decrypted via a passphrase or a pk.  Change all callers.
+
+       * mainproc.c (symkey_decrypt_sesskey): There is no way to tell the
+       difference here between a bad passphrase and a cipher algorithm
+       that we don't have, so use a error message that makes that clear.
+       Use the actual list of ciphers when checking whether a cipher is
+       invalid.  Return error if the decrypted cipher algorithm is
+       invalid.
+       (proc_symkey_enc): In a mixed passphrase/pk message, if a valid
+       dek already exists from decrypting via pk, do not try to process
+       the passphrase.
+       (proc_symkey_enc): Indicate when we're decrypting a session key as
+       opposed to decrypting data.  If a passphrase is invalid, discard
+       the dek so we'll keep trying.
+
+2003-10-25  Werner Koch  <wk@gnupg.org>
+
+       * ccid-driver.c (ccid_open_reader): Return an error if no USB
+       devices are found.
+
+       * Makefile.am: Replaced INTLLIBS by LIBINTL.
+
+       * g10.c (main) [ENABLE_CARD_SUPPORT]: Add a default for
+       --pcsc-driver.
+
+       * cardglue.c (learn_status_cb): Fixed faulty use of !space.
+
+2003-10-24  Werner Koch  <wk@gnupg.org>
+
+       * apdu.c (apdu_open_reader): Hacks for PC/SC under Windows.
+
+2003-10-21  Werner Koch  <wk@gnupg.org>
+
+       * passphrase.c (ask_passphrase): Add optional promptid arg.
+       Changed all callers.
+       * cardglue.c (pin_cb): Use it here, so the machine interface can
+       tell whether the Admin PIN is requested.
+
+       * cardglue.c (agent_scd_checkpin): New.
+
+       * misc.c (openpgp_pk_algo_usage): Added AUTH usage.
+
+       * app-openpgp.c (check_against_given_fingerprint): New. Factored
+       out that code elsewhere.
+       (do_check_pin): New.
+       * card-util.c (card_edit): New command "passwd".  Add logic to
+       check the PIN in advance.
+       (card_status): Add new args to return the serial number.  Changed
+       all callers.
+
+2003-10-14  David Shaw  <dshaw@jabberwocky.com>
+
+       * import.c (import_one): Show the keyid when giving the Elgamal
+       slow import warning.
+
+       * g10.c (main): Older versions used --comment "" to indicate no
+       comment.  Don't add an empty comment.
+
+2003-10-13  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyedit.c (show_key_with_all_names): Ownertrust is only
+       meaningful for the PGP or classic trust models.  Both validity and
+       ownertrust are not meaningful for the always trust model.
+
+2003-10-11  Werner Koch  <wk@gnupg.org>
+
+       * keygen.c: Always enable the gen_card_key prototype.
+
+2003-10-10  Werner Koch  <wk@gnupg.org>
+
+       * cardglue.c (card_close): New.
+       (agent_scd_change_pin): Implemented.
+
+       * ccid-driver.c (ccid_close_reader): New.
+       * apdu.c (close_ccid_reader, close_ct_reader, close_csc_reader)
+       (close_osc_reader, apdu_close_reader): New.  Not all are properly
+       implemented yet.
+       * g10.c (g10_exit): Use close_card.
+
+2003-10-09  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Give a deprecated option warning for
+       --show-keyring, --show-photos, --show-policy-url, --show-notation,
+       and their respective no- forms.
+
+       * options.skel: Remove show-photos and replace with
+       list/verify-options show-photos.  Remove no-mangle-dos-filenames.
+
+       * misc.c (parse_options): Allow for incomplete (but unambiguous)
+       options.
+
+2003-10-09  Werner Koch  <wk@gnupg.org>
+
+       * ccid-driver.c (ccid_transceive): Add T=1 chaining for sending.
+
+       * sign.c (do_sign) [!ENABLE_CARD_SUPPORT]: Return an error for
+       card keys.
+
+       * cardglue.c (agent_scd_pkdecrypt): Implemented.
+       * pubkey-enc.c (get_it) [ENABLE_CARD_SUPPORT]: Divert decryption
+       to card
+
+2003-10-08  Werner Koch  <wk@gnupg.org>
+
+       * cardglue.c (pin_cb): Detect whether an admin or regular PIN is
+       requested.
+       (genkey_status_cb): New.
+       (agent_scd_genkey): Implemented.
+
+       * keygen.c (generate_keypair): New arg CARD_SERIALNO and prepare
+       parameters for on card key generation. Changed all callers.
+       (do_generate_keypair): Add new arg card and merged casrd specific
+       changes from 1.9.
+       (proc_parameter_file): New arg card, apss it down to
+       do_generate_keypair and changed all callers.
+       (gen_card_key): New.
+
+       * g10.c: Include cardclue.h.
+       (main): s/app_set_default_reader_port/card_set_reader_port/.
+       * cardglue.c (card_set_reader_port): New to address include file
+       issues.
+
+2003-10-02  Werner Koch  <wk@gnupg.org>
+
+       * cardglue.c (learn_status_cb): Release values before assignment
+       so that it can be used by getattr to update the structure.
+       (agent_scd_getattr): New.
+
+       * keylist.c (print_pubkey_info): Add FP arg for optional printing
+       to a stream.  Changed all callers.
+
+2003-10-01  Werner Koch  <wk@gnupg.org>
+
+       * app-common.h, app-openpgp.c, iso7816.c, iso7816.h, apdu.c
+       * apdu.h, ccid-driver.c, ccid-driver.h, card-util.c: Updated
+       from current GnuPG 1.9. Changes over there are:
+       * card-util.c: Tweaked to use this source also under 1.3. 
+       (card_edit): New command "forcesig".
+       * card-util.c (print_name, print_isoname): Use 0 and not LF fro
+       the max_n arg of tty_print_utf8_string2.
+       * card-util.c (change_pin): Simplified.  We now have only a PIN
+       and an Admin PIN.
+       * ccid-driver.c: Detect GnuPG 1.3 and include appropriate files.
+       * apdu.c: Ditto.
+       * app-openpgp.c: Ditto.
+       * iso7816.c: Ditto.
+       (generate_keypair): Renamed to ..
+       (do_generate_keypair): .. this.
+       * app-common.h [GNUPG_MAJOR_VERSION]: New.
+       * iso7816.h [GNUPG_MAJOR_VERSION]: Include cardglue.h
+       * app-openpgp.c (do_change_pin): Make sure CVH1 and CHV2 are
+       always synced.
+       (verify_chv2, verify_chv3): New. Factored out common code.
+       (do_setattr, do_sign, do_auth, do_decipher): Change the names of
+       the prompts to match that we have only 2 different PINs.
+       (app_select_openpgp): Check whether the card enforced CHV1.
+       (convert_sig_counter_value): New. Factor out code from
+       get_sig_counter.
+
+       * Makefile.am (card_support_source): Depend on new AM conditional
+       to get the ifdef ENABLE_CARD_SUPPORT off the way from source
+       copied files.
+       (update-source-from-gnupg-2): Maintainer helper.
+       
+2003-10-01  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Add --no-groups to zero --group list.
+
+       * encode.c (encode_simple): Allow for 32 bytes (256 bits) of
+       symmetrically encrypted session key.  Use --s2k-cipher-algo to
+       choose cipher, rather than the default cipher.
+
+       * parse-packet.c (parse_subkeyenc): Give a warning if an
+       symmetrically encrypted session key is seen without salt.  Show in
+       --list-packets if a symetrically encrypted session key is present.
+
+       * pubkey-enc.c (get_it): Always show cipher-not-in-prefs warning
+       unless --quiet is set.  Use text name of cipher in warning.
+
+2003-09-30  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, g10.c (main), mainproc.c (check_sig_and_print): Add
+       --verify-option show-unusable-uids.
+
+       * gpgv.c (check_trustdb_stale): Stub.
+
+       * trustdb.c (get_validity): Move the up-to-date check to
+       check_trustdb_stale (new), so that it can be called before
+       validity is checked.
+       
+       * keylist.c (list_keyblock_print): Disable the overall key
+       validity display until it can be thought about more.  Use
+       check_trustdb_stale here to avoid putting the check warning in the
+       middle of a listed key.
+
+       * trustdb.c (init_trustdb): Only verify_own_keys() for those trust
+       models that it applies to (i.e. classic and OpenPGP).
+
+2003-09-29  Werner Koch  <wk@gnupg.org>
+
+       * keygen.c (do_add_key_flags, parse_parameter_usage): Add support
+       the proposed AUTH key flag.
+       * getkey.c (fixup_uidnode, merge_selfsigs_main) 
+       (merge_selfsigs_subkey, premerge_public_with_secret): Ditto.
+       * keylist.c (print_capabilities): Ditto.
+
+       * parse-packet.c (parse_key): Allow to parse the divert-to-card
+       S2K mode.
+       * build-packet.c (do_secret_key): Handle divert-to-card S2K
+       * seckey-cert.c (is_secret_key_protected): Ditto.
+       (check_secret_key): Ditto.
+
+       * keygen.c (do_ask_passphrase): Renamed from ask_passphrase.
+       * passphrase.c (ask_passphrase): New.
+
+2003-09-28  Werner Koch  <wk@gnupg.org>
+
+       * g10.c (main): New commands --card-edit, --card-status and
+       --change-pin.  New options --ctapi-driver, --pcsc-driver and
+       --disable-ccid
+       * options.h (DBG_CARD_IO): New.
+       * cardglue.c, cardclue.h: Enhanced.
+       * card-util.c: New. Taken from current the gnupg 1.9 branch.
+       * app-common.h, app-openpgp.c, iso7816.c, iso7816.h, apdu.c
+       * apdu.h, ccid-driver.c, ccid-driver.h: New.  Takem from the current
+       gnupg 1.9 branch withy minor changes to include directives.
+       * Makefile.am: Added these files.
+       
+2003-09-27  Werner Koch  <wk@gnupg.org>
+
+       * sign.c (do_sign) [ENABLE_CARD_SUPPORT]: Divert to card.
+       * cardglue.c, cardglue.h: New.
+       * Makefile.am (gpg_LDADD): Added.
+       (card_support_sources): New.
+       
+2003-09-25  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, g10.c (main), keylist.c (list_keyblock_print): Add
+       "show-unusable-uids" list-option to show revoked and/or expired
+       user IDs.
+
+2003-09-24  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyedit.c (show_key_with_all_names): Show names a little neater
+       by putting the [revoked] or [expired] in the space used for the
+       [validity].  There is also no point in showing "[unknown]
+       [revoked]".
+
+2003-09-23  David Shaw  <dshaw@jabberwocky.com>
+
+       * sign.c (mk_notation_policy_etc): Capitalize "URL".
+
+       * trustdb.c (validate_keys): Give a little more information while
+       rebuilding trustdb.
+
+       * pkclist.c (do_edit_ownertrust): Clarify "don't know".
+
+       * g10.c (main): Default to --no-mangle-dos-filenames.
+
+       * keydb.h, keyring.c (keyring_search), trustdb.c (search_skipfnc):
+       Expand the skipfnc to include a pointer to the user ID that
+       matched.
+
+       * getkey.c (skip_disabled): Rename to skip_unusable, and add
+       checks for expired or revoked user IDs.
+
+2003-09-22  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Deprecate --default-comment in favor of
+       --no-comments.
+
+       * options.h, g10.c (main), armor.c (armor_filter): Allow using
+       --comment multiple times to get multiple Comment: header lines.
+       --no-comments resets list.
+
+2003-09-11  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Trim --help to commonly used options.  Remove -f.
+
+2003-09-08  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Error out if --multifile is used with the commands
+       that don't support it yet (--sign, --clearsign, --detach-sign,
+       --symmetric, and --store).
+
+       * g10.c (main): Add --multifile as an alias to turn --encrypt into
+       --encrypt-files (plus --verify-files, --decrypt-files).
+
+       * encode.c (use_mdc), g10.c (main): Use RFC1991 and RFC2440
+       directly to check for MDC usability.  Do not set the force_mdc or
+       disable_mdc flags since there is no point any longer.
+
+2003-09-04  David Shaw  <dshaw@jabberwocky.com>
+
+       * armor.c (parse_hash_header, armor_filter), g10.c (print_hex,
+       print_mds), pkclist.c (algo_available): Drop TIGER/192 support.
+
+2003-09-03  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyedit.c (show_key_with_all_names): Fix assertion failure when
+       using toggle to see a secret key.  Reported by Maxim Britov.
+
+2003-08-31  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (add_keyserver_url), keyedit.c (keyedit_menu), sign.c
+       (mk_notation_policy_etc): Clarify a few strings.  It's a
+       "preferred keyserver URL".
+
+       * g10.c (main): Use "keyserver-url" instead of
+       "preferred-keyserver" for the sake of short and simple commands.
+
+2003-08-30  David Shaw  <dshaw@jabberwocky.com>
+
+       * main.h, keygen.c (keygen_add_keyserver_url): Signature callback
+       for adding a keyserver URL.
+
+       * keyedit.c (keyedit_menu, menu_set_keyserver_url): New command to
+       set preferred keyserver to specified (or all) user IDs.
+
+       * build-packet.c (build_sig_subpkt): Set preferred keyserver flag
+       while building a preferred keyserver subpacket.
+
+       * keylist.c (show_policy_url, show_keyserver_url): URLs might be
+       UTF8.
+
+       * keyedit.c (menu_addrevoker): Fix leaking a few bytes.
+
+2003-08-29  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyedit.c (show_key_with_all_names): Use list-option
+       show-long-keyid in main --edit-key display.
+
+       * keyedit.c (print_and_check_one_sig): Use list-option
+       show-long-keyid in --edit-key "check" function.
+
+2003-08-28  David Shaw  <dshaw@jabberwocky.com>
+
+       * passphrase.c (agent_send_all_options): Make use of $GPG_TTY.
+
+       * g10.c (main): Disable use-agent if passphrase-fd is given
+       later. Suggested by Kurt Garloff.
+
+       * exec.c, g10.c, gpgv.c, passphrase.c, photoid.c:
+       s/__MINGW32__/_WIN32/ to help building on native Windows
+       compilers.  Requested by Brian Gladman.  From Werner on stable
+       branch.
+
+2003-08-25  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, g10.c (main): Add list-option
+       list-preferred-keyserver.
+
+       * keyedit.c (change_passphrase): When responding 'no' to the blank
+       passphrase question, re-prompt for a new passphrase.  This is bug
+       #202.
+
+       * mainproc.c (check_sig_and_print): Use two different preferred
+       keyserver displays - one if the key is not present (to tell the
+       user where to get the key), the other if it is present (to tell
+       the user where the key can be refreshed).
+
+       * packet.h, parse-packet.c (parse_signature): Set flag if a
+       preferred keyserver is present.
+
+       * keylist.c (list_keyblock_print): Show keyserver url in listings
+       with list-option show-keyserver-url.
+
+2003-08-24  David Shaw  <dshaw@jabberwocky.com>
+
+       * Makefile.am: Use NETLIBS instead of EGDLIBS.
+
+       * mainproc.c (check_sig_and_print): Get the uid validity before
+       printing any sig results to avoid munging the output with trustdb
+       warnings.
+
+       * g10.c (main): Don't include --show-keyring in --help as it is
+       deprecated.
+
+2003-08-21  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgv.c: Remove extra semicolon (typo).
+
+       * options.skel: Note that keyserver.pgp.com isn't synchronized,
+       and explain the roundrobin a bit better.
+
+       * sig-check.c (check_key_signature2), import.c (import_one,
+       import_revoke_cert, chk_self_sigs, delete_inv_parts,
+       collapse_uids, merge_blocks): Make much quieter during import of
+       slightly munged, but recoverable, keys. Use log_error for
+       unrecoverable import failures.
+
+       * keyring.c (keyring_rebuild_cache): Comment.
+
+       * sign.c (mk_notation_and_policy): Making a v3 signature with
+       notations or policy urls is an error, not an info (i.e. increment
+       the errorcount). Don't print the notation or policy url to stdout
+       since it can be mixed into the output stream when piping and munge
+       the stream.
+
+2003-08-12  David Shaw  <dshaw@jabberwocky.com>
+
+       * packet.h, sig-check.c (signature_check2, do_check,
+       do_check_messages): Provide a signing-key-is-revoked flag.  Change
+       all callers.
+
+       * status.h, status.c (get_status_string): New REVKEYSIG status tag
+       for a good signature from a revoked key.
+
+       * mainproc.c (do_check_sig, check_sig_and_print): Use it here.
+
+       * import.c (import_revoke_cert, merge_blocks, merge_sigs): Compare
+       actual signatures on import rather than using keyid or class
+       matching.  This does not change actual behavior with a key, but
+       does mean that all sigs are imported whether they will be used or
+       not.
+
+       * parse-packet.c (parse_signature): Don't give "signature packet
+       without xxxx" warnings for experimental pk algorithms.  An
+       experimental algorithm may not have a notion of (for example) a
+       keyid (i.e. PGP's x.509 stuff).
+
+2003-08-02  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, g10.c (main), keylist.c (list_keyblock_print),
+       keyedit.c (print_and_check_one_sig): New "show-sig-expire"
+       list-option to show signature expiration dates (if any).
+
+2003-07-24  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, g10.c (main, add_keyserver_url): Add
+       --sig-preferred-keyserver to implant a "where to get my key"
+       subpacket into a signature.
+
+       * sign.c (mk_notation_and_policy): Rename to
+       mk_notation_policy_etc and add preferred keyserver support for
+       signatures.
+
+2003-07-21  David Shaw  <dshaw@jabberwocky.com>
+
+       * keygen.c (do_add_key_flags): Don't set the certify flag for
+       subkeys.
+       (ask_algo): Provide key flags for DSA, Elgamal_e, and Elgamal
+       subkeys.
+       (generate_keypair): Provide key flags for the default DSA/Elgamal
+       keys.
+
+       * sig-check.c (signature_check, signature_check2,
+       check_key_signature, check_key_signature2): Allow passing NULLs
+       for unused parameters in the x2 form of each function to avoid the
+       need for dummy variables. getkey.c, mainproc.c: Change all
+       callers.
+
+       * trustdb.h, trustdb.c (read_trust_options): New.  Returns items
+       from the trustdb version record.
+
+       * keylist.c (public_key_list): Use it here for the new "tru"
+       record.
+
+       * gpgv.c (read_trust_options): Stub.
+
+2003-07-20  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyedit.c (show_key_with_all_names): Use list-option
+       show-validity in --edit-key interface as well.
+
+2003-07-19  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, g10.c (main), mainproc.c (check_sig_and_print): Add
+       verify-options "show-validity" and "show-long-keyid" to show
+       trustdb validity and long keyids during (file) signature
+       verification.
+
+       * packet.h, main.h, sig-check.c (signature_check2,
+       check_key_signature2, do_check): If ret_pk is set, fill in the pk
+       used to verify the signature.  Change all callers in getkey.c,
+       mainproc.c, and sig-check.c.
+
+       * keylist.c (list_keyblock_colon): Use the ret_pk from above to
+       put the fingerprint of the signing key in "sig" records during a
+       --with-colons --check-sigs.  This requires --no-sig-cache as well
+       since we don't cache fingerprints.
+
+2003-07-10  David Shaw  <dshaw@jabberwocky.com>
+
+       * parse-packet.c (parse_signature): No need to reserve 8 bytes for
+       the unhashed signature cache any longer.
+
+       * misc.c (pct_expando): Add two new expandos - signer's
+       fingerprint (%g), and signer's primary fingerprint (%p).
+
+       * Makefile.am: Include W32LIBS where appropriate.
+
+       * g10.c (main): Add --rfc2440 alias for --openpgp since in a few
+       months, they won't be the same thing.
+
+       * keyserver.c (parse_keyserver_uri): Accept "http" as an alias for
+       "hkp", since it is occasionally written that way.
+       (keyserver_spawn): Use ascii_isspace to avoid locale issues.
+
+       * keygen.c (ask_user_id): Make --allow-freeform-uid apply to the
+       email field as well as the name field, and allow mixing fields
+       when it is set.
+
+       * options.skel: Use subkeys.pgp.net as the default keyserver.
+
+       * trustdb.c (validate_one_keyblock): Certifications on revoked or
+       expired uids do not count in the web of trust.
+
+       * signal.c (init_one_signal, pause_on_sigusr, do_block): Only use
+       sigprocmask() if we have sigset_t, and only use sigaction() if we
+       have struct sigaction.  This is for Forte c89 on Solaris which
+       seems to define only the function call half of the two pairs by
+       default.
+       (pause_on_sigusr): Typo.
+       (do_block): If we can't use sigprocmask() and sigset_t, try to get
+       the number of signals from NSIG as well as MAXSIG, and if we
+       can't, fail with an explanation.
+
+       * signal.c, tdbio.c: Comment out the transaction code.  It was not
+       used in this version, and was causing some build problems on
+       quasi-posix platforms (Solaris and Forte c89).
+
+       * keylist.c (list_keyblock_colon): Don't include validity values
+       when listing secret keys since they can be incorrect and/or
+       misleading.  This is a temporary kludge, and will be handled
+       properly in 1.9/2.0.
+
+       * mainproc.c (check_sig_and_print): Only show the "key available
+       from" preferred keyserver line if the key is not currently
+       present.
+
+       * keyedit.c (sign_uids): Do not sign expired uids without --expert
+       (same behavior as revoked uids).  Do not allow signing a user ID
+       without a self-signature.  --expert overrides.  Add additional
+       prompt to the signature level question.
+       (menu_expire): When changing expiration dates, don't replace
+       selfsigs on revoked uids since this would effectively unrevoke
+       them. There is also no point in replacing expired selfsigs.  This
+       is bug #181
+
+2003-07-10  David Shaw  <dshaw@jabberwocky.com> (from Werner on stable branch)
+
+       * g10.c (add_notation_data): Make sure that only ascii is passed
+       to iscntrl.  Noted by Christian Biere.
+       * getkey.c (classify_user_id2): Replaced isspace by spacep
+       * keygen.c (ask_user_id): Ditto.
+       (get_parameter_algo): Ditto.
+       * keyedit.c (keyedit_menu): Ditto.
+       * tdbdump.c (import_ownertrust): Ditto.  s/isxdigit/hexdigitp/.
+       * revoke.c (ask_revocation_reason): 
+       * keyserver.c (keyserver_spawn): Dito.
+
+2003-06-10  Werner Koch  <wk@gnupg.org>
+
+       * parse-packet.c (parse): Disallow old style partial length for
+       all key material packets to avoid possible corruption of keyrings.
+
+2003-06-08  Werner Koch  <wk@gnupg.org>
+
+       * import.c (import_keys_internal): Invalidate the cache so that
+       the file descriptor gets closed.  Fixes bug reported by Juan
+       F. Codagnone.
+
+2003-06-04  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.skel: Use new hkp://subkeys.pgp.net as sample keyserver
+       since they at least handle subkeys correctly.
+
+       * options.h, g10.c (main), main.h, keylist.c (show_keyserver_url),
+       mainproc.c (check_sig_and_print), parse-packet.c (dump_sig_subpkt,
+       parse_one_sig_subpkt, can_handle_critical): Add read-only support
+       for preferred keyserver subpackets.  They're basically policy URLs
+       with a different name.  Add a verify-option
+       "show-preferred-keyserver" to turn them on and off (on by default,
+       as per stable branch).
+
+       * g10.c (main): Add "--set-notation" as alias to "--notation-data"
+       this is to make things consistent with --set-policy-url meaning
+       both sigs and certs.
+
+2003-06-03  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, g10.c (main), keylist.c (list_keyblock_print): Add
+       "show-validity" and "show-long-keyid" list-options.
+
+       * gpgv.c (get_validity, trust_value_to_string): Stubs.
+
+       * g10.c (main): Use SAFE_VERSION instead of VERSION in the
+       version-specific gpg.conf file so it can be overridden on RISCOS.
+
+2003-06-01  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main), keylist.c (show_policy_url, show_notation),
+       mainproc.c (check_sig_and_print): Emulate the old policy and
+       notation behavior (display by default).  Send to status-fd whether
+       it is displayed on the screen or not.
+
+       * g10.c (main): Since we now have some options in devel that won't
+       work in a stable branch gpg.conf file, try for a version-specific
+       gpg.conf-VERSION file before falling back to gpg.conf.
+
+       * main.h, options.h: Move various option flags to options.h.
+
+2003-05-31  David Shaw  <dshaw@jabberwocky.com>
+
+       * mainproc.c (check_sig_and_print), main.h, keylist.c
+       (show_policy, show_notation): Collapse the old print_notation_data
+       into show_policy() and show_notation() so there is only one
+       function to print notations and policy URLs.
+
+       * options.h, main.h, g10.c (main), keyedit.c
+       (print_and_check_one_sig), keylist.c (list_one,
+       list_keyblock_print), pkclist.c (do_edit_ownertrust), sign.c
+       (mk_notation_and_policy): New "list-options" and "verify-options"
+       commands.  These replace the existing
+       --show-photos/--no-show-photos,
+       --show-notation/--no-show-notation,
+       --show-policy-url/--no-show-policy-url, and --show-keyring
+       options.  The new method is more flexible since a user can specify
+       (for example) showing photos during sig verification, but not in
+       key listings.  The old options are emulated.
+
+       * main.h, misc.c (parse_options): New general option line
+       parser. Fix the bug in the old version that did not handle report
+       syntax errors after a valid entry.
+
+       * import.c (parse_import_options), export.c
+       (parse_export_options): Call it here instead of duplicating the
+       code.
+
+2003-05-30  David Shaw  <dshaw@jabberwocky.com>
+
+       * keylist.c (list_one): Don't show the keyring filename when in
+       --with-colons mode.  Actually translate "Keyring" string.
+
+       * mainproc.c (proc_tree): We can't currently handle multiple
+       signatures of different classes or digests (we'd pretty much have
+       to run a different hash context for each), but if they are all the
+       same, make an exception.  This is Debian bug #194292.
+
+       * sig-check.c (check_key_signature2): Make string translatable.
+
+       * packet.h, getkey.c (fixup_uidnode): Mark real primary uids
+       differently than assumed primaries.
+
+       * keyedit.c (no_primary_warning): Use the differently marked
+       primaries here in a new function to warn when an --edit-key
+       command might rearrange the self-sig dates enough to change which
+       uid is primary.
+       (menu_expire, menu_set_preferences): Use no_primary_warning()
+       here.
+
+       * Makefile.am: Use @DLLIBS@ for -ldl.
+
+2003-05-26  David Shaw  <dshaw@jabberwocky.com>
+
+       * getkey.c (premerge_public_with_secret): Made "no secret subkey
+       for" warning a verbose item and translatable. (From wk on stable
+       branch)
+
+       * sig-check.c (check_key_signature2): Made "no subkey for subkey
+       binding packet" a verbose item instead of a !quiet one.  There are
+       too many garbled keys out in the wild. (From wk on stable branch)
+
+       * filter.h: Remove const from WHAT. (From wk on stable branch)
+
+       * progress.c (handle_progress): Store a copy of
+       NAME. (progress_filter): Release WHAT, make sure not to print a
+       NULL WHAT. (From wk on stable branch)
+
+       * openfile.c (open_sigfile): Adjust free for new progress
+       semantics. (From wk on stable branch)
+
+       * plaintext.c (ask_for_detached_datafile): Don't dealloc
+       pfx->WHAT. (From wk on stable branch)
+
+       * seckey-cert.c (do_check): Issue the RSA_OR_IDEA status when the
+       cipher algo is IDEA to make it easier to track down the
+       problem. (From twoaday on stable branch)
+       
+2003-05-24  David Shaw  <dshaw@jabberwocky.com>
+
+       * armor.c, g10.c, kbnode.c, misc.c, pkclist.c, sign.c,
+       build-packet.c, getkey.c, keydb.c, openfile.c, plaintext.c,
+       status.c, gpgv.c, keygen.c, options.h, sig-check.c, tdbio.h,
+       encode.c, mainproc.c, parse-packet.c, signal.c, textfilter.c: Edit
+       all preprocessor instructions to remove whitespace before the '#'.
+       This is not required by C89, but there are some compilers out
+       there that don't like it.
+
+2003-05-21  David Shaw  <dshaw@jabberwocky.com>
+
+       * trustdb.h, trustdb.c (is_disabled), gpgv.c (is_disabled): Rename
+       is_disabled to cache_disabled_value, which now takes a pk and not
+       just the keyid. This is for speed since there is no need to
+       re-fetch a key when we already have that key handy.  Cache the
+       result of the check so we don't need to hit the trustdb more than
+       once.
+       
+       * getkey.c (skip_disabled): New function to get a pk and call
+       is_disabled on it. (key_byname): Use it here.
+       
+       * packet.h, getkey.c (skip_disabled), keylist.c
+       (print_capabilities): New "pk_is_disabled" macro to retrieve the
+       cached disabled value if available, and fill it in via
+       cache_disabled_value if not available.
+
+       * trustdb.c (get_validity): Cache the disabled value since we have
+       it handy and it might be useful later.
+
+       * parse-packet.c (parse_key): Clear disabled flag when parsing a
+       new key.  Just in case someone forgets to clear the whole key.
+
+       * getkey.c (merge_selfsigs_main): Add an "if all else fails" path
+       for setting a single user ID primary when there are multiple set
+       primaries all at the same second, or no primaries set and the most
+       recent user IDs are at the same second, or no signed user IDs at
+       all. This is arbitrary, but deterministic.
+
+       * exec.h, photoid.h: Add copyright message.
+
+       * keylist.c (list_keyblock_print): Don't dump attribs for
+       revoked/expired/etc uids for non-colon key listings.  This is for
+       consistency with --show-photos.
+
+       * main.h, keylist.c (dump_attribs), mainproc.c
+       (check_sig_and_print): Dump attribs if --attrib-fd is set when
+       verifying signatures.
+       
+       * g10.c (main): New --gnupg option to disable the various
+       --openpgp, --pgpX, etc. options.  This is the same as --no-XXXX
+       for those options.
+
+       * revoke.c (ask_revocation_reason): Clear old reason if user
+       elects to repeat question.  This is bug 153.
+
+       * keyedit.c (sign_uids): Show keyid of the key making the
+       signature.
+
+2003-05-21  Werner Koch  <wk@gnupg.org>
+
+       * progress.c (handle_progress)
+       * sign.c (write_plaintext_packet)
+       * encode.c (encode_simple,encode_crypt): Make sure that a filename
+       of "-" is considered to be stdin so that iobuf_get_filelength
+       won't get called.  This fixes bug 156 reported by Gregery Barton.
+
+2003-05-02  David Shaw  <dshaw@jabberwocky.com>
+
+       * packet.h, build-packet.c (build_sig_subpkt), export.c
+       (do_export_stream), import.c (remove_bad_stuff, import),
+       parse-packet.c (dump_sig_subpkt, parse_one_sig_subpkt): Remove
+       vestigal code for the old sig cache subpacket.  This wasn't
+       completely harmless as it caused subpacket 101 to disappear on
+       import and export.
+
+       * options.h, armor.c, cipher.c, g10.c, keyedit.c, pkclist.c,
+       sign.c, encode.c, getkey.c, revoke.c: The current flags for
+       different levels of PGP-ness are massively complex.  This is step
+       one in simplifying them. No functional change yet, just use a
+       macro to check for compliance level.
+
+       * sign.c (sign_file): Fix bug that causes spurious compression
+       preference warning.
+
+       * sign.c (clearsign_file): Fix bug that prevents proper warning
+       message from appearing when clearsigning in --pgp2 mode with a
+       non-v3 RSA key.
+
+       * main.h, misc.c (compliance_option_string, compliance_string,
+       compliance_failure), pkclist.c (build_pk_list), sign.c (sign_file,
+       clearsign_file), encode.c (encode_crypt,
+       write_pubkey_enc_from_list): New functions to put the "this
+       message may not be usable...." warning in one place.
+
+       * options.h, g10.c (main): Part two of the simplification.  Use a
+       single enum to indicate what we are compliant to (1991, 2440,
+       PGPx, etc.)
+
+       * g10.c (main): Show errors for failure in export, send-keys,
+       recv-keys, and refresh-keys.
+
+       * options.h, g10.c (main): Give algorithm warnings for algorithms
+       chosen against the --pgpX and --openpgp rules.
+
+       * keydb.h, pkclist.c (algo_available): Make TIGER192 invalid in
+       --openpgp mode.
+
+       * sign.c (sign_file), pkclist.c (algo_available): Allow passing a
+       hint of 0.
+
+2003-05-01  David Shaw  <dshaw@jabberwocky.com>
+
+       * tdbio.c (create_version_record): Only create new trustdbs with
+       TM_CLASSIC or TM_PGP.
+
+       * trustdb.h, trustdb.c (trust_string, get_ownertrust_string,
+       get_validity_string, ask_ownertrust, validate_keys), pkclist.c
+       (do_edit_ownertrust): Rename trust_string to trust_value_to_string
+       for naming consistency.
+
+       * trustdb.h, trustdb.c (string_to_trust_value): New function to
+       translate a string to a trust value.
+
+       * g10.c (main): Use string_to_trust_value here for
+       --force-ownertrust.
+       
+       * options.h, g10.c (main), trustdb.c (trust_model_string,
+       init_trustdb, check_trustdb, update_trustdb, get_validity,
+       validate_one_keyblock): An "OpenPGP" trust model is misleading
+       since there is no official OpenPGP trust model.  Use "PGP"
+       instead.
+
+2003-04-30  David Shaw  <dshaw@jabberwocky.com>
+
+       * build-packet.c (build_sig_subpkt): Comments.
+
+       * exec.c (exec_write): Cast NULL to void* to properly terminate
+       varargs list.
+
+       * keyedit.c (show_key_with_all_names): Just for safety, catch an
+       invalid pk algorithm.
+
+       * sign.c (make_keysig_packet): Crucial that the call to mksubpkt
+       comes LAST before the calls to finalize the sig as that makes it
+       possible for the mksubpkt function to get a reliable pointer to
+       the subpacket area.
+
+       * pkclist.c (do_we_trust_pre): If an untrusted key was chosen by a
+       particular user ID, use that ID as the one to ask about when
+       prompting whether to use the key anyway.
+       (build_pk_list): Similar change here when adding keys to the
+       recipient list.
+
+       * trustdb.c (update_validity): Fix bug that prevented more than
+       one validity record per trust record.
+       (get_validity): When retrieving validity for a (user) supplied
+       user ID, return the validity for that user ID only, and do not
+       fall back to the general key validity.
+       (validate_one_keyblock): Some commentary on whether
+       non-self-signed user IDs belong in the web of trust (arguably,
+       they do).
+
+2003-04-27  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Add --no-textmode.
+
+       * export.c (do_export_stream), keyedit.c (show_key_with_all_names,
+       menu_addrevoker), mainproc.c (check_sig_and_print), photoid.c
+       (show_photos), sign.c (mk_notation_and_policy), trustdb.c
+       (get_validity, reset_trust_records, validate_keys): Make some
+       strings translatable.
+
+       * mainproc.c (check_sig_and_print): Show digest algorithm and sig
+       class when verifying a sig with --verbose on, and add version, pk
+       and hash algorithms and sig class to VALIDSIG.
+       
+       * parse-packet.c (enum_sig_subpkt): Make a warning message a
+       --verbose warning message since we don't need to warn every time
+       we see an unknown critical (we only need to invalidate the
+       signature).
+
+       * trustdb.c (init_trustdb): Check the trustdb options even with
+       TM_AUTO since the auto may become TM_CLASSIC or TM_OPENPGP.
+
+2003-04-26  David Shaw  <dshaw@jabberwocky.com>
+
+       * sign.c (do_sign): Show the hash used when making a signature in
+       verbose mode.
+
+       * tdbio.h, tdbio.c (tdbio_read_model): New function to return the
+       trust model used in a given trustdb.
+
+       * options.h, g10.c (main), trustdb.c (init_trustdb, check_trustdb,
+       update_trustdb): Use tdbio_read_model to implement an "auto" trust
+       model which is set via the trustdb.
+
+2003-04-23  David Shaw  <dshaw@jabberwocky.com>
+
+       * import.c (import_revoke_cert): Remove ultimate trust when
+       revoking an ultimately trusted key.
+
+       * keyedit.c (sign_uids): Allow replacing expired signatures.
+       Allow duplicate signatures with --expert.
+
+       * pkclist.c (check_signatures_trust): Don't display a null
+       fingerprint when checking a signature with --always-trust enabled.
+
+       * filter.h (progress_filter_context_t), progress.c
+       (handle_progress), plaintext.c (ask_for_detached_datafile,
+       hash_datafiles): Fix compiler warnings.  Make "what" constant.
+
+       * build-packet.c (do_plaintext): Do not create invalid literal
+       packets with >255-byte names.
+
+2003-04-15  Werner Koch  <wk@gnupg.org>
+
+       * Makefile.am (AM_CFLAGS): Make use of AM_CFLAGS and AM_LDFLAGS.
+
+       * g10.c, options.h: New option --enable-progress-filter.
+       * progress.c (handle_progress): Make use of it.
+
+2003-04-15  Marcus Brinkmann  <marcus@g10code.de>
+
+       * progress.c: New file.
+       * Makefile.am (common_source): Add progress.c.
+       * filter.h (progress_filter_context_t): New type.
+       (progress_filter, handle_progress): New prototypes.
+       * main.h (open_sigfile): New argument for prototype.
+       * openfile.c (open_sigfile): New argument to install progress
+       filter.
+       * encode.c (encode_simple): New variable PFX.  Register
+       progress filter.  Install text_filter after that.
+       (encode_crypt): Likewise.
+       * sign.c (sign_file): Likewise.
+       (clearsign_file): Likewise.
+       * decrypt.c (decrypt_message): Likewise.
+       (decrypt_messages): Likewise.
+       * verify.c (verify_signatures): Likewise.
+       (verify_one_file): Likewise.
+       * plaintext.c (hash_datafiles): Likewise.
+       (ask_for_detached_datafile): Likewise.
+
+2003-04-10  Werner Koch  <wk@gnupg.org>
+
+       * passphrase.c (read_passphrase_from_fd): Do a dummy read if the
+       agent is to be used.  Noted by Ingo Klöcker.
+       (agent_get_passphrase): Inhibit caching when we have no
+       fingerprint.  This is required for key generation as well as for
+       symmetric only encryption.
+
+       * passphrase .c (agent_get_passphrase): New arg CANCELED.
+       (passphrase_to_dek): Ditto.  Passed to above.  Changed all
+       callers to pass NULL.
+       * seckey-cert.c (do_check): New arg CANCELED.
+       (check_secret_key): Terminate loop when canceled.
+
+       * keyedit.c (change_passphrase): Pass ERRTEXT untranslated to
+       passphrase_to_dek and translate where appropriate.
+       * seckey-cert.c (check_secret_key): Ditto.
+       * keygen.c (ask_passphrase): Ditto.
+       * passphrase.c (agent_get_passphrase): Translate the TRYAGAIN_TEXT.
+       Switch the codeset to utf-8.
+
+2003-04-09  Werner Koch  <wk@gnupg.org>
+
+       * decrypt.c (decrypt_messages): Fixed error handling; the function
+       used to re-loop with same file after an error.  Reported by Joseph
+       Walton.
+
+2003-04-08  David Shaw  <dshaw@jabberwocky.com>
+
+       * main.h, g10.c (main), import.c (parse_import_options,
+       fix_pks_corruption): It's really PKS corruption, not HKP
+       corruption.  Keep the old repair-hkp-subkey-bug command as an
+       alias.
+
+       * g10.c (main): Rename --no-version to --no-emit-version for
+       consistency.  Keep --no-version as an alias.
+
+2003-04-04  David Shaw  <dshaw@jabberwocky.com>
+
+       * pkclist.c (algo_available): PGP 8 can use the SHA-256 hash.
+
+       * sign.c (sign_file, clearsign_file, sign_symencrypt_file): Remove
+       unused code.
+
+2003-04-01  Werner Koch  <wk@gnupg.org>
+
+       * mainproc.c (check_sig_and_print): Add primary key fpr to VALIDSIG
+       status.
+
+2003-03-24  David Shaw  <dshaw@jabberwocky.com>
+
+       * keydb.h: Err on the side of making an unknown signature a SIG
+       rather than a CERT.
+
+       * import.c (delete_inv_parts): Discard any key signatures that
+       aren't key types (i.e. 0x00, 0x01, etc.)
+
+       * g10.c (main): Add deprecated option warning for
+       --list-ownertrust.  Add --compression-algo alias for
+       --compress-algo.  Change --version output strings to match
+       "showpref" strings, and make translatable.
+
+       * status.c (do_get_from_fd): Accept 'y' as well as 'Y' for
+       --command-fd boolean input.
+
+       * trustdb.c: Fix typo (DISABLE_REGEXP -> DISABLE_REGEX)
+
+       * keyedit.c (show_key_with_all_names_colon): Show no-ks-modify
+       flag.
+
+2003-03-11  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, g10.c (main), keyserver.c (kopts): Add "try-dns-srv"
+       keyserver option.  Defaults to on.
+
+       * passphrase.c (agent_get_passphrase): Fix memory leak with
+       symmetric messages.  Fix segfault with symmetric messages.  Fix
+       incorrect prompt with symmetric messages.
+
+2003-03-10  Werner Koch  <wk@gnupg.org>
+
+       * compress.c (init_uncompress): Use a 15 bit window size so that
+       the output of implementations which don't run for PGP 2
+       compatibility won't get garbled.
+
+2003-03-04  David Shaw  <dshaw@jabberwocky.com>
+
+       * trustdb.c (validate_keys): Mask the ownertrust when building the
+       list of fully valid keys so that disabled keys are still counted
+       in the web of trust.
+       (get_ownertrust_with_min): Do the same for the minimum ownertrust
+       calculation.
+
+       * parse-packet.c (dump_sig_subpkt): Show the notation names for
+       not-human-readable notations.  Fix cosmetic off-by-one length
+       counter.
+
+       * options.skel: Add explantion and commented-out
+       "no-mangle-dos-filenames".
+
+       * mainproc.c (proc_encrypted): Make string translatable.
+
+       * keyserver.c (keyserver_spawn): Quote ':', '%', and any 8-bit
+       characters in the uid strings sent to the keyserver helper.
+
+       * keyring.c (keyring_rebuild_cache): Lock the keyring while
+       rebuilding the signature caches to prevent another gpg from
+       tampering with the temporary copy.
+
+       * keygen.c (keygen_set_std_prefs): Include AES192 and AES256 in
+       default prefs.
+
+       * keyedit.c (show_prefs): Make strings translatable.
+
+       * keydb.c: Double the maximum number of keyrings to 40.
+
+       * gpgv.c (main): Fix bug #113 - gpgv should accept the
+       --ignore-time-conflict option.
+
+       * g10.c (main): --openpgp disables --pgpX.  Double the amount of
+       secure memory to 32k (keys are getting bigger these days).
+
+       * Makefile.am: Makefile.am: Use @CAPLIBS@ to link in -lcap if we
+       are using capabilities.
+
+2003-02-26  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyserver.c (keyserver_spawn): Include various pieces of
+       information about the key in the data sent to the keyserver
+       helper.  This allows the helper to use it in instructing a remote
+       server which may not have any actual OpenPGP smarts in parsing
+       keys.
+
+       * main.h, export.c (export_pubkeys_stream, do_export_stream): Add
+       ability to return only the first match in an exported keyblock for
+       keyserver usage.  This should be replaced at some point with a
+       more flexible solution where each key can be armored seperately.
+
+2003-02-22  David Shaw  <dshaw@jabberwocky.com>
+
+       * sign.c (sign_file): Do not push textmode filter onto an unopened
+       IOBUF (segfault).  Noted by Marcus Brinkmann.  Push and
+       reinitialize textmode filter for each file in a multiple file
+       list.
+
+       * packet.h, getkey.c (fixup_uidnode), keyedit.c (show_prefs): Set
+       and show the keyserver no-modify flag.
+
+       * keygen.c (add_keyserver_modify): New.
+       (keygen_upd_std_prefs): Call it here.
+       (keygen_set_std_prefs): Accept "ks-modify" and "no-ks-modify" as
+       prefs to set and unset keyserver modify flag.
+
+       * g10.c (main): Accept "s1" in addition to "idea" to match the
+       other ciphers.
+
+       * main.h, misc.c (idea_cipher_warn): We don't need this if IDEA
+       has been disabled.
+
+2003-02-21  David Shaw  <dshaw@jabberwocky.com>
+
+       * keygen.c (keygen_set_std_prefs): Don't put AES or CAST5 in
+       default prefs if they are disabled.
+
+       * g10.c (main): Use 3DES instead of CAST5 if we don't have CAST5
+       support.  Use 3DES for the s2k cipher in --openpgp mode.
+       (print_mds): #ifdef all of the optional digest algorithms.
+
+2003-02-12  David Shaw  <dshaw@jabberwocky.com>
+
+       * keydb.h, getkey.c (classify_user_id, classify_user_id2): Make
+       'exact' a per-desc item.  Merge into one function since
+       'force_exact' is no longer needed.
+       (key_byname): Use new classify_user_id function, and new exact
+       flag in KEYDB_SEARCH_DESC.
+
+       * keyring.h, keyring.c (keyring_search): Return an optional index
+       to show which KEYDB_SEARCH_DESC was the matching one.
+
+       * keydb.h, keydb.c (keydb_search): Rename to keydb_search2, and
+       pass the optional index to keyring_search.  Add a macro version of
+       keydb_search that calls this new function.
+
+       * export.c (do_export_stream): If the keyid! syntax is used,
+       export only that specified key.  If the key in question is a
+       subkey, export the primary plus that subkey only.
+
+2003-02-11  David Shaw  <dshaw@jabberwocky.com>
+
+       * exec.c (set_exec_path): Add debugging line.
+
+       * g10.c (print_hex, print_mds): Print long hash strings a lot
+       neater.  This assumes at least an 80-character display, as there
+       are a few other similar assumptions here and there.  Users who
+       need unformatted hashes can still use with-colons.  Check that
+       SHA384 and 512 are available before using them as they are no
+       longer always available.
+
+       * Makefile.am: Use a local copy of libexecdir along with @PACKAGE@
+       as GNUPG_LIBEXECDIR so it can be easily overridden at make time.
+
+2003-02-04  David Shaw  <dshaw@jabberwocky.com>
+
+       * armor.c (parse_hash_header, armor_filter): Accept the new SHAs
+       in the armor Hash: header.
+
+       * g10.c (print_hex): Print long hash strings a little neater.
+       (print_mds): Add the new SHAs to the hash list.
+
+2003-02-02  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyedit.c (menu_revuid): Properly handle a nonselfsigned uid on
+       a v4 key (treat as a v4 revocation).
+
+       * import.c (print_import_check): Do not re-utf8 convert user IDs.
+
+2003-01-27  David Shaw  <dshaw@jabberwocky.com>
+
+       * mainproc.c (list_node): Show signature expiration date in
+       with-colons sig records.
+
+       * keylist.c (list_keyblock_colon), mainproc.c (list_node): Show
+       trust sig information in with-colons sig records.
+
+2003-01-16  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (add_group): Trim whitespace after a group name so it does
+       not matter where the user puts the = sign.
+
+       * options.skel: Comment out the first three lines in case someone
+       manually copies the skel file to their homedir.
+
+       * sign.c (clearsign_file): Only use pgp2mode with v3 keys and
+       MD5. This matches what we do when decoding such messages and
+       prevents creating a message (v3+RIPEMD/160) that we can't verify.
+
+       * sig-check.c (signature_check2): Use G10ERR_GENERAL as the error
+       for signature digest conflict.  BAD_SIGN implies that a signature
+       was checked and we may try and print out a user ID for a key that
+       doesn't exist.
+
+2003-01-15  David Shaw  <dshaw@jabberwocky.com>
+
+       * trustdb.c (init_trustdb, get_validity): Don't use a changed
+       trust model to indicate a dirty trustdb, and never auto-rebuild a
+       dirty trustdb with the "always" trust model.
+
+       * g10.c (add_group): Last commit missed the \t ;)
+
+2003-01-14  David Shaw  <dshaw@jabberwocky.com>
+
+       * packet.h, parse-packet.c (setup_user_id), free-packet.c
+       (free_user_id), keydb.h, keyid.c (namehash_from_uid): New function
+       to rmd160-hash the contents of a user ID packet and cache it in
+       the uid object.
+
+       * keylist.c (list_keyblock_colon): Use namehash in field 8 of
+       uids.  Show dates for creation (selfsig date), and expiration in
+       fields 6 and 7.
+
+       * trustdb.c (get_validity, get_validity_counts, update_validity):
+       Use new namehash function rather than hashing it locally.
+
+2003-01-14  Werner Koch  <wk@gnupg.org>
+
+       * g10.c (add_group): Fixed group parsing to allow more than one
+       delimiter in a row and also allow tab as delimiter.
+
 2003-01-12  David Shaw  <dshaw@jabberwocky.com>
 
        * tdbio.c (tdbio_set_dbname): Fix assertion failure with