* cardglue.c (open_card): Ask for card insertion.
[gnupg.git] / g10 / ChangeLog
index 6424944..2c6b1bc 100644 (file)
@@ -1,3 +1,458 @@
+2003-10-29  Werner Koch  <wk@gnupg.org>
+
+       * cardglue.c (open_card): Ask for card insertion.
+       (check_card_serialno): New.
+       (agent_scd_pksign, agent_scd_pkdecrypt): Use it here.
+       * cardglue.c (open_card): Issue insertion status message.
+       * status.h, status.c (STATUS_CARDCTRL): New.
+
+       * status.c (cpr_get_answer_okay_cancel): New.
+
+2003-10-28  Werner Koch  <wk@gnupg.org>
+
+       * keylist.c (list_keyblock_print): Denote secrets keys stored on a
+       card with an '>'. Print the '#' also for subkeys.
+       (list_keyblock_colon): Introduce new field 15 for sec/ssb to print
+       the serial number.
+
+2003-10-26  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Enhance the version-specific config file code to
+       try for more specific matches before giving up (e.g. 1.3.3-cvs,
+       1.3.3, 1.3, 1).
+
+2003-10-25  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Add --symmetric --encrypt command.  This generates
+       a message that can be decrypted via a passphrase or public key
+       system.
+
+       * main.h, encode.c (encode_seskey): Allow passing in an
+       already-created session key dek.
+       (encode_simple): Use the actual symmetric cipher when encrypting a
+       session key for a symmetric message.
+       (encode_crypt): Add a flag to trigger a hybrid mode that can be
+       decrypted via a passphrase or a pk.  Change all callers.
+
+       * mainproc.c (symkey_decrypt_sesskey): There is no way to tell the
+       difference here between a bad passphrase and a cipher algorithm
+       that we don't have, so use a error message that makes that clear.
+       Use the actual list of ciphers when checking whether a cipher is
+       invalid.  Return error if the decrypted cipher algorithm is
+       invalid.
+       (proc_symkey_enc): In a mixed passphrase/pk message, if a valid
+       dek already exists from decrypting via pk, do not try to process
+       the passphrase.
+       (proc_symkey_enc): Indicate when we're decrypting a session key as
+       opposed to decrypting data.  If a passphrase is invalid, discard
+       the dek so we'll keep trying.
+
+2003-10-25  Werner Koch  <wk@gnupg.org>
+
+       * ccid-driver.c (ccid_open_reader): Return an error if no USB
+       devices are found.
+
+       * Makefile.am: Replaced INTLLIBS by LIBINTL.
+
+       * g10.c (main) [ENABLE_CARD_SUPPORT]: Add a default for
+       --pcsc-driver.
+
+       * cardglue.c (learn_status_cb): Fixed faulty use of !space.
+
+2003-10-24  Werner Koch  <wk@gnupg.org>
+
+       * apdu.c (apdu_open_reader): Hacks for PC/SC under Windows.
+
+2003-10-21  Werner Koch  <wk@gnupg.org>
+
+       * passphrase.c (ask_passphrase): Add optional promptid arg.
+       Changed all callers.
+       * cardglue.c (pin_cb): Use it here, so the machine interface can
+       tell whether the Admin PIN is requested.
+
+       * cardglue.c (agent_scd_checkpin): New.
+
+       * misc.c (openpgp_pk_algo_usage): Added AUTH usage.
+
+       * app-openpgp.c (check_against_given_fingerprint): New. Factored
+       out that code elsewhere.
+       (do_check_pin): New.
+       * card-util.c (card_edit): New command "passwd".  Add logic to
+       check the PIN in advance.
+       (card_status): Add new args to return the serial number.  Changed
+       all callers.
+
+2003-10-14  David Shaw  <dshaw@jabberwocky.com>
+
+       * import.c (import_one): Show the keyid when giving the Elgamal
+       slow import warning.
+
+       * g10.c (main): Older versions used --comment "" to indicate no
+       comment.  Don't add an empty comment.
+
+2003-10-13  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyedit.c (show_key_with_all_names): Ownertrust is only
+       meaningful for the PGP or classic trust models.  Both validity and
+       ownertrust are not meaningful for the always trust model.
+
+2003-10-11  Werner Koch  <wk@gnupg.org>
+
+       * keygen.c: Always enable the gen_card_key prototype.
+
+2003-10-10  Werner Koch  <wk@gnupg.org>
+
+       * cardglue.c (card_close): New.
+       (agent_scd_change_pin): Implemented.
+
+       * ccid-driver.c (ccid_close_reader): New.
+       * apdu.c (close_ccid_reader, close_ct_reader, close_csc_reader)
+       (close_osc_reader, apdu_close_reader): New.  Not all are properly
+       implemented yet.
+       * g10.c (g10_exit): Use close_card.
+
+2003-10-09  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Give a deprecated option warning for
+       --show-keyring, --show-photos, --show-policy-url, --show-notation,
+       and their respective no- forms.
+
+       * options.skel: Remove show-photos and replace with
+       list/verify-options show-photos.  Remove no-mangle-dos-filenames.
+
+       * misc.c (parse_options): Allow for incomplete (but unambiguous)
+       options.
+
+2003-10-09  Werner Koch  <wk@gnupg.org>
+
+       * ccid-driver.c (ccid_transceive): Add T=1 chaining for sending.
+
+       * sign.c (do_sign) [!ENABLE_CARD_SUPPORT]: Return an error for
+       card keys.
+
+       * cardglue.c (agent_scd_pkdecrypt): Implemented.
+       * pubkey-enc.c (get_it) [ENABLE_CARD_SUPPORT]: Divert decryption
+       to card
+
+2003-10-08  Werner Koch  <wk@gnupg.org>
+
+       * cardglue.c (pin_cb): Detect whether an admin or regular PIN is
+       requested.
+       (genkey_status_cb): New.
+       (agent_scd_genkey): Implemented.
+
+       * keygen.c (generate_keypair): New arg CARD_SERIALNO and prepare
+       parameters for on card key generation. Changed all callers.
+       (do_generate_keypair): Add new arg card and merged casrd specific
+       changes from 1.9.
+       (proc_parameter_file): New arg card, apss it down to
+       do_generate_keypair and changed all callers.
+       (gen_card_key): New.
+
+       * g10.c: Include cardclue.h.
+       (main): s/app_set_default_reader_port/card_set_reader_port/.
+       * cardglue.c (card_set_reader_port): New to address include file
+       issues.
+
+2003-10-02  Werner Koch  <wk@gnupg.org>
+
+       * cardglue.c (learn_status_cb): Release values before assignment
+       so that it can be used by getattr to update the structure.
+       (agent_scd_getattr): New.
+
+       * keylist.c (print_pubkey_info): Add FP arg for optional printing
+       to a stream.  Changed all callers.
+
+2003-10-01  Werner Koch  <wk@gnupg.org>
+
+       * app-common.h, app-openpgp.c, iso7816.c, iso7816.h, apdu.c
+       * apdu.h, ccid-driver.c, ccid-driver.h, card-util.c: Updated
+       from current GnuPG 1.9. Changes over there are:
+       * card-util.c: Tweaked to use this source also under 1.3. 
+       (card_edit): New command "forcesig".
+       * card-util.c (print_name, print_isoname): Use 0 and not LF fro
+       the max_n arg of tty_print_utf8_string2.
+       * card-util.c (change_pin): Simplified.  We now have only a PIN
+       and an Admin PIN.
+       * ccid-driver.c: Detect GnuPG 1.3 and include appropriate files.
+       * apdu.c: Ditto.
+       * app-openpgp.c: Ditto.
+       * iso7816.c: Ditto.
+       (generate_keypair): Renamed to ..
+       (do_generate_keypair): .. this.
+       * app-common.h [GNUPG_MAJOR_VERSION]: New.
+       * iso7816.h [GNUPG_MAJOR_VERSION]: Include cardglue.h
+       * app-openpgp.c (do_change_pin): Make sure CVH1 and CHV2 are
+       always synced.
+       (verify_chv2, verify_chv3): New. Factored out common code.
+       (do_setattr, do_sign, do_auth, do_decipher): Change the names of
+       the prompts to match that we have only 2 different PINs.
+       (app_select_openpgp): Check whether the card enforced CHV1.
+       (convert_sig_counter_value): New. Factor out code from
+       get_sig_counter.
+
+       * Makefile.am (card_support_source): Depend on new AM conditional
+       to get the ifdef ENABLE_CARD_SUPPORT off the way from source
+       copied files.
+       (update-source-from-gnupg-2): Maintainer helper.
+       
+2003-10-01  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Add --no-groups to zero --group list.
+
+       * encode.c (encode_simple): Allow for 32 bytes (256 bits) of
+       symmetrically encrypted session key.  Use --s2k-cipher-algo to
+       choose cipher, rather than the default cipher.
+
+       * parse-packet.c (parse_subkeyenc): Give a warning if an
+       symmetrically encrypted session key is seen without salt.  Show in
+       --list-packets if a symetrically encrypted session key is present.
+
+       * pubkey-enc.c (get_it): Always show cipher-not-in-prefs warning
+       unless --quiet is set.  Use text name of cipher in warning.
+
+2003-09-30  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, g10.c (main), mainproc.c (check_sig_and_print): Add
+       --verify-option show-unusable-uids.
+
+       * gpgv.c (check_trustdb_stale): Stub.
+
+       * trustdb.c (get_validity): Move the up-to-date check to
+       check_trustdb_stale (new), so that it can be called before
+       validity is checked.
+       
+       * keylist.c (list_keyblock_print): Disable the overall key
+       validity display until it can be thought about more.  Use
+       check_trustdb_stale here to avoid putting the check warning in the
+       middle of a listed key.
+
+       * trustdb.c (init_trustdb): Only verify_own_keys() for those trust
+       models that it applies to (i.e. classic and OpenPGP).
+
+2003-09-29  Werner Koch  <wk@gnupg.org>
+
+       * keygen.c (do_add_key_flags, parse_parameter_usage): Add support
+       the proposed AUTH key flag.
+       * getkey.c (fixup_uidnode, merge_selfsigs_main) 
+       (merge_selfsigs_subkey, premerge_public_with_secret): Ditto.
+       * keylist.c (print_capabilities): Ditto.
+
+       * parse-packet.c (parse_key): Allow to parse the divert-to-card
+       S2K mode.
+       * build-packet.c (do_secret_key): Handle divert-to-card S2K
+       * seckey-cert.c (is_secret_key_protected): Ditto.
+       (check_secret_key): Ditto.
+
+       * keygen.c (do_ask_passphrase): Renamed from ask_passphrase.
+       * passphrase.c (ask_passphrase): New.
+
+2003-09-28  Werner Koch  <wk@gnupg.org>
+
+       * g10.c (main): New commands --card-edit, --card-status and
+       --change-pin.  New options --ctapi-driver, --pcsc-driver and
+       --disable-ccid
+       * options.h (DBG_CARD_IO): New.
+       * cardglue.c, cardclue.h: Enhanced.
+       * card-util.c: New. Taken from current the gnupg 1.9 branch.
+       * app-common.h, app-openpgp.c, iso7816.c, iso7816.h, apdu.c
+       * apdu.h, ccid-driver.c, ccid-driver.h: New.  Takem from the current
+       gnupg 1.9 branch withy minor changes to include directives.
+       * Makefile.am: Added these files.
+       
+2003-09-27  Werner Koch  <wk@gnupg.org>
+
+       * sign.c (do_sign) [ENABLE_CARD_SUPPORT]: Divert to card.
+       * cardglue.c, cardglue.h: New.
+       * Makefile.am (gpg_LDADD): Added.
+       (card_support_sources): New.
+       
+2003-09-25  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, g10.c (main), keylist.c (list_keyblock_print): Add
+       "show-unusable-uids" list-option to show revoked and/or expired
+       user IDs.
+
+2003-09-24  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyedit.c (show_key_with_all_names): Show names a little neater
+       by putting the [revoked] or [expired] in the space used for the
+       [validity].  There is also no point in showing "[unknown]
+       [revoked]".
+
+2003-09-23  David Shaw  <dshaw@jabberwocky.com>
+
+       * sign.c (mk_notation_policy_etc): Capitalize "URL".
+
+       * trustdb.c (validate_keys): Give a little more information while
+       rebuilding trustdb.
+
+       * pkclist.c (do_edit_ownertrust): Clarify "don't know".
+
+       * g10.c (main): Default to --no-mangle-dos-filenames.
+
+       * keydb.h, keyring.c (keyring_search), trustdb.c (search_skipfnc):
+       Expand the skipfnc to include a pointer to the user ID that
+       matched.
+
+       * getkey.c (skip_disabled): Rename to skip_unusable, and add
+       checks for expired or revoked user IDs.
+
+2003-09-22  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Deprecate --default-comment in favor of
+       --no-comments.
+
+       * options.h, g10.c (main), armor.c (armor_filter): Allow using
+       --comment multiple times to get multiple Comment: header lines.
+       --no-comments resets list.
+
+2003-09-11  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Trim --help to commonly used options.  Remove -f.
+
+2003-09-08  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (main): Error out if --multifile is used with the commands
+       that don't support it yet (--sign, --clearsign, --detach-sign,
+       --symmetric, and --store).
+
+       * g10.c (main): Add --multifile as an alias to turn --encrypt into
+       --encrypt-files (plus --verify-files, --decrypt-files).
+
+       * encode.c (use_mdc), g10.c (main): Use RFC1991 and RFC2440
+       directly to check for MDC usability.  Do not set the force_mdc or
+       disable_mdc flags since there is no point any longer.
+
+2003-09-04  David Shaw  <dshaw@jabberwocky.com>
+
+       * armor.c (parse_hash_header, armor_filter), g10.c (print_hex,
+       print_mds), pkclist.c (algo_available): Drop TIGER/192 support.
+
+2003-09-03  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyedit.c (show_key_with_all_names): Fix assertion failure when
+       using toggle to see a secret key.  Reported by Maxim Britov.
+
+2003-08-31  David Shaw  <dshaw@jabberwocky.com>
+
+       * g10.c (add_keyserver_url), keyedit.c (keyedit_menu), sign.c
+       (mk_notation_policy_etc): Clarify a few strings.  It's a
+       "preferred keyserver URL".
+
+       * g10.c (main): Use "keyserver-url" instead of
+       "preferred-keyserver" for the sake of short and simple commands.
+
+2003-08-30  David Shaw  <dshaw@jabberwocky.com>
+
+       * main.h, keygen.c (keygen_add_keyserver_url): Signature callback
+       for adding a keyserver URL.
+
+       * keyedit.c (keyedit_menu, menu_set_keyserver_url): New command to
+       set preferred keyserver to specified (or all) user IDs.
+
+       * build-packet.c (build_sig_subpkt): Set preferred keyserver flag
+       while building a preferred keyserver subpacket.
+
+       * keylist.c (show_policy_url, show_keyserver_url): URLs might be
+       UTF8.
+
+       * keyedit.c (menu_addrevoker): Fix leaking a few bytes.
+
+2003-08-29  David Shaw  <dshaw@jabberwocky.com>
+
+       * keyedit.c (show_key_with_all_names): Use list-option
+       show-long-keyid in main --edit-key display.
+
+       * keyedit.c (print_and_check_one_sig): Use list-option
+       show-long-keyid in --edit-key "check" function.
+
+2003-08-28  David Shaw  <dshaw@jabberwocky.com>
+
+       * passphrase.c (agent_send_all_options): Make use of $GPG_TTY.
+
+       * g10.c (main): Disable use-agent if passphrase-fd is given
+       later. Suggested by Kurt Garloff.
+
+       * exec.c, g10.c, gpgv.c, passphrase.c, photoid.c:
+       s/__MINGW32__/_WIN32/ to help building on native Windows
+       compilers.  Requested by Brian Gladman.  From Werner on stable
+       branch.
+
+2003-08-25  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, g10.c (main): Add list-option
+       list-preferred-keyserver.
+
+       * keyedit.c (change_passphrase): When responding 'no' to the blank
+       passphrase question, re-prompt for a new passphrase.  This is bug
+       #202.
+
+       * mainproc.c (check_sig_and_print): Use two different preferred
+       keyserver displays - one if the key is not present (to tell the
+       user where to get the key), the other if it is present (to tell
+       the user where the key can be refreshed).
+
+       * packet.h, parse-packet.c (parse_signature): Set flag if a
+       preferred keyserver is present.
+
+       * keylist.c (list_keyblock_print): Show keyserver url in listings
+       with list-option show-keyserver-url.
+
+2003-08-24  David Shaw  <dshaw@jabberwocky.com>
+
+       * Makefile.am: Use NETLIBS instead of EGDLIBS.
+
+       * mainproc.c (check_sig_and_print): Get the uid validity before
+       printing any sig results to avoid munging the output with trustdb
+       warnings.
+
+       * g10.c (main): Don't include --show-keyring in --help as it is
+       deprecated.
+
+2003-08-21  David Shaw  <dshaw@jabberwocky.com>
+
+       * gpgv.c: Remove extra semicolon (typo).
+
+       * options.skel: Note that keyserver.pgp.com isn't synchronized,
+       and explain the roundrobin a bit better.
+
+       * sig-check.c (check_key_signature2), import.c (import_one,
+       import_revoke_cert, chk_self_sigs, delete_inv_parts,
+       collapse_uids, merge_blocks): Make much quieter during import of
+       slightly munged, but recoverable, keys. Use log_error for
+       unrecoverable import failures.
+
+       * keyring.c (keyring_rebuild_cache): Comment.
+
+       * sign.c (mk_notation_and_policy): Making a v3 signature with
+       notations or policy urls is an error, not an info (i.e. increment
+       the errorcount). Don't print the notation or policy url to stdout
+       since it can be mixed into the output stream when piping and munge
+       the stream.
+
+2003-08-12  David Shaw  <dshaw@jabberwocky.com>
+
+       * packet.h, sig-check.c (signature_check2, do_check,
+       do_check_messages): Provide a signing-key-is-revoked flag.  Change
+       all callers.
+
+       * status.h, status.c (get_status_string): New REVKEYSIG status tag
+       for a good signature from a revoked key.
+
+       * mainproc.c (do_check_sig, check_sig_and_print): Use it here.
+
+       * import.c (import_revoke_cert, merge_blocks, merge_sigs): Compare
+       actual signatures on import rather than using keyid or class
+       matching.  This does not change actual behavior with a key, but
+       does mean that all sigs are imported whether they will be used or
+       not.
+
+       * parse-packet.c (parse_signature): Don't give "signature packet
+       without xxxx" warnings for experimental pk algorithms.  An
+       experimental algorithm may not have a notion of (for example) a
+       keyid (i.e. PGP's x.509 stuff).
+
 2003-08-02  David Shaw  <dshaw@jabberwocky.com>
 
        * options.h, g10.c (main), keylist.c (list_keyblock_print),