* g10.c (main): Handle --strict and --no-strict from the command line
[gnupg.git] / g10 / ChangeLog
index 63c5c01..fa29afe 100644 (file)
@@ -1,3 +1,511 @@
+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
+       revocation keys must be at least v4 to carry the revocation key
+       subpacket.  Add a PGP 2.x warning for revocation keys.
+
+2002-09-14  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (check_permissions): Rearrange strings to make translating
+       easier (don't incorporate string parts).
+
+       * keyedit.c (sign_uids): Make strings translatable.
+
+       * sig-check.c (check_key_signature2): Make string translatable.
+
+2002-09-13  David Shaw  <dshaw@jabberwocky.com>
+
+       * getkey.c (check_revocation_keys): Move....
+       * main.h, sig-check.c (check_revocation_keys): to here.  Also
+       return the signature_check error code rather than 0/1 and cache
+       the sig result.
+
+       * sig-check.c (check_key_signature2): Divert to
+       check_revocation_keys if a revocation sig is made by someone other
+       than the pk owner.
+
+       * getkey.c (merge_selfsigs_main): Tidy.
+
+2002-09-13  Werner Koch  <wk@gnupg.org>
+
+       * g10.c (main) [__MINGW32__]: Activate oLoadExtension.
+
+2002-09-12  David Shaw  <dshaw@jabberwocky.com>
+
+       * Makefile.am, hkp.c, hkp.h, keyserver.c (keyserver_work): Remove
+       internal HKP support.
+
+       * keyserver.c (keyserver_spawn): Remove whitespace after keyserver
+       commands.
+
+2002-09-10  David Shaw  <dshaw@jabberwocky.com>
+
+       * exec.c (expand_args): Remove loop left over from earlier
+       implementation.
+       (exec_write): Missed one tick.
+
+2002-09-10  Werner Koch  <wk@gnupg.org>
+
+       * g10.c, options.h: Removed option --emulate-checksum-bug.
+       * misc.c (checksum_u16_nobug): Removed.
+       (checksum_u16): Removed the bug emulation.
+       (checksum_mpi): Ditto.
+       (checksum_mpi_counted_nbits): Removed and replaced all calls
+       with checksum_mpi.
+
+       * parse-packet.c (read_protected_v3_mpi): New.
+       (parse_key): Use it here to store it as an opaque MPI.
+       * seckey-cert.c (do_check): Changed the v3 unprotection to the new
+       why to store these keys.
+       (protect_secret_key): Likewise.
+       * build-packet.c (do_secret_key): And changed the writing.
+
+       * tdbio.c (tdbio_set_dbname, open_db): Use new macro MY_O_BINARY
+       to avoid silly ifdefs.
+       (open_db): Fallback to RDONLY so that gpg may be used from a
+       RO-medium.
+
+       * encode.c (encode_simple): Make sure we don't use an ESK packet
+       when we don't have a salt in the S2K.
+
+       * misc.c (pct_expando) <case f>: Make sure that LEN is initialized.
+
+       * exec.c (exec_finish): Use ticks to denote filenames in messages.
+       (make_tempdir, exec_write): Changed format of messages.
+
+       * keyserver.c (print_keyinfo): Release USERID in on error.
+       (keyserver_work) [!DISABLE_KEYSERVER_HELPERS]: Exclude the unused
+       code.
+
+2002-09-09  Werner Koch  <wk@gnupg.org>
+
+       * parse-packet.c (make_attribute_uidname): Add new ar MAX_NAMELEN
+       for sanity checks.  Changed both callers. Limit the size of an %s.
+
+       * options.skel: Comment lock-once out, so that this file does not
+       change anything when copied to a new home directory.
+       * openfile.c (try_make_homedir): Don't exit after copying the
+       option skeleton.
+
+       * options.h: Don't use a comma when declaring variables over more
+       than one line.
+
+       * mainproc.c (symkey_decrypt_sesskey): Check length of the session
+       key.
+
+       * hkp.c (dehtmlize): Use ascii_tolower to protect against weird
+       locales.  Cast the argument for isspace for the sake of broken
+       HP/UXes.
+       (parse_hkp_index): s/ascii_memcasecmp/ascii_strncasecmp/.
+
+       * g10.c: Removed option --emulate-3des-s2k-bug.
+
+       * passphrase.c (hash_passphrase): Was used here.
+
+       * export.c (parse_export_options)
+       * keyserver.c (parse_keyserver_options)
+       * import.c (parse_import_options)
+       * g10.c (check_permissions): s/ascii_memcasecmp/ascii_strncasecmp/.
+
+2002-09-09  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (add_group): Use '=' to separate group name from group
+       members.  Use a better error message for when no = is found.
+
+       * hkp.c (hkp_export): Use CRLF in headers.
+
+2002-09-03  David Shaw  <dshaw@jabberwocky.com>
+
+       * mainproc.c (print_pkenc_list): Don't increment the error counter
+       when printing the list of keys a message was encrypted to.  This
+       would make gpg give a non-zero exit code even for completely valid
+       messages if the message was encrypted to more than one key that
+       the user owned.
+
+2002-09-02  Werner Koch  <wk@gnupg.org>
+
+       * g10.c (main): Try to set a default character set.  Print the
+       used one in verbosity level 3.
+       * gpgv.c (main): Try to set a default character set.
+
+       * status.c, status.h (STATUS_IMPORT_OK): New.
+       * import.c (import_one,import_secret_one): Print new status.
+
+2002-08-30  David Shaw  <dshaw@jabberwocky.com>
+
+       * pkclist.c (build_pk_list): Add new status code to indicate an
+       untrusted user.  This (or a disabled key) fail with "unavailable
+       pubkey" (G10ERR_UNU_PUBKEY).
+
+       * pkclist.c (build_pk_list): Fail if any recipient keys are
+       unusable.
+
+       * options.skel: The PGP LDAP keyserver is back.  Use MIT keyserver
+       as a sample rather than cryptnet as cryptnet does not support
+       searching yet.
+
+       * keyedit.c (show_key_with_all_names): Fix error message
+       (preferences are userid/selfsig and not key specific).
+
+2002-08-30  Werner Koch  <wk@gnupg.org>
+
+       * pkclist.c (do_we_trust_pre): Changed the wording of a warning.
+
+       * encode.c (encode_simple,encode_crypt): Use new style CTB for
+       compressssed packets when using MDC.  We need to do this so that
+       concatenated messages are properly decrypted.  Old style
+       compression assumes that it is the last packet; given that we
+       can't determine the length in advance, the uncompressor does not
+       know where to start.  Actually we should use the new CTB always
+       but this would break PGP 2 compatibility.
+
+       * parse-packet.c (parse): Special treatment for new style CTB
+       compressed packets.
+
+       * build-packet.c (do_mdc): Removed. Was not used.
+       (do_encrypted_mdc): Count in the version number and the MDC packet.
+
+2002-08-28  David Shaw  <dshaw@jabberwocky.com>
+
+       * sig-check.c (do_check_messages, do_check): Show keyid in error
+       messages.
+
+       * keyserver.c (print_keyinfo): More readable key listings for
+       --search-keys responses.
+
+2002-08-26  David Shaw  <dshaw@jabberwocky.com>
+
+       * hkp.c (parse_hkp_index, dehtmlize): Move HTML functionality into
+       new "dehtmlize" function.  Remove HTML before trying to parse each
+       line from the keyserver.  If the keyserver provides key type
+       information in the listing, use it.
+
+2002-08-23  David Shaw  <dshaw@jabberwocky.com>
+
+       * sig-check.c (do_check, do_check_messages): Emit the usual sig
+       warnings even for cached sigs.  This also serves to protect
+       against missing a sig expiring while cached.
+
+       * getkey.c (merge_selfsigs_main): Don't check UID self-sigs twice.
+
+2002-08-22  David Shaw  <dshaw@jabberwocky.com>
+
+       * import.c (clean_subkeys, chk_self_sigs): Merge clean_subkeys
+       into chk_self_sigs.  This improves efficiency as the same
+       signatures are not checked multiple times.  Clarify when a subkey
+       is revoked (any revocation signature, even if it is dated before
+       the binding signature).
+
+       * getkey.c (merge_selfsigs_subkey): Subkey revocation comments.
+
+       * keylist.c (list_one): Stats are only for public key listings.
+
+       * g10.c (main), options.skel: Default should be include-revoked
+       for keyserver operations.
+
+2002-08-21  Werner Koch  <wk@gnupg.org>
+
+       * import.c (import_print_stats): Print new non_imported counter
+       which is currently not used because we terminate on errors.
+
+2002-08-20  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.skel: Document no-include-attributes for
+       keyserver-options.
+
+       * keylist.c, keyedit.c, keyserver.c, sign.c: Some TODOs and
+       comments.
+
+       * export.c (do_export_stream): Fix noop bug in exporting sensitive
+       revocation keys.
+
+       * pkclist.c (do_edit_ownertrust): Comment out the option for
+       showing trust paths until it can be implemented.
+
+2002-08-19  Werner Koch  <wk@gnupg.org>
+
+       * getkey.c (get_user_id_native): Renamed to ..
+       (get_user_id_printable): this.  Filter out all dangerous
+       characters.  Checked all usages.
+       (get_user_id_string_native): Renamed to..
+       (get_user_id_string_printable): this.  Filter out all dangerous
+       characters.  Checked all usages.
+       * keyedit.c (show_basic_key_info): New.
+       * keylist.c (print_fingerprint): New mode 3.
+       * import.c (import_one): Use new function to display the user ID.
+
+2002-08-16  Timo Schulz  <ts@winpt.org>
+
+       * g10.c (main): Enable opt.interactive.
+
+       * import.c (import_one): Ask the user if the key shall be
+       imported when the interactive mode is used. Useful to extract
+       selected keys from a file.
+       
+2002-08-16  Werner Koch  <wk@gnupg.org>
+
+       * seckey-cert.c: Workaround to allow decryption of v3 keys created
+       with a bug in the mpi_get_secure_buffer.
+
+2002-08-14  David Shaw  <dshaw@jabberwocky.com>
+
+       * hkp.c (parse_hkp_index): Properly handle really large keys
+       (5 digit key length) in HKP searches.
+
+2002-08-13  David Shaw  <dshaw@jabberwocky.com>
+
+       * encode.c (encode_simple): Fix problem with using compression
+       algo 2 and symmetric compressed files.
+
+       * encode.c (encode_simple, encode_crypt): If we are not using a
+       MDC, compress even if a file is already compressed.  This is to
+       help against the chosen ciphertext attack.
+
+       * pkclist.c (select_algo_from_prefs): Fix requested algorithm bug
+       so the request succeeds even if the requested algorithm is not the
+       first found.
+
+       * cipher.c (write_header), encode.c (use_mdc, encode_simple,
+       encode_crypt, encrypt_filter), g10.c (main): Be more eager to use
+       a MDC.  We use a MDC if the keys directly support it, if the keys
+       list AES (any) or TWOFISH anywhere in the prefs, or if the cipher
+       chosen does not have a 64 bit blocksize.
+
+2002-08-08  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.skel: Some language tweaks, and remove the
+       load-extension section for random gatherers.
+
+       * keyring.c (create_tmp_file, rename_tmp_file): Create tmp files
+       with user-only permissions, but restore the original permissions
+       if the user has something special set.
+
+       * openfile.c (copy_options_file): Create new options file
+       (gpg.conf) with user-only permissions.
+
+       * keydb.c (keydb_add_resource): Create new keyrings with user-only
+       permissions.
+
+       * tdbio.c (tdbio_set_dbname): Create new trustdbs with user-only
+       permissions.
+
+2002-08-07  David Shaw  <dshaw@jabberwocky.com>
+
+       * sig-check.c (signature_check2): Sanity check that the md has a
+       context for the hash that the sig is expecting.  This can happen
+       if a onepass sig header does not match the actual sig, and also if
+       the clearsign "Hash:" header is missing or does not match the
+       actual sig.
+
+       * keyedit.c (menu_revsig): Properly show a uid is revoked without
+       restarting gpg.  This is Debian bug 124219, though their supplied
+       patch will not do the right thing.
+
+       * main.h, tdbio.c (tdbio_set_dbname), misc.c (removed
+       check_permissions), keydb.c (keydb_add_resource), g10.c (main,
+       check_permissions): Significant reworking of the permission check
+       mechanism.  The new behavior is to check everything in the homedir
+       by checking the homedir itself.  If the user wants to put
+       (possibly shared) keyrings outside the homedir, they are not
+       checked.  The options file and any extension files are checked
+       wherever they are, as well as their enclosing directories.  This
+       is Debian bug 147760.
+       
+2002-08-06  Stefan Bellon  <sbellon@sbellon.de>
+
+       * g10.c (main): Use of EXTSEP_S in new gpg.conf string.
+       * openfile.c (copy_options_file): Ditto.
+
+2002-08-06  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, g10.c (main), mainproc.c (proc_encrypted):
+       --ignore-mdc-error option to turn a MDC check error into a
+       warning.
+
+       * encode.c (encode_crypt), g10.c (main), sign.c (sign_file,
+       clearsign_file): Use the same --pgpX warning string everywhere to
+       ease translations.
+
+       * encode.c (write_pubkey_enc_from_list): Warn when using
+       --throw-keyid with --pgpX.  Noted by Vedaal Nistar.
+
+       * revoke.c (export_minimal_pk, gen_desig_revoke, gen_revoke):
+       Export a minimal pk along with the revocation cert when in --pgpX
+       mode so that PGP can import it.
+
+2002-08-06  Werner Koch  <wk@gnupg.org>
+
+       * options.skel: Changed comments.
+
+       * g10.c (main): Try to use "gpg.conf" as default option file.
+       * openfile.c (copy_options_file): Changed name of created file.
+
+2002-08-02  Werner Koch  <wk@gnupg.org>
+
+       * Makefile.am (LDFLAGS): Removed DYNLINK_LDFLAGS.
+
 2002-07-30  David Shaw  <dshaw@jabberwocky.com>
 
        * options.h, g10.c (main), mainproc.c (proc_encrypted): Return a
        * sig-check.c (do_check): Properly validate v4 sigs with no hashed
        section at all.
 
+2002-07-25  Werner Koch  <wk@gnupg.org>
+
+       * delkey.c (do_delete_key): Always allow to delete a key in batch mode
+       when specified by fingerprint.  Suggested by Enzo Michelangeli.
+
 2002-07-25  David Shaw  <dshaw@jabberwocky.com>
 
        * keyedit.c (menu_revsig): Change "revsig" to honor selected uids
 
 2002-05-05  Timo Schulz  <ts@winpt.org>
 
-        * mainproc.c (proc_symkey_enc): Don't ask for a passphrase
+       * mainproc.c (proc_symkey_enc): Don't ask for a passphrase
         in the list only mode.
        
 2002-05-05  David Shaw  <dshaw@jabberwocky.com>