* gpg.c (print_mds), armor.c (armor_filter, parse_hash_header): Add
[gnupg.git] / g10 / ChangeLog
index 3a653ad..50bbefc 100644 (file)
@@ -1,8 +1,544 @@
+2006-04-19  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.c (print_mds), armor.c (armor_filter, parse_hash_header):
+       Add SHA-224.
+
+       * sign.c (write_plaintext_packet), encode.c (encode_simple):
+       Factor common literal packet setup code from here, to...
+
+       * main.h, plaintext.c (setup_plaintext_name): Here. New. Make sure
+       the literal packet filename field is UTF-8 encoded.
+
+       * options.h, gpg.c (main): Make sure --set-filename is UTF-8
+       encoded and note when filenames are already UTF-8.
+
+2006-04-18  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyedit.c (menu_backsign): Give some more verbose errors when we
+       have no need to backsign.
+
+2006-04-11  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.skel, photoid.c (get_default_photo_command): Find an
+       image viewer at runtime.  Seems FC5 doesn't have xloadimage.
+
+2006-04-08  David Shaw  <dshaw@jabberwocky.com>
+
+       * getkey.c (parse_auto_key_locate): Fix dupe-removal code.
+
+       * keyedit.c (menu_backsign): Allow backsigning even if the secret
+       subkey doesn't have a binding signature.
+
+       * armor.c (radix64_read): Don't report EOF when reading only a pad
+       (=) character.  The EOF actually starts after the pad.
+
+       * gpg.c (main): Make --export, --send-keys, --recv-keys,
+       --refresh-keys, and --fetch-keys follow their arguments from left
+       to right.  Suggested by Peter Palfrader.
+
+2006-04-08  Werner Koch  <wk@g10code.com>
+
+       * mainproc.c (list_node): Print ring trust value only if not empty
+       and --with-colons has been given.
+
+2006-04-05  Werner Koch  <wk@g10code.com>
+
+       * getkey.c (user_id_not_found_utf8): New.
+       (get_primary_uid, get_user_id): Use it.  Fixes Debian bug #205028
+       in the right way.
+
+2006-04-03  Werner Koch  <wk@g10code.com>
+
+       * import.c (check_prefs_warning): Merged strings for better
+       translation.
+
+       * gpg.c (main) [__GLIBC__]: Default to libpcsclite.so.1.
+
+       * status.h, status.c (STATUS_BEGIN_SIGNING): New.  Suggested by
+       Daiki Ueno.
+       * textfilter.c (copy_clearsig_text): Issue new status code.
+       * sign.c (sign_file, sign_symencrypt_file): Ditto.
+
+2006-03-31  David Shaw  <dshaw@jabberwocky.com>
+
+       * getkey.c (get_pubkey_byname): Fix missing auto_key_retrieve
+       unlock.  Fix strings to not start with a capital letter as per
+       convention.
+
+2006-03-30  David Shaw  <dshaw@jabberwocky.com>
+
+       * main.h, seskey.c (encode_md_value): Modify to allow a q size
+       greater than 160 bits as per DSA2.  This will allow us to verify
+       and issue DSA2 signatures for some backwards compatibility once we
+       start generating DSA2 keys.     
+       * sign.c (do_sign), sig-check.c (do_check): Change all callers.
+
+       * sign.c (do_sign): Enforce the 160-bit check for new signatures
+       here since encode_md_value can handle non-160-bit digests now.
+       This will need to come out once the standard for DSA2 is firmed
+       up.
+
+2006-03-28  Werner Koch  <wk@g10code.com>
+
+       * openfile.c (overwrite_filep): Fix small cpr issue.  Noted by
+       Daiki Ueno.
+
+2006-03-22  David Shaw  <dshaw@jabberwocky.com>
+
+       * getkey.c (parse_auto_key_locate): Silently strip out duplicates
+       rather than causing an error.
+
+2006-03-22  Werner Koch  <wk@g10code.com>
+
+       * sig-check.c (signature_check2): Changed warning URL to include faq.
+       * misc.c (idea_cipher_warn): Ditto.
+
+2006-03-22  David Shaw  <dshaw@jabberwocky.com>
+
+       * mainproc.c (get_pka_address): Fix bug introduced as part of
+       sig_to_notation conversion.  Noted by Peter Palfradrer.
+
+2006-03-21  Werner Koch  <wk@g10code.com>
+
+       * cardglue.c (agent_scd_pksign): Allow the use of ripemd-160 along
+       with scdaemon.
+
+2006-03-16  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyserver.c (keyserver_import_cert): Handle the IPGP CERT type
+       for both the fingerprint alone, and fingerprint+URL cases.
+
+       * getkey.c (get_pubkey_byname): Minor cleanup.
+
+2006-03-13  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyserver-internal.h, keyserver.c (keyserver_import_pka): Use
+       the same API as the other auto-key-locate fetchers.
+
+       * getkey.c (get_pubkey_byname): Use the fingerprint of the key
+       that we actually fetched.  This helps prevent problems where the
+       key that we fetched doesn't have the same name that we used to
+       fetch it.  In the case of CERT and PKA, this is an actual security
+       requirement as the URL might point to a key put in by an attacker.
+       By forcing the use of the fingerprint, we won't use the attacker's
+       key here.
+
+       * keyserver-internal.h, keyserver.c (keyserver_spawn,
+       keyserver_work, keyserver_import_cert, keyserver_import_name,
+       keyserver_import_ldap): Pass fingerprint info through.
+
+       * main.h, import.c (import_one): Optionally return the fingerprint
+       of the key being imported.
+       (import_keys_internal, import_keys_stream, import): Change all
+       callers.
+
+2006-03-12  David Shaw  <dshaw@jabberwocky.com>
+
+       * sig-check.c (signature_check2): Print the backsig warning when
+       there is no backsig present.  Give a URL for more information.
+
+       * keyedit.c (menu_backsign): Small tweak to work properly with
+       keys originally generated with older GnuPGs that included comments
+       in the secret keys.
+
+2006-03-10  Werner Koch  <wk@g10code.com>
+
+       * card-util.c (get_manufacturer): Added Vendor 3
+
+2006-03-09  David Shaw  <dshaw@jabberwocky.com>
+
+       * build-packet.c (string_to_notation): Add ability to indicate a
+       notation to be deleted with a '-' prefix.
+
+       * keyedit.c (menu_set_notation): Use it here to allow deleting a
+       notation marked with '-'.  This works with either "-notation" or
+       "-notation=value".
+
+2006-03-08  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyedit.c (menu_set_notation): New function to set notations on
+       self-signatures.
+       (keyedit_menu): Call it here.
+       (tty_print_notations): Helper.
+       (show_prefs): Show notations in "showpref".
+
+       * mainproc.c (get_pka_address)
+       * keylist.c (show_notation): Remove
+       duplicate code by using notation functions.
+
+       * packet.h, build-packet.c (sig_to_notation)
+       * keygen.c (keygen_add_notations): Provide printable text for
+       non-human-readable notation values.
+       
+       * packet.h, build-packet.c (sig_to_notation)
+       * keygen.c (keygen_add_notations): Tweak to handle non-human-readable
+       notation values.
+
+       * options.h, sign.c (mk_notation_policy_etc)
+       * gpg.c (add_notation_data): Use it here for the various notation
+       commands.
+
+       * packet.h, main.h, keygen.c (keygen_add_notations)
+       * build-packet.c (string_to_notation, sig_to_notation)
+       (free_notation): New "one stop shopping" functions to handle
+       notations and start removing some code duplication.
+
+2006-03-08  Werner Koch  <wk@g10code.com>
+
+       * mainproc.c (do_check_sig): Use log_error for standalone revocations.
+
+2006-03-07  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, mainproc.c (check_sig_and_print), gpg.c (main):
+       pka-lookups, not pka-lookup.
+
+       * options.h, gpg.c (main), keyedit.c [cmds], sig-check.c
+       (signature_check2): Rename "backsign" to "cross-certify" as a more
+       accurate name.
+
+       * options.h, gpg.c (main, parse_trust_model), pkclist.c
+       (check_signatures_trust), mainproc.c (check_sig_and_print,
+       pka_uri_from_sig), trustdb.c (init_trustdb): Some tweaks to PKA so
+       that it is a verify-option now.
+
+2006-03-07  Werner Koch  <wk@g10code.com>
+
+       * mainproc.c (proc_signature_packets): Return any_sig_seen to caller.
+       (check_sig_and_print): Option to partly allow the old behaviour.
+       * gpg.c: New option --allow-multisig-verification.
+
+2006-03-06  David Shaw  <dshaw@jabberwocky.com>
+
+       * sign.c (make_keysig_packet): Don't use MD5 for a RSA_S key as
+       that is not a PGP 2.x algorithm.
+
+       * mainproc.c (proc_compressed): "Uncompressed" is not a valid
+       compression algorithm.
+
+2006-03-06  Werner Koch  <wk@g10code.com>
+
+       * mainproc.c (check_sig_and_print): Made the composition test more
+       tight.  This is due to another bug report by Tavis Ormandy.
+       (add_onepass_sig): Simplified.
+
+2006-03-05  Werner Koch  <wk@g10code.com>
+
+       * plaintext.c (handle_plaintext): Replace assert by explict error
+       conflict message.  Reported by Tavis Ormandy.
+
+2006-03-02  Werner Koch  <wk@g10code.com>
+
+       * cardglue.c (check_card_serialno): Don't ask in batch mode.
+
+2006-03-01  David Shaw  <dshaw@jabberwocky.com>
+
+       * getkey.c (parse_auto_key_locate): Error if the user selects
+       "cert" or "pka" when those features are disabled.
+
+       * misc.c (has_invalid_email_chars): Fix some C syntax that broke
+       the compilers on SGI IRIX MIPS and Compaq/DEC OSF/1 Alpha.  Noted
+       by Nelson H. F. Beebe.
+
+2006-02-27  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.skel: Document auto-key-locate and give a pointer to
+       Simon Josefsson's page for CERT.
+
+2006-02-24  David Shaw  <dshaw@jabberwocky.com>
+
+       * keydb.h, getkey.c (release_akl), gpg.c (main): Add
+       --no-auto-key-locate.
+
+       * options.h, gpg.c (main): Keep track of each keyserver registered
+       so we can match on them later.
+
+       * keyserver-internal.h, keyserver.c (cmp_keyserver_spec,
+       keyserver_match), gpgv.c: New.  Find a keyserver that matches ours
+       and return its spec.
+
+       * getkey.c (get_pubkey_byname): Use it here to get the
+       per-keyserver options from an earlier keyserver.
+
+2006-02-23  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyserver.c (parse_keyserver_options): Only change max_cert if
+       it is used.
+
+       * options.c, gpg.c (main), keyserver.c (keyserver_spawn): No
+       special treatment of include-revoked, include-subkeys, and
+       try-dns-srv.  These are keyserver features, and GPG shouldn't get
+       involved here.
+
+       * keyserver.c (parse_keyserver_uri, add_canonical_option): Always
+       append options to the list, as ordering may be significant to the
+       user.
+
+       * gpg.c (add_notation_data): Fix reversed logic for isascii check
+       when adding notations.  Noted by Christian Biere.
+
+       * options.h, keyserver.c (add_canonical_option): New.
+       (parse_keyserver_options): Moved from here.
+       (parse_keyserver_uri): Use it here so each keyserver can have some
+       private options in addition to the main keyserver-options
+       (e.g. per-keyserver auth).
+
+2006-02-22  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, keyserver-internal.h, keyserver.c
+       (keyserver_import_name), getkey.c (free_akl,
+       parse_auto_key_locate, get_pubkey_byname): The obvious next step:
+       allow arbitrary keyservers in the auto-key-locate list.
+
+       * options.h, keyserver.c (parse_keyserver_options): Remove
+       auto-cert-retrieve as it is no longer meaningful.  Add
+       max-cert-size to allow users to pick a max key size retrieved via
+       CERT.
+
+       * options.h, gpg.c (main), mainproc.c (check_sig_and_print),
+       keyserver.c (keyserver_opts): Rename auto-pka-retrieve to
+       honor-pka-record to be consistent with honor-keyserver-url.
+
+       * options.h, keydb.h, g10.c (main), getkey.c
+       (parse_auto_key_locate): Parse a list of key access methods.
+       (get_pubkey_byname): Walk the list here to try and retrieve keys
+       we don't have locally.
+
+2006-02-21  David Shaw  <dshaw@jabberwocky.com>
+
+       * getkey.c (get_pubkey_byname): Fix minor security problem with
+       PKA when importing at -r time.  The URL in the PKA record may
+       point to a key put in by an attacker.  Fix is to use the
+       fingerprint from the PKA record as the recipient.  This ensures
+       that the PKA record is followed.
+
+       * keyserver-internal.h, keyserver.c (keyserver_import_pka): Return
+       the fingerprint we requested.
+
+       * gpgv.c: Stub keyserver_import_ldap.
+
+       * keyserver-internal.h, keyserver.c (keyserver_import_ldap):
+       Import using the PGP Universal trick of asking
+       ldap://keys.(maildomain) for the key.
+
+2006-02-20  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyserver.c (parse_keyserver_uri): Include the scheme in the uri
+       even when we've assumed "hkp" when there was no scheme.
+
+2006-02-20  Werner Koch  <wk@g10code.com>
+
+       * apdu.c (open_pcsc_reader): As a precaution set LIST to NULL
+       after free.
+
+2006-02-14  Werner Koch  <wk@gnupg.org>
+
+       * verify.c (verify_signatures): Print warning also for NO_DATA.
+
+       * mainproc.c (struct mainproc_context): New field any_sig_seen.
+       (add_signature): Set it.
+       (proc_signature_packets): Test and return NO_DATA.
+
+2006-02-09  Werner Koch  <wk@g10code.com>
+
+       * gpg.c (main) <oLockNever>: Disable random locking.
+
+2006-02-06  Werner Koch  <wk@g10code.com>
+
+       * ccid-driver.c, ccid-driver.h: Updated from GnuPG 1.9.  Changes:
+       * ccid-driver.h (CCID_DRIVER_ERR_NO_KEYPAD): New.
+       * ccid-driver.c (send_escape_cmd): New args RESULT, RESULTLEN and
+       RESULTMAX.  Changed all callers.
+       (ccid_transceive_escape): New.
+       * ccid-driver.c (special_transport): New
+       (ccid_open_reader, do_close_reader, ccid_shutdown_reader)
+       (bulk_out, bulk_in): Add support for CardMan 4040 reader.
+       * ccid-driver.c (scan_or_find_devices): Factored most code out to
+       (scan_or_find_usb_device): .. new.
+       (make_reader_id): Fixed vendor mask.
+
+2006-01-24  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyserver.c (parse_keyserver_uri): If there is a path present,
+       set the direct_uri flag so the right keyserver helper is run.
+
+2006-01-22  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyserver.c (keyserver_spawn): Include the EXEEXT so we can find
+       keyserver helpers on systems that use extensions.
+
+       * misc.c (path_access) [HAVE_DRIVE_LETTERS]: Do the right thing
+       with drive letter systems.
+
+2006-01-17  David Shaw  <dshaw@jabberwocky.com>
+
+       * keydb.h, passphrase.c (next_to_last_passphrase): New.  "Touch" a
+       passphrase as if it was used (move from next_pw to last_pw).
+
+       * pubkey-enc.c (get_session_key): Use it here to handle the case
+       where a passphrase happens to be correct for a secret key, but yet
+       that key isn't the anonymous recipient (i.e. the secret key could
+       be decrypted, but not the session key).  This also handles the
+       case where a secret key is located on a card and a secret key with
+       no passphrase.  Note this does not fix bug 594 (anonymous
+       recipients on smartcard do not work) - it just prevents the
+       anonymous search from stopping when the card is encountered.
+
+2006-01-07  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyserver.c (keyserver_refresh): Fix problem when more than one
+       key in a refresh batch has a preferred keyserver set.  Noted by
+       Nicolas Rachinsky.
+
+2006-01-01  David Shaw  <dshaw@jabberwocky.com>
+
+       * mainproc.c (check_sig_and_print), keyserver.c
+       (keyserver_import_pka), card-util.c (fetch_url): Always require a
+       scheme:// for keyserver URLs except when used as part of the
+       --keyserver command for backwards compatibility.
+
+       * sign.c (write_signature_packets): Lost a digest_algo line.
+
+       * sign.c (hash_for): Add code to detect if the sk lives on a smart
+       card.  If it does, only allow 160-bit hashes, a la DSA.  This
+       involves passing the *sk in, so change all callers.  This is
+       correct for today, given the current 160-bit q in DSA, and the
+       current SHA-1/RIPEMD160 support in the openpgp card.  It will
+       almost certainly need changing down the road.
+
+       * app-openpgp.c (do_sign): Give user error if hash algorithm is
+       not supported by the card.
+
+2005-12-23  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyserver.c (keyserver_import_pka): New.  Moved from
+       getkey.c:get_pubkey_byname which was getting crowded.
+
+       * keyserver.c (keyserver_import_cert): Import a key found in DNS
+       via CERT records.  Can handle both the PGP (actual key) and IPGP
+       (URL) CERT types.
+
+       * getkey.c (get_pubkey_byname): Call them both here.
+
+       * options.h, keyserver.c (parse_keyserver_options): Add
+       "auto-cert-retrieve" option with optional max size argument.
+
+       * gpgv.c: Stubs.
+
+       * keyserver-internal.h, keyserver.c (keyserver_spawn,
+       keyserver_work, keygerver_getname): New keyserver_getname function
+       to fetch keys by name.
+
+       * getkey.c (get_pubkey_byname): Call it here to enable locating
+       keys by full mailbox from a keyserver a la PKA.  Try PKA first,
+       though, as it is likely to be faster.
+
+2005-12-20  Werner Koch  <wk@g10code.com>
+
+       * gpg.c: New option --allow-pka-lookup.
+       (parse_trust_model): Add "+pka" variants.
+       (main): Make KEYSERVER_AUTO_PKA_RETRIEVE teh default.
+       * options.h (opt): New fields PKA_TRUST_INCREASE and
+       ALLOW_PKA_LOOKUP.
+       * status.h (STATUS_PKA_TRUST_BAD, STATUS_PKA_TRUST_GOOD): New.
+       * pkclist.c (check_signatures_trust): Increase trust due to valid
+       PKA only if that new option has been set.  Issue new status lines.
+       * trustdb.c (init_trustdb): Print info if this option is active.
+       * getkey.c (get_pubkey_byname): Honor allow-pka-lookup.
+       * mainproc.c (pka_uri_from_sig): Ditto.
+       
+       * trustdb.c (validate_keys): Print no "ultimately trusted keys
+       found" only in non-quiet mode.
+
+2005-12-19  David Shaw  <dshaw@jabberwocky.com>
+
+       * getkey.c (merge_selfsigs_main): All primary keys can certify.
+
+2005-12-18  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.c (main): Restore convert-sk-to-pk as programs rely on it.
+
+       * keyid.c (usagestr_from_pk): Remove special PUBKEY_USAGE_CERT
+       flag.  It's no longer needed.
+
+2005-12-14  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpg.c (main): Don't default to import-options convert-sk-to-pk.
+       It causes confusing warning messages when importing a PGP-exported
+       key that contains a secret key without selfsigs followed by the
+       public key.
+
+2005-12-08  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyserver.c (keyserver_fetch): Switch on fast-import before we
+       --fetch-keys so we don't rebuild the trustdb after each fetch.
+
+2005-12-08  Werner Koch  <wk@g10code.com>
+
+       * gpg.c (main): Check for DBCS lead byte when converting the
+       homedir.  By Kazuyoshi Kakihara. Fixes PR561.
+
+       * keyserver.c (keyserver_fetch): Made strings translatable.
+
+2005-12-08  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, keyserver.c (curl_cant_handle, keyserver_spawn,
+       keyserver_fetch): Set a flag to indicate that we're doing a direct
+       URI fetch so we can differentiate between a keyserver operation
+       and a URI fetch for protocols like LDAP that can do either.
+
+2005-12-07  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyserver.c (keyserver_spawn): Don't print "searching for key
+       00000000" when fetching a URI.
+
+       * keyserver-internal.h, keyserver.c (keyserver_fetch): New.  Fetch
+       an arbitrary URI using the keyserver helpers.
+
+       * gpg.c (main): Call it from here for --fetch-keys.
+
+2005-12-07  Werner Koch  <wk@g10code.com>
+
+       * pkclist.c (do_we_trust): Add NOTREACHED comment.
+
+2005-11-20  David Shaw  <dshaw@jabberwocky.com>
+
+       * main.h, keylist.c (print_revokers): New.  Print the "rvk"
+       designated revoker record.  Moved from
+       keyedit.c:show_key_with_all_names_colon.
+
+       * keylist.c (list_keyblock_colon): Use it here ...
+
+       * keyedit.c (show_key_with_all_names_colon): ... and here.
+
+2005-11-19  David Shaw  <dshaw@jabberwocky.com>
+
+       * free-packet.c (copy_secret_key): Copy secret key into secure
+       memory since we may unprotect it.
+
+       * main.h, g10.c (main), revoke.c (gen_desig_revoke): Add local
+       user support so users can use -u with --desig-revoke.  This
+       bypasses the interactive walk over the revocation keys.
+
+2005-11-17  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyedit.c (keyedit_menu, menu_clean): Simplify clean options to
+       just "clean", and add "minimize".
+
+       * import.c (parse_import_options): Make help text match the export
+       versions of the options.
+
+       * options.h, export.c (parse_export_options, do_export_stream):
+       Reduce clean options to two: clean and minimize.
+
+       * trustdb.h, trustdb.c (clean_one_uid): New function that joins
+       uid and sig cleaning into one for a simple API outside trustdb.
+
 2005-11-13  David Shaw  <dshaw@jabberwocky.com>
 
        * armor.c (parse_header_line): A fussy bit of 2440: header lines
        are delimited with a colon-space pair.  Therefore a line such as
-       "Comment: " is actually legal, albeit not particularly useful.
+       "Comment: " (with a trailing space) is actually legal, albeit not
+       particularly useful.
 
 2005-11-11  David Shaw  <dshaw@jabberwocky.com>
 
        --passphrase command line option.  Only useful in very special
        circumstances.
 
->>>>>>> .r3884
 2005-08-05  Werner Koch  <wk@g10code.com>
 
        * gpgv.c (keyserver_import_fprint): New stub.
@@ -12202,7 +12737,7 @@ Thu Feb 12 22:24:42 1998  Werner Koch  (wk@frodo)
 
 
  Copyright 1998, 1999, 2000, 2001, 2002, 2003,
-          2004, 2005 Free Software Foundation, Inc.
+          2004, 2005, 2006 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