* options.h (DBG_CIPHER): Reintroduced it.
[gnupg.git] / g10 / ChangeLog
index cd988f2..681f4cd 100644 (file)
+2003-07-03  Werner Koch  <wk@gnupg.org>
+
+       * options.h (DBG_CIPHER): Reintroduced it. 
+       * seskey.c (encode_session_key): Debug output of the session key.
+
+       * pubkey-enc.c (get_it): Handle card case.
+       * call-agent.c (agent_scd_pkdecrypt): New.
+       * pkglue.c (pk_encrypt): Add RSA support.
+
+       * g10.c (main): Default to --use-agent.
+
+       * keygen.c (show_smartcard): Print info about the public key.
+       (check_smartcard): Check for existing key here.
+       (gen_card_key): And not anymore here.
+       (fpr_is_zero): New.
+       (generate_keypair): Generate both keys for a card.
+       (smartcard_change_url): Nw.
+
+2003-07-02  Werner Koch  <wk@gnupg.org>
+
+       * seckey-cert.c (is_secret_key_protected): Let it handle mode 1002.
+
+2003-07-01  Werner Koch  <wk@gnupg.org>
+
+       * keygen.c (gen_card_key): Obviously we should use the creation
+       date received from SCDAEMON, so that the fingerprints will match.
+       * sign.c (do_sign): Pass the serialno to the sign code.
+       * keyid.c (serialno_and_fpr_from_sk): New.
+
+2003-06-30  Werner Koch  <wk@gnupg.org>
+
+       * call-agent.h (agent_card_info_s): Add field serialno.
+       * call-agent.c (store_serialno): New.
+       (learn_status_cb): Store the serial number.
+       * keygen.c (gen_card_key): Store the serial number
+       (check_smartcard): New argument to return the serial number.
+       (generate_keypair): Get the serial number from check_smartcard and
+       store it as a parameter.
+       * parse-packet.c (parse_key): Use the protect.iv field to store the
+       serial number.
+       * build-packet.c (do_secret_key): Write the serial number.
+
+2003-06-27  Werner Koch  <wk@gnupg.org>
+
+       * seckey-cert.c (check_secret_key): Bypass the unprotection for
+       mode 1002.
+       * sign.c (do_sign): Handle card case (i.e. mode 1002).
+
+2003-06-26  Werner Koch  <wk@gnupg.org>
+
+       * build-packet.c (do_secret_key): Implement special protection
+       mode 1002.
+       * parse-packet.c (parse_key): Likewise.
+
+       * keygen.c (smartcard_gen_key): New.
+       * call-agent.c (agent_scd_setattr): New.
+
+2003-06-24  Werner Koch  <wk@gnupg.org>
+
+       * Makefile.am: Removed signal.c
+
+       * g10.c (emergency_cleanup): New.
+       (main): Use gnupg_init_signals and register malloc for assuan.
+
+2003-06-23  Werner Koch  <wk@gnupg.org>
+
+       * keyid.c (do_fingerprint_md): Made it work again.
+
+2003-06-19  Werner Koch  <wk@gnupg.org>
+
+       Fixed all "==" comparisons against error code constants to use
+       gpg_err_code().
+
+       * import.c (import_secret_one): 
+       (import_revoke_cert): 
+       (chk_self_sigs): 
+
+       * misc.c (openpgp_md_map_name): Check also for the Hx format.
+       (openpgp_cipher_map_name): Check also for the Sx format.
+       (pubkey_get_npkey): Adjusted for changed gcrypt API.
+       (pubkey_get_nskey): Ditto.
+       (pubkey_get_nsig): Ditto.
+       (pubkey_get_nenc): Ditto.
+
+2003-06-18  Werner Koch  <wk@gnupg.org>
+
+        Finished the bulk of changes for gnupg 1.9.  This included
+       switching to libgcrypt functions, using shared error codes from
+       libgpg-error, replacing the old functions we used to have in
+       ../util by those in ../jnlib and ../common, renaming the malloc
+       functions and a couple of types.  Note, that not all changes are
+       listed below becuause they are too similar and done at far too
+       many places.  As of today the code builds using the current
+       libgcrypt from CVS but it is very unlikely that it actually works.
+       
+       * sig-check.c (cmp_help): Removed.  Was never used.
+
+       * pkglue.c: New. Most stuff taken from gnupg 1.1.2.
+       * pkglue.h: New.
+
+       * misc.c (pull_in_libs): Removed.
+
+       * keygen.c (count_chr): New.
+       (ask_user_id): Removed faked RNG support.
+
+       * misc.c (openpgp_md_map_name,openpgp_cipher_map_name)
+       (openpgp_pk_map_name): New.
+
+       * skclist.c (build_sk_list): Removed faked RNG support.
+       (is_insecure): Removed.
+
+       * comment.c (make_mpi_comment_node): Use gcry MPI print function.
+
+       * keyid.c (v3_keyid): New.
+
+       * misc.c (mpi_write,mpi_write_opaque,mpi_read,mpi_read_opaque)
+       (mpi_print): New.  Taken from gnupg 1.1.2.
+       (checksum_mpi): Replaced by implementation from 1.1.2.
+
+       * g10.c (my_strusage): Renamed from strusage and return NULL
+       instead calling a default function.
+       (add_to_strlist2): New.  Taken from ../util/strgutil.c of gnupg 1.2.
+
+       * plaintext.c (handle_plaintext): New arg CREATE_FILE to cope with
+       the fact that gpg-error does not have this error code anymore.
+
+       * mainproc.c (symkey_decrypt_sesskey): Ditto.
+
+       * seskey.c (make_session_key): Adjusted for use with libgcrypt.
+       (encode_session_key): Ditto.
+       (do_encode_md): Ditto.
+       (encode_md_value): Ditto.
+
+       * keyring.c: Use libgpg-error instead of READ_ERROR etc.
+
+       * g10.c: Adjusted all algorithm name/id mapping functions.
+       (set_debug): Pass MPI and CRYPTO debug values to libgcrypt.
+
+       * Makefile.am (INCLUDES): Define LOCALEDIR and the default error
+       source.
+
+       * g10.c (i18n_init): s/G10_LOCALEDIR/LOCALEDIR/.
+
+       Renamed m_alloc et al to xmalloc et al.
+       s/g10_errstr/gpg_strerror/
+       s/MPI/gcry_mpi_t/
+       Adjusted all md_open calls to the libgcrypt API.
+       
+       * build-packet.c (do_comment): Return error code from iobuf write
+       function.
+       (do_user_id): Ditto.
+       (do_public_key): Ditto.
+
+       * Makefile.am: Add new files, link gpg with libgpg-error.
+       * g10.c, options.h: New option --agent-program.
+       * call-agent.c: New.
+       * gpg.h, call-agent.h: New.
+
+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
+       non-fully-qualified trustdb names.
+
+2003-01-11  David Shaw  <dshaw@jabberwocky.com>
+
+       * trustdb.c (get_validity_info, get_ownertrust_info,
+       trust_letter): Simplify by returning a ? for error directly.
+
+       * keyedit.c (show_key_with_all_names): Use get_validity_string and
+       get_ownertrust_string to show full word versions of trust
+       (i.e. "full" instead of 'f').
+
+       * trustdb.h, trustdb.c (get_ownertrust_string,
+       get_validity_string): Same as get_ownertrust_info, and
+       get_validity_info, except returns a full string.
+
+       * trustdb.c (get_ownertrust_with_min): New.  Same as
+       'get_ownertrust' but takes the min_ownertrust value into account.
+
+2003-01-10  David Shaw  <dshaw@jabberwocky.com>
+
+       * armor.c (armor_filter): Comment about PGP's end of line tab
+       problem.
+
+       * trustdb.h, trustdb.c (trust_letter): Make
+       static. (get_ownertrust_info, get_validity_info): Don't mask the
+       trust level twice.
+
+       * trustdb.h, gpgv.c, trustdb.c (get_validity, get_validity_info),
+       keylist.c (list_keyblock_colon), keyedit.c
+       (show_key_with_all_names_colon, menu_revuid): Pass a user ID in
+       rather than a namehash, so we only have to do the hashing in one
+       place.
+
+       * packet.h, pkclist.c (build_pk_list), free-packet.c
+       (release_public_key_parts): Remove unused namehash element for
+       public keys.
+
+2003-01-07  David Shaw  <dshaw@jabberwocky.com>
+
+       * keygen.c (keygen_set_std_prefs): Warn when setting an IDEA
+       preference when IDEA is not available.
+
+2003-01-06  David Shaw  <dshaw@jabberwocky.com>
+
+       * trustdb.c (get_validity_info): 'd' for disabled is not a
+       validity value any more.
+
+       * packet.h, tdbio.h, tdbio.c (tdbio_read_record,
+       tdbio_write_record), trustdb.c (update_validity): Store temporary
+       full & marginal counts in the trustdb.
+       (clear_validity, get_validity_counts): Return and clear temp
+       counts.
+       (store_validation_status): Keep track of which keyids have been
+       stored.
+       (validate_one_keyblock, validate_key_list): Use per-uid copies of
+       the full & marginal counts so they can be recalled for multiple
+       levels.
+       (validate_keys): Only use unused keys for each new round.
+       (reset_unconnected_keys): Rename to reset_trust_records, and only
+       skip specifically excluded records.
+
+       * keylist.c (print_capabilities): Show 'D' for disabled keys in
+       capabilities section.
+
+       * trustdb.c (is_disabled): Remove incorrect comment.
+
+2003-01-03  David Shaw  <dshaw@jabberwocky.com>
+
+       * import.c (import_one): Only do the work to create the status
+       display for interactive import if status is enabled.
+
+       * keyring.c (keyring_search): skipfnc didn't work properly with
+       non-keyid searches.  Noted by Stefan Bellon.
+
+       * getkey.c (merge_selfsigs_main): Remove some unused code and make
+       sure that the pk selfsigversion member accounts for 1F direct
+       sigs.
+
+2003-01-02  Werner Koch  <wk@gnupg.org>
+
+       * keydb.c (keydb_add_resource): Don't assume that try_make_homedir
+       terminates but check again for the existence of the directory and
+       continue then.
+       * openfile.c (copy_options_file): Print a warning if the skeleton
+       file has active options.
+
+2002-12-29  David Shaw  <dshaw@jabberwocky.com>
+
+       * getkey.c (merge_selfsigs_main), main.h, sig-check.c
+       (check_key_signature2): Pass the ultimately trusted pk directly to
+       check_key_signature2 to avoid going through the key selection
+       mechanism.  This prevents a deadly embrace when two keys without
+       selfsigs each sign the other.
+
+2002-12-27  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyserver.c (keyserver_refresh): Don't print the "refreshing..."
+       line if there are no keys to refresh or if there is no keyserver
+       set.
+
+       * getkey.c (merge_selfsigs_main): Any valid user ID should make a
+       key valid, not just the last one.  This also fixes Debian bug
+       #174276.
+
+2002-12-27  Stefan Bellon  <sbellon@sbellon.de>
+
+       * import.c (print_import_check): Changed int to size_t.
+
+2002-12-27  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyedit.c (keyedit_menu, menu_revuid): Add "revuid" feature to
+       revoke a user ID.  This is the same as issuing a revocation for
+       the self-signature, but a much simpler interface to do it.
+
+2002-12-26  David Shaw  <dshaw@jabberwocky.com>
+
+       * keydb.h, getkey.c (key_byname): Flag to enable or disable
+       including disabled keys.  Keys specified via keyid (i.e. 0x...)
+       are always included.
+
+       * getkey.c (get_pubkey_byname, get_seckey_byname2,
+       get_seckey_bynames), keyedit.c (keyedit_menu, menu_addrevoker):
+       Include disabled keys in these functions.
+
+       * pkclist.c (build_pk_list): Do not include disabled keys for -r
+       or the key prompt.  Do include disabled keys for the default key
+       and --encrypt-to.
+
+       * trustdb.h, trustdb.c (is_disabled): New skipfnc for skipping
+       disabled keys.
+
+       * gpgv.c (is_disabled): Stub.
+
+       * keygen.c (keygen_add_key_expire): Properly handle updating a key
+       expiration to a no-expiration value.
+
+       * keyedit.c (enable_disable_key): Comment.
+
+       * import.c (import_one): When in interactive mode and --verbose,
+       don't repeat some key information twice.
+
+2002-12-22  Timo Schulz  <ts@winpt.org>
+       
+       * import.c (print_import_check): New.
+       (import_one): Use it here.
+        Use merge_keys_and_selfsig in the interactive mode to avoid
+        wrong key information.
+        * status.h: Add new status code.
+        * status.c: Ditto.
+       
+2002-12-13  David Shaw  <dshaw@jabberwocky.com>
+
+       * pkclist.c (do_we_trust): Tweak language to refer to the "named
+       user" rather than "owner".  Noted by Stefan Bellon.
+
+       * trustdb.h, trustdb.c (trustdb_pending_check): New function to
+       check if the trustdb needs a check.
+
+       * import.c (import_keys_internal): Used here so we don't rebuild
+       the trustdb if it is still clean.
+       (import_one, chk_self_sigs): Only mark trustdb dirty if the key
+       that is being imported has any sigs other than self-sigs.
+       Suggested by Adrian von Bidder.
+
+       * options.skel: Include the required '=' sign in the sample
+       'group' option.  Noted by Stefan Bellon.
+
+       * import.c (chk_self_sigs): Don't try and check a subkey as if it
+       was a signature.
+
+2002-12-11  David Shaw  <dshaw@jabberwocky.com>
+
+       * tdbio.c (tdbio_read_record, tdbio_write_record): Compact the
+       RECTYPE_TRUST records a bit.
+
+       * g10.c (main): Comment out --list-trust-path until it can be
+       implemented.
+
+       * import.c (import_one): Warn when importing an Elgamal primary
+       that this may take some time (to verify self-sigs).
+       (chk_self_sigs): Try and cache all self-sigs so the keyblock is
+       written to the keyring with a good rich cache.
+
+       * keygen.c (ask_algo): Make the Elgamal sign+encrypt warning
+       stronger, and remove the RSA sign+encrypt warning.
+
+2002-12-06  Stefan Bellon  <sbellon@sbellon.de>
+
+       * options.h: Fixed typo (mangle_dos_names instead of
+       mangle_dos_filenames).
+
+2002-12-05  Werner Koch  <wk@gnupg.org>
+
+       * g10.c: New options --[no-]mangle-dos-filenames.
+       * options.h (opt): Added mangle-dos-filenames.
+       * openfile.c (open_outfile) [USE_ONLY_8DOT3]: Truncate the
+       filename only when this option is set; this is the default.
+
+2002-12-04  David Shaw  <dshaw@jabberwocky.com>
+
+       * main.h, keyedit.c, keygen.c: Back out previous (2002-12-01)
+       change.  Minimal isn't always best.
+
+       * sign.c (update_keysig_packet): Use the current time rather then
+       a modification of the original signature time.  Make sure that
+       this doesn't cause a time warp.
+
+       * keygen.c (keygen_add_key_expire): Properly handle a key
+       expiration date in the past (use a duration of 0).
+
+       * keyedit.c (menu_expire): Use update_keysig_packet so any sig
+       subpackets are maintained during the update.
+
+       * build-packet.c (build_sig_subpkt): Mark sig expired or unexpired
+       when the sig expiration subpacket is added.
+       (build_sig_subpkt_from_sig): Handle making an expiration subpacket
+       from a sig that has already expired (use a duration of 0).
+
+       * packet.h, sign.c (update_keysig_packet), keyedit.c
+       (menu_set_primary_uid, menu_set_preferences): Add ability to issue
+       0x18 subkey binding sigs to update_keysig_packet and change all
+       callers.
+
+       * trustdb.c (validate_keys): Show trust parameters when building
+       the trustdb, and make sure that the version record update was
+       successful.
+       (init_trustdb): If the current parameters aren't what was used for
+       building the trustdb, the trustdb is invalid.
+
+       * tbio.c (tdbio_db_matches_options): Update to work with new
+       trustdbs.
+
+2002-12-03  David Shaw  <dshaw@jabberwocky.com>
+
+       * tdbio.h, tdbio.c (tdbio_read_record, tdbio_write_record): Store
+       trust model in the trustdb version record.
+       (tdbio_update_version_record): New function to update version
+       record values during a trustdb check or update.
+       (tdbio_dump_record): Show trust model in dump.
+
+       * trustdb.c (validate_keys): Call tdbio_update_version_record on
+       success so that the correct options are stored in the trustdb.
+
+       * options.h: rearrange trust models so that CLASSIC is 0 and
+       OPENPGP is 1.
+
+       * options.h, g10.c (main), encode.c (write_pubkey_enc_from_list),
+       pkclist.c (algo_available), revoke.c (gen_revoke): Add --pgp8
+       mode.  This is basically identical to --pgp7 in all ways except
+       that signing subkeys, v4 data sigs (including expiration), and SK
+       comments are allowed.
+
+       * getkey.c (finish_lookup): Comment.
+
+       * main.h, keylist.c (reorder_keyblock), keyedit.c (keyedit_menu):
+       Reorder user ID display in the --edit-key menu to match that of
+       the --list-keys display.
+
+       * g10.c (add_notation_data): Fix initialization.
+
+2002-12-01  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyedit.c (menu_expire): Don't lose key flags when changing the
+       expiration date of a subkey.  This is not the most optimal
+       solution, but it is minimal change on the stable branch.
+
+       * main.h, keygen.c (do_copy_key_flags): New function to copy key
+       flags, if any, from one sig to another.
+       (do_add_key_expire): New function to add key expiration to a sig.
+       (keygen_copy_flags_add_expire): New version of
+       keygen_add_key_expire that also copies key flags.
+       (keygen_add_key_flags_and_expire): Use do_add_key_expire.
+
+       * import.c (fix_hkp_corruption): Comment.
+
+2002-11-25  Stefan Bellon  <sbellon@sbellon.de>
+
+       * plaintext.c (handle_plaintext) [__riscos__]: If nooutput is set,
+       no filetype is needed obviously.
+
+2002-11-24  David Shaw  <dshaw@jabberwocky.com>
+
+       * main.h, misc.c (default_cipher_algo, default_compress_algo):
+       New.  Return the default algorithm by trying
+       --cipher-algo/--compress-algo, then the first item in the pref
+       list, then s2k-cipher-algo or ZIP.
+
+       * sign.c (sign_file, sign_symencrypt_file), encode.c
+       (encode_simple, encode_crypt): Call default_cipher_algo and
+       default_compress_algo to get algorithms.
+
+       * g10.c (main): Allow pref selection for compress algo with
+       --openpgp.
+
+       * mainproc.c (proc_encrypted): Use --s2k-digest-algo for
+       passphrase mangling rather than --digest-algo.
+
+       * sign.c (hash_for): If --digest-algo is not set, but
+       --personal-digest-preferences is, then use the first hash
+       algorithm in the personal list.  If the signing algorithm is DSA,
+       then use the first 160-bit hash algorithm in the personal list.
+       If --pgp2 is set and it's a v3 RSA key, use MD5.
+
+       * g10.c (main), keydb.c (keydb_add_resource,
+       keydb_locate_writable): Rename --default-keyring as
+       --primary-keyring.  Stefan wins the naming contest.
+
+2002-11-23  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (add_notation_data): Disallow notation names that do not
+       contain a '@', unless --expert is set.  This is to help prevent
+       people from polluting the (as yet unused) IETF namespace.
+
+       * main.h: Comments about default algorithms.
+
+       * photoid.c (image_type_to_string): Comments about 3-letter file
+       extensions.
+
+       * encode.c (encode_simple), passphrase.c (passphrase_to_dek),
+       sign.c (sign_symencrypt_file): Use --s2k-digest-algo for
+       passphrase mangling rather than --digest-algo.
+
+2002-11-21  David Shaw  <dshaw@jabberwocky.com>
+
+       * keygen.c (keygen_set_std_prefs): Properly handle an empty
+       preference string.
+
+       * misc.c (string_to_compress_algo): "none" is a bad choice since
+       it conflicts with the "none" in setpref.
+
+2002-11-14  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Allow compression algorithm names as the argument
+       to --compress-algo.  The old algorithm names still work for
+       backwards compatibility.
+
+       * misc.c (string_to_compress_algo): Allow "none" as an alias for
+       "uncompressed".
+
+2002-11-13  Stefan Bellon  <sbellon@sbellon.de>
+
+       * getkey.c (get_pubkey_byfprint_fast): Fixed type incompatibility,
+       was unsigned char instead of byte.
+
+2002-11-13  David Shaw  <dshaw@jabberwocky.com>
+
+       * encode.c (encode_simple): Make sure that files larger than about
+       4G use partial length encoding.  This is required because OpenPGP
+       allows only for 32 bit length fields.  From Werner on stable
+       branch.
+
+       * getkey.c (get_pubkey_direct): Renamed to...
+       (get_pubkey_fast): this and made extern.
+       (get_pubkey_byfprint_fast): New.  From Werner on stable branch.
+
+       * keydb.h, import.c (import_one): Use get_pubkey_fast instead of
+       get_pubkey.  We don't need a merged key and actually this might
+       lead to recursions.
+       (revocation_present): Likewise for search by fingerprint.  From
+       Werner on stable branch.
+
+       * g10.c (main): Try to create the trustdb even for non-colon-mode
+       list-key operations.  This is required because getkey needs to
+       know whether a a key is ultimately trusted.  From Werner on stable
+       branch.
+       
+       * exec.c [__CYGWIN32__]: Keep cygwin separate from Mingw32;
+       we don't need it here as it behaves more like a Posix system.
+       From Werner on stable branch.
+
+       * passphrase.c (agent_get_passphrase): Ditto.  From Werner on
+       stable branch.
+
+       * tdbio.c (MY_O_BINARY): Need binary mode with Cygwin.  From
+       Werner on stable branch.
+
+               * g10.c, gpgv.c (main) [__CYGWIN32__]: Don't get the homedir from
+       the registry.  From Werner on stable branch.
+       
+       * keyedit.c (show_key_with_all_names_colon): Make --with-colons
+       --edit display match the validity and trust of --with-colons
+       --list-keys.
+
+       * passphrase.c (agent_send_all_options): Fix compile warning.
+
+       * keylist.c (list_keyblock_colon): Validity for subkeys should
+       match that of the primary key, and not that of the last user ID.
+
+       * getkey.c (merge_selfsigs): Revoked/expired/invalid primary keys
+       carry these facts onto all their subkeys, but only after the
+       subkey has a chance to be marked valid.  This is to fix an
+       incorrect "invalid public key" error verifying a signature made by
+       a revoked signing subkey, with a valid unrevoked primary key.
+
+2002-11-09  Werner Koch  <wk@gnupg.org>
+
+       * passphrase.c (agent_send_all_options): Use tty_get_ttyname to
+       get the default ttyname.
+
+2002-11-07  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyring.h, keyring.c (keyring_register_filename): Return the
+       pointer if a given keyring is registered twice.
+
+       * keydb.h, keydb.c (keydb_add_resource): Use flags to indicate a
+       default keyring.
+       (keydb_locate_writable): Prefer the default keyring if possible.
+
+       * g10.c (main): Add --default-keyring option.
+
+2002-11-06  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, g10.c (main), trustdb.c (ask_ownertrust): Add
+       --force-ownertrust option for debugging purposes.  This allows
+       setting a whole keyring to a given trust during an
+       --update-trustdb.  Not for normal use - it's just easier than
+       hitting "4" all the time to test a large trustdb.
+
+       * pubkey-enc.c (get_session_key): With hidden recipients or try a
+       given passphrase against all secret keys rather than trying all
+       secret keys in turn.  Don't if --try-all-secrets or --status-fd is
+       enabled.
+
+       * passphrase.c (passphrase_to_dek): Mode 1 means do a regular
+       passphrase query, but don't prompt with the key info.
+
+       * seckey-cert.c (do_check, check_secret_key): A negative ask count
+       means to enable passphrase mode 1.
+
+       * keydb.h, getkey.c (enum_secret_keys): Add flag to include
+       secret-parts-missing keys (or not) in the list.
+
+2002-11-05  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyserver.c (keyserver_search_prompt): When --with-colons is
+       enabled, don't try and fit the search output to the screen size -
+       just dump the whole list.
+
+2002-11-04  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyserver.c (keyserver_search_prompt): When --with-colons is
+       enabled, just dump the raw keyserver protocol to stdout and don't
+       print the menu.
+
+       * keyserver.c (show_prompt): Don't show a prompt when command-fd
+       is being used.
+
+       * trustdb.c (trust_model_string, check_trustdb, update_trustdb,
+       validate_one_keyblock): It's not clear what a trustdb rebuild or
+       check means with a trust model other than "classic" or "openpgp",
+       so disallow this.
+
+2002-11-03  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, g10.c (main): Add --trust-model option.  Current
+       models are "openpgp" which is classic+trustsigs, "classic" which
+       is classic only, and "always" which is the same as the current
+       option --always-trust (which still works).  Default is "openpgp".
+
+       * trustdb.c (validate_one_keyblock): Use "openpgp" trust model to
+       enable trust sigs.
+
+       * gpgv.c (main), mainproc.c (check_sig_and_print), pkclist.c
+       (do_we_trust, do_we_trust_pre, check_signatures_trust): Use new
+       --trust-model option in place of --always-trust.
+
+       * keyedit.c (sign_mk_attrib, trustsig_prompt, sign_uids,
+       keyedit_menu): Prompt for and create a trust signature with
+       "tsign".  This is functional, but needs better UI text.
+
+       * build-packet.c (build_sig_subpkt): Able to build trust and
+       regexp subpackets.
+
+       * pkclist.c (do_edit_ownertrust): Comment.
+
+2002-11-02  David Shaw  <dshaw@jabberwocky.com>
+
+       * keygen.c (set_one_pref, keygen_set_std_prefs): Allow using the
+       full algorithm name (CAST5, SHA1) rather than the short form (S3,
+       H2).
+
+       * main.h, keygen.c (keygen_get_std_prefs), keyedit.c
+       (keyedit_menu): Return and use a fake uid packet rather than a
+       string since we already have a nice parser/printer in
+       keyedit.c:show_prefs.
+
+       * main.h, misc.c (string_to_compress_algo): New.
+
+2002-11-01  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Add --no-throw-keyid.
+
+       * keydb.h, encode.c (write_pubkey_enc_from_list), g10.c (main),
+       pkclist.c (build_pk_list): Add --hidden-recipient (-R) and
+       --hidden-encrypt-to, which do a single-user variation on
+       --throw-keyid.  The "hide this key" flag is carried in bit 0 of
+       the pk_list flags field.
+
+       * keyserver.c (parse_keyrec): Fix shadowing warning.
+
+2002-10-31  Stefan Bellon  <sbellon@sbellon.de>
+
+       * compress.c (init_compress) [__riscos__]: Use
+       riscos_load_module() to load ZLib module.
+
+       * g10.c (main) [__riscos__]: Renames due to changes in riscos.c
+       (e.g. prefixes all RISC OS specific functions with riscos_*).
+       * photoid.c (show_photos) [__riscos__]: Likewise.
+       * signal.c (got_fatal_signal) [__riscos__]: Likewise.
+
+       * trustdb.c (check_regexp) [__riscos__]: Branch to RISC OS RegEx
+       handling.
+
+2002-10-31  David Shaw  <dshaw@jabberwocky.com>
+
+       * build-packet.c (do_plaintext), encode.c (encode_sesskey,
+       encode_simple, encode_crypt), sign.c (write_plaintext_packet): Use
+       wipememory() instead of memset() to wipe sensitive memory as the
+       memset() might be optimized away.
+
+2002-10-30  David Shaw  <dshaw@jabberwocky.com>
+
+       * trustdb.c (check_regexp): Modern regexps require REG_EXTENDED.
+
+2002-10-29  David Shaw  <dshaw@jabberwocky.com>
+
+       * packet.h, trustdb.h, trustdb.c (trust_string): New.  Return a
+       string like "fully trusted", "marginally trusted", etc.
+       (get_min_ownertrust): New.  Return minimum ownertrust.
+       (update_min_ownertrust): New.  Set minimum ownertrust.
+       (check_regexp): New.  Check a regular epression against a user ID.
+       (ask_ownertrust): Allow specifying a minimum value.
+       (get_ownertrust_info): Follow the minimum ownertrust when
+       returning a letter.
+       (clear_validity): Remove minimum ownertrust when a key becomes
+       invalid.
+       (release_key_items): Release regexp along with the rest of the
+       info.
+       (validate_one_keyblock, validate_keys): Build a trust sig chain
+       while validating.  Call check_regexp for regexps.  Use the minimum
+       ownertrust if the user does not specify a genuine ownertrust.
+
+       * pkclist.c (do_edit_ownertrust): Only allow user to select a
+       trust level greater than the minimum value.
+
+       * parse-packet.c (can_handle_critical): Can handle critical trust
+       and regexp subpackets.
+
+       * trustdb.h, trustdb.c (clear_ownertrusts), delkey.c
+       (do_delete_key), import.c (import_one): Rename clear_ownertrust to
+       clear_ownertrusts and have it clear the min_ownertrust value as
+       well.
+
+       * keylist.c (list_keyblock_print): Indent uid to match pub and
+       sig.
+
+       * keyedit.c (print_and_check_one_sig, show_key_and_fingerprint,
+       menu_addrevoker), keylist.c (list_keyblock_print,
+       print_fingerprint): Show "T" or the trust depth for trust
+       signatures, and add spaces to some strings to make room for it.
+
+       * packet.h, parse-packet.c (dump_sig_subpkt, parse_one_sig_subpkt,
+       parse_signature): Parse trust signature values.
+
+       * tdbio.h, tdbio.c (tdbio_read_record, tdbio_write_record):
+       Reserve a byte for the minimum ownertrust value (for use with
+       trust signatures).
+
+2002-10-29  Stefan Bellon  <sbellon@sbellon.de>
+
+       * build-packet.c (calc_plaintext, do_plaintext): Removed RISC OS
+       specific filetype parts (it's now done in make_basename()).
+
+       * plaintext.c (handle_plaintext): Tidied up RISC OS specific
+       filetype parts.
+
+       * encode.c (encode_simple, encode_crypt): Added argument to
+       make_basename() call.
+
+       * sign.c (write_plaintext_packet): Added argument to
+       make_basename() call.
+
+2002-10-28  Stefan Bellon  <sbellon@sbellon.de>
+
+       * build-packet.c (calc_plaintext, do_plaintext): Added filetype
+       handling for RISC OS' file types.
+
+       * plaintext.c (handle_plaintext) [__riscos__]: Added filetype
+       handling for RISC OS' file types.
+
+2002-10-23  David Shaw  <dshaw@jabberwocky.com>
+
+       * main.h, import.c (sec_to_pub_keyblock, import_secret_one,
+       parse_import_options), g10.c (main): New import-option
+       "convert-sk-to-pk" to convert a secret key into a public key
+       during import.  It is on by default.
+
+2002-10-23  Werner Koch  <wk@gnupg.org>
+
+       * pubkey-enc.c (get_it): Fix segv, test for revoked only when PK
+       has been assigned.
+
+2002-10-18  Timo Schulz  <ts@winpt.org>
+
+       * keylist.c: (print_pubkey_info): New.
+       (print_seckey_info): New.
+       * main.h: Prototypes for the new functions.       
+       * delkey.c (do_delete_key): Use it here.
+       * revoke.c (gen_desig_revoke): Ditto.
+       
+2002-10-17  Werner Koch  <wk@gnupg.org>
+
+       * pkclist.c (do_edit_ownertrust): Show all user IDs.  This should
+       be enhanced to also show the current trust level.  Suggested by
+       Florian Weimer.
+
+2002-10-17  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Handle --strict and --no-strict from the command
+       line before the options file is loaded.
+
+2002-10-15  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Disable --textmode when encrypting (symmetric or
+       pk) in --pgp2 mode as PGP 2 can't handle the unknown length
+       literal packet.  Reported by Michael Richardson.
+
+2002-10-14  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyserver-internal.h, keyserver.c (print_keyrec, parse_keyrec,
+       show_prompt, keyserver_search_prompt, keyserver_spawn): Go to
+       version 1 of the keyserver protocol.  This is a better design,
+       similar to --with-colons, that allows for keys with multiple user
+       IDs rather than using multiple keys.  It also matches the machine
+       readable pksd format.  Also use a prettier --search-keys listing
+       format that can fill different size windows (currently set at 24
+       lines).
+
+2002-10-12  Werner Koch  <wk@gnupg.org>
+
+       * keygen.c (print_status_key_created): New.
+       (do_generate_keypair): Use it to print the fingerprint.
+       (generate_subkeypair): Likewise.
+
+2002-10-11  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyedit.c (menu_addrevoker): Properly back out if the signature
+       fails.  Also, do not allow appointing the same revoker twice, and
+       report ALREADY_SIGNED if the user tries it.
+
+2002-10-07  David Shaw  <dshaw@jabberwocky.com>
+
+       * import.c (import_keys_internal): Missed one s/inp/inp2/.
+
+       * keylist.c (print_capabilities): Properly indicate per-key
+       capabilities of sign&encrypt primary keys that have
+       secret-parts-missing (i.e. no capabilities at all)
+
+       * mainproc.c (symkey_decrypt_sesskey): Fix compiler warning.
+
+2002-10-04  David Shaw  <dshaw@jabberwocky.com>
+
+       * getkey.c (get_pubkey_direct): Don't cache keys retrieved via
+       this function as they may not have all their fields filled in.
+
+       * sig-check.c (signature_check2): Use new is_primary flag to check
+       rather than comparing main_keyid with keyid as this still works in
+       the case of a not fully filled in pk.
+
+2002-10-04  Werner Koch  <wk@gnupg.org>
+
+       * import.c (import_keys_internal): s/inp/inp2/ to avoid shadowing
+       warning.
+
+       * passphrase.c (agent_get_passphrase): Fixed signed/unsigned char
+       problem in %-escaping.  Noted by Ingo Klöcker.
+
+2002-10-03  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, g10.c (main): Add --strict and --no-strict to switch
+       the log_warning severity level from info to error.
+
+       * keylist.c (print_capabilities): Secret-parts-missing keys should
+       show that fact in the capabilities, and only primary signing keys
+       can certify other keys.
+
+       * packet.h, parse_packet.c (parse_key): Add is_primary flag for
+       public keys (it already exists for secret keys).
+
+2002-10-02  David Shaw  <dshaw@jabberwocky.com>
+
+       * import.c (import_secret_one): Check for an illegal (>110)
+       protection cipher when importing a secret key.
+
+       * keylist.c (list_keyblock_print): Show a '#' for a
+       secret-parts-missing key.
+
+       * parse_packet.c (parse_key): Some comments.
+
+       * revoke.c (gen_revoke): Remove some debugging code.
+
+       * trustdb.c (verify_own_keys): Make trusted-key a non-deprecated
+       option again.
+
+       * seckey-cert.c (do_check): Don't give the IDEA warning unless the
+       cipher in question is in fact IDEA.
+
+2002-10-01  David Shaw  <dshaw@jabberwocky.com>
+
+       * import.c (import_one): Make sure that a newly imported key
+       starts with a clean ownertrust.
+
+2002-10-01  Werner Koch  <wk@gnupg.org>
+
+       * getkey.c (get_pubkey_direct): New.
+       (merge_selfsigs_main): Use it here to look for an ultimately
+       trusted key.  Using the full get_pubkey might lead to an
+       infinitive recursion.
+
+2002-09-29  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyserver.c (parse_keyserver_uri): Force the keyserver URI
+       scheme to lowercase to be case-insensitive.
+
+2002-09-28  David Shaw  <dshaw@jabberwocky.com>
+
+       * export.c (do_export_stream): Comment.
+
+       * sig-check.c (check_key_signature2): Properly handle a
+       non-designated revocation import.
+
+2002-09-26  Werner Koch  <wk@gnupg.org>
+
+       * g10.c (set_homedir): New. Changed all direct assignments to use
+       this.
+       * gpgv.c (set_homedir): Ditto.
+
+2002-09-25  David Shaw  <dshaw@jabberwocky.com>
+
+       * Makefile.am: Link gpg with EGDLIBS (i.e. NETLIBS) as EGD uses
+       sockets.  Remove the old NETLIBS variable since the keyserver
+       stuff is no longer internal.
+
+2002-09-24  David Shaw  <dshaw@jabberwocky.com>
+
+       * import.c (import_keys_stream): Fix compiler type warning.
+
+       * keyring.c (keyring_rebuild_cache), sig-check.c
+       (check_key_signature2), import.c (import, chk_self_sigs): Minor
+       language cleanups.
+
+2002-09-23  Stefan Bellon  <sbellon@sbellon.de>
+
+       * main.h: Introduced fast-import as import option. Removed
+       fast as separate option from prototypes.
+       * import.c (parse_import_options): Added fast-import option.
+       (import_*): Removed fast as separate option.
+       * g10.c (main): Added option fast-import, removed old fast
+       as separate argument.
+       * keyserver.c (keyserver_spawn): Removed old fast as separate
+       argument.
+
+2002-09-22  Stefan Bellon  <sbellon@sbellon.de>
+
+       * import.c (import_keys, import_keys_stream,
+       import_keys_internal): Added trustdb update/check to key import if
+       not fast-import and interactive set/no-auto-check-trustdb unset.
+       Avoided function clone by introducing import_keys_internal.
+
+2002-09-19  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyserver.c (keyserver_spawn): Properly handle line truncation.
+       Don't leak memory (~10-20 bytes) on searches.
+       (keyserver_search_prompt): Cleanup.
+
+       * keylist.c (list_keyblock_colon): Show 1F direct key signatures
+       in --with-colons listing.
+
 2002-09-16  David Shaw  <dshaw@jabberwocky.com>
 
        * keyedit.c (menu_addrevoker): The direct key signature for
@@ -6835,7 +8385,7 @@ Thu Feb 12 22:24:42 1998  Werner Koch  (wk@frodo)
        * pubkey-enc.c (get_session_key): rewritten
 
 
- Copyright 1998,1999,2000,2001,2002 Free Software Foundation, Inc.
+ Copyright 1998,1999,2000,2001,2002,2003 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