(confucius_mktmpdir): Changed to use mkdtmp(3).
[gnupg.git] / scd / ChangeLog
index 6b9654f..f8f8043 100644 (file)
@@ -1,3 +1,620 @@
+2005-04-07  Werner Koch  <wk@g10code.com>
+
+       * app-openpgp.c (do_check_pin): Add hack to allow verification of
+       CHV3.
+       (get_public_key): Don't use gcry functions to create S-expressions.
+       (do_deinit, do_readkey, do_genkey, send_keypair_info): Adjust for
+       above change.
+
+2005-03-29  Moritz Schulte  <moritz@g10code.com>
+
+       * app-openpgp.c (retrieve_fpr_from_card): New function.
+       (retrieve_next_token): New function.
+       (retrieve_key_material): New function.
+       (get_public_key): Implement retrival of key through expernal
+       helper (gpg) in case the openpgp card is not cooperative enough.
+
+2005-03-16  Werner Koch  <wk@g10code.com>
+
+       * ccid-driver.c (parse_ccid_descriptor): Make SCM workaround
+       reader type specific.
+       (scan_or_find_devices): Do not check the interface subclass in the
+       SPR532 kludge, as this depends on the firmware version.
+       (ccid_get_atr): Get the Slot status first.  This solves the
+       problem with readers hanging on recent Linux 2.6.x.
+       (bulk_in): Add argument TIMEOUT and changed all callers to pass an
+       appropriate one.  Change the standard timeout from 10 to 5 seconds.
+       (ccid_slot_status): Add a retry code with an initial short timeout.
+       (do_close_reader): Do an usb_reset before closing the reader.
+
+2005-02-25  Werner Koch  <wk@g10code.com>
+
+       * app-openpgp.c (get_public_key): Make sure not to return negative
+       numbers.
+       (do_sign): Allow passing of indata with algorithm prefix.
+       (do_auth): Allow OPENPGP.3 as an alternative ID.
+
+       * app.c (app_getattr): Return just the S/N but not the timestamp.
+
+2005-02-24  Werner Koch  <wk@g10code.com>
+
+       * app.c (app_getattr): Return APPTYPE or SERIALNO type even if the
+       application does dot support the getattr call.
+
+       * app-openpgp.c (get_one_do): Never try to get a non cacheable
+       object from the cache.
+       (get_one_do): Add new arg to return an error code.  Changed all
+       callers.
+       (do_getattr): Let it return a proper error code.
+
+       * app.c (select_application): Return an error code and the
+       application context in an new arg.
+       * command.c (open_card): Adjusted for that.  Don't use the
+       fallback if no card is present.  Return an error if the card has
+       been removed without a reset.
+       (do_reset, cmd_serialno): Clear that error flag.
+       (TEST_CARD_REMOVAL): New. Use it with all command handlers.
+       (scd_update_reader_status_file): Set the error flag on all changes.
+
+       * scdaemon.c (ticker_thread): Termintate if a shutdown is pending.
+
+       * apdu.c: Added some PCSC error codes.
+       (pcsc_error_to_sw): New.
+       (reset_pcsc_reader, pcsc_get_status, pcsc_send_apdu) 
+       (open_pcsc_reader): Do proper error code mapping.
+
+2005-03-16  Werner Koch  <wk@g10code.com>
+
+       * ccid-driver.c (parse_ccid_descriptor): Make SCM workaround
+       reader type specific.
+       (scan_or_find_devices): Do not check the interface subclass in the
+       SPR532 kludge, as this depends on the firmware version.
+       (ccid_get_atr): Get the Slot status first.  This solves the
+       problem with readers hanging on recent Linux 2.6.x.
+
+2005-02-22  Werner Koch  <wk@g10code.com>
+
+       * app-openpgp.c (app_local_s): New field PK.
+       (do_deinit, do_genkey, app_openpgp_storekey): Clear it.
+       (get_public_key, send_keypair_info): New.
+       (do_learn_status): Send KEYPAIR info
+
+       * app-common.h (app_ctx_t): Add function pointer READKEY.
+       * app.c (app_readkey): New.
+       * command.c (cmd_readkey): Use READKEY function if possible.
+
+2005-01-26  Werner Koch  <wk@g10code.com>
+
+       * ccid-driver.c (parse_ccid_descriptor): Need the CSM workaround
+       also for newer firmware versions.  Need to get a list of fixed
+       firmware versions and use that.
+
+2005-01-25  Werner Koch  <wk@g10code.com>
+
+       * apdu.c (apdu_send_le, apdu_send_direct): Fix some compiler
+       warnings.
+
+       * app-openpgp.c (get_cached_data): New arg GET_IMMEDIATE to bypass
+       the cache.  Changed all callers.
+       (get_one_do): Bypass the cache if the value would have been read
+       directly for v1.1 cards.It makes things a bit slower but obnly for
+       1.0 cards and there are not that many cards out in the wild.  This
+       is required to fix a caching bug when generating new keys; as a
+       side effect of the retrieval of the the C4 DO from the 6E DO the
+       cached fingerprint will get updated to the old value and later
+       when signing the generated key the checking of the fingerprint
+       fails because it won't match the new one.  Thanks to Moritz for
+       analyzing this problem.
+       (verify_chv3): Removed the CHV status reread logic because we
+       won't cache the C4 DO anymore.
+
+2004-12-28  Werner Koch  <wk@g10code.com>
+
+       * ccid-driver.c (find_endpoint): New.
+       (scan_or_find_devices): Add new args to return endpoint info and
+       interface number.
+       (ccid_open_reader, ccid_shutdown_reader): Take care of these new
+       args.
+       (bulk_in, bulk_out): Use the correct endpoints.
+       (ccid_transceive_apdu_level): New.
+       (ccid_transceive): Divert to above.
+       (parse_ccid_descriptor): Allow APDU level exchange mode.
+       (do_close_reader): Pass the interface number to usb_release_interface.
+
+2004-12-21  Werner Koch  <wk@g10code.com>
+
+       * scdaemon.c (main): Use default_homedir().
+
+2004-12-18  Werner Koch  <wk@g10code.com>
+
+       * scdaemon.c (main) [W32]: Remove special Pth initialize..
+
+       * scdaemon.h (map_assuan_err): Define in terms of
+       map_assuan_err_with_source.
+
+2004-12-15  Werner Koch  <wk@g10code.com>
+
+       * scdaemon.c [W32]: Various hacks to make it run under W32.
+
+       * command.c (scd_update_reader_status_file) [W32]: Don't use kill.
+
+       * apdu.c [W32]: Disable use of pcsc_wrapper.
+
+       * Makefile.am (scdaemon_LDADD): Reorder libs.
+       (sc_copykeys_LDADD): Add libassuan because it is needed for W32. 
+
+2004-12-06  Werner Koch  <wk@g10code.com>
+
+       * Makefile.am (pkglib_PROGRAMS): Build only for W32.
+
+2004-10-22  Werner Koch  <wk@g10code.com>
+
+       * app-openpgp.c (verify_chv3): The minium length for CHV3 is
+       8. Changed string to match the other ones.
+
+2004-10-21  Werner Koch  <wk@g10code.com>
+
+       * app-openpgp.c (do_sign): Replace asprintf by direct allocation.
+       This avoids problems with missing vasprintf implementations in
+       gnupg 1.4.
+
+       * app-common.h (app_openpgp_storekey: Add prototype. 
+
+2004-10-20  Werner Koch  <wk@g10code.com>
+
+       * sc-investigate: Removed.
+       * Makefile.am (sc_investigate): Removed.
+       
+       * pcsc-wrapper.c (load_pcsc_driver): Load get_status_change func.
+       (handle_open): Succeed even without a present card.
+       (handle_status, handle_reset): New.
+       
+       * apdu.c (apdu_open_reader): Load pcsc_get_status_change fucntion.
+       (pcsc_get_status): Implemented.
+       (reset_pcsc_reader): Implemented.
+       (open_pcsc_reader): Succeed even with no card inserted.
+       (open_ccid_reader): Set LAST_STATUS.
+
+       * iso7816.c (iso7816_select_application): Always use 0 for P1.
+
+2004-10-18  Werner Koch  <wk@g10code.com>
+
+       * ccid-driver.c (ccid_get_atr): Reset T=1 state info.
+
+2004-10-14  Werner Koch  <wk@g10code.com>
+
+       * app-openpgp.c (parse_login_data): New. 
+       (app_select_openpgp): Call it.
+       (do_setattr): Reparse it after change.
+
+2004-10-06  Werner Koch  <wk@g10code.de>
+
+       * ccid-driver.c (ccid_open_reader): Store the vendor ID.
+       (ccid_transceive_secure): New.
+       (parse_ccid_descriptor): Workaround for an SCM reader problem.
+
+2004-10-04  Werner Koch  <wk@g10code.de>
+
+       * ccid-driver.c (send_escape_cmd): New.
+
+2004-09-30  Werner Koch  <wk@g10code.com>
+
+       * Makefile.am: Adjusted for gettext 0.14.
+
+       * app-openpgp.c (do_sign): Add the error string to the verify
+       failed messages.
+
+2004-09-27  Werner Koch  <wk@g10code.com>
+
+        From gnupg 1.3
+
+       * app-openpgp.c: Made all strings translatable.
+       (verify_chv3) [GNUPG_MAJOR_VERSION]: Make opt.allow_admin
+       available for use in gnupg 2. 
+       (verify_chv3): Reimplemented countdown showing to use only
+       functions from this module.  Flush the CVH status cache on a
+       successful read.
+       (get_one_do): Hack to bypass the cache for cards versions > 1.0.
+       (store_fpr): Store the creation date for card version > 1.0.
+
+       * app-openpgp.c (app_openpgp_storekey): Call flush_cache.
+       (get_cached_data): Move local data initialization to ..
+       (app_select_openpgp): .. here. Read some flags for later use.
+       (do_getattr): New read-only attribute EXTCAP.
+       
+       * apdu.c (open_pcsc_reader): Do not print empty reader string.
+
+       * ccid-driver.c (do_close_reader): Factored some code out from ...
+       (ccid_close_reader): ..here.
+       (ccid_shutdown_reader): New.
+
+       * apdu.c (apdu_shutdown_reader): New.
+       (shutdown_ccid_reader): New.
+
+       * apdu.c (open_ccid_reader): New arg PORTSTR.  Pass it to
+       ccid_open_reader.
+       (apdu_open_reader): Pass portstr to open_ccid_reader.
+       (apdu_open_reader): No fallback if a full CCID reader id has been
+       given.
+
+       * ccid-driver.c (ccid_get_reader_list): New.
+       (ccid_open_reader): Changed API to take a string for the reader.
+       Removed al the cruft for the libusb development vesion which seems
+       not to be maintained anymore and there are no packages anyway.
+       The stable library works just fine.
+       (struct ccid_reader_id_s): Deleted and replaced everywhere by a
+       simple string.
+       (usb_get_string_simple): Removed.
+       (bulk_in): Do valgrind hack here and not just everywhere.
+
+       * ccid-driver.c (read_device_info): Removed.
+       (make_reader_id, scan_or_find_devices): New.
+       (ccid_open_reader): Simplified by make use of the new functions.
+       (ccid_set_debug_level): New.  Changed the macros to make use of
+       it.  It has turned out that it is often useful to enable debugging
+       at runtime so I added this option.
+
+        From gnupg 1.3 - David Shaw  <dshaw@jabberwocky.com>
+
+       * app-openpgp.c (verify_chv3): Show a countdown of how many wrong
+       admin PINs can be entered before the card is locked.
+
+       * app-openpgp.c (get_cached_data): Avoid mallocing zero since it
+       breaks us when using --enable-m-guard.
+
+       * ccid-driver.c (usb_get_string_simple): Replacement function to
+       work with older libusb.
+
+       * ccid-driver.c (read_device_info): Fix segfault when usb device
+       is not accessible.
+       (ccid_open_reader): Allow working with an even older version of
+       libusb (usb_busses global instead of usb_get_busses()).
+
+2004-09-11  Werner Koch  <wk@g10code.com>
+
+       * app-openpgp.c (app_select_openpgp): Its app_munge_serialno and
+       not app_number_serialno.
+
+2004-08-20  Werner Koch  <wk@g10code.de>
+
+       * app.c (select_application): Fixed serial number extraction and
+       added the BMI card workaround.
+       (app_munge_serialno): New.
+       * app-openpgp.c (app_select_openpgp): Try munging serialno.
+
+2004-08-05  Werner Koch  <wk@g10code.de>
+
+       * scdaemon.c (main): New option --disable-application.
+       * app.c (is_app_allowed): New.
+       (select_application): Use it to check for disabled applications.
+
+       * ccid-driver.h (CCID_DRIVER_ERR_ABORTED): New.
+       * ccid-driver.c (ccid_open_reader): Support the stable 0.1 version
+       of libusb.
+       (ccid_get_atr): Handle short messages.
+
+       * apdu.c (my_rapdu_get_status): Implemented.
+
+2004-07-27  Moritz Schulte  <moritz@g10code.com>
+
+       * apdu.c: Include <signal.h>.
+
+       * Makefile.am: Use @DL_LIBS@ instead of -ldl.
+
+2004-07-22  Werner Koch  <wk@g10code.de>
+
+       * Makefile.am: Make OpenSC lib link after libgcrypt. Do not link
+       to pth.
+       * apdu.c: Don't use Pth if we use OpenSC.
+       * sc-investigate.c, scdaemon.c: Disable use of pth if OpenSC is used. 
+
+       * scdaemon.c (main): Bumbed thread stack size up to 512k.
+
+2004-07-16  Werner Koch  <wk@gnupg.org>
+
+       * apdu.c (reader_table_s):  Add function pointers for the backends.
+       (apdu_close_reader, apdu_get_status, apdu_activate) 
+       (send_apdu): Make use of them.
+       (new_reader_slot): Intialize them to NULL.
+       (dump_ccid_reader_status, ct_dump_reader_status): New.
+       (dump_pcsc_reader_status): New.
+       (open_ct_reader, open_pcsc_reader, open_ccid_reader) 
+       (open_osc_reader, open_rapdu_reader): Intialize function pointers.
+       (ct_activate_card, ct_send_apdu, pcsc_send_apdu, osc_send_apdu) 
+       (error_string): Removed.  Replaced by apdu_strerror.
+       (get_ccid_error_string): Removed.
+       (ct_activate_card): Remove the unused loop.
+       (reset_ct_reader): Implemented.
+       (ct_send_apdu): Activate the card if not yet done.
+       (pcsc_send_apdu): Ditto.
+
+2004-07-15  Werner Koch  <wk@gnupg.org>
+
+       * ccid-driver.h: Add error codes.
+       * ccid-driver.c: Implement more or less proper error codes all
+       over the place.
+
+       * apdu.c (apdu_send_direct): New.
+       (get_ccid_error_string): Add some error code mappings.
+       (send_apdu): Pass error codes along for drivers already supporting
+       them.
+       (host_sw_string): New.
+       (get_ccid_error_string): Use above.
+       (send_apdu_ccid): Reset the reader if it has not yet been done.
+       (open_ccid_reader): Don't care if the ATR can't be read.
+       (apdu_activate_card): New.
+       (apdu_strerror): New.
+       (dump_reader_status): Only enable it with opt.VERBOSE.
+       * iso7816.c (map_sw): Add mappings for the new error codes.
+
+2004-07-02  Werner Koch  <wk@gnupg.org>
+
+       * apdu.c (open_ct_reader, open_pcsc_reader, open_ccid_reader)
+       (reset_ccid_reader, open_osc_reader): Call dump_reader_status only
+       in verbose mode.
+
+2004-07-01  Werner Koch  <wk@gnupg.org>
+
+       * sc-investigate.c: Initialize Pth which is now required.
+       (interactive_shell): New command "readpk".
+
+       * app-openpgp.c (do_getattr): Fix for sending CA-FPR.
+
+2004-06-30  Werner Koch  <wk@gnupg.org>
+
+       * app-openpgp.c (app_openpgp_readkey): Fixed check for valid
+       exponent.
+
+2004-06-18  Werner Koch  <wk@g10code.com>
+
+       * sc-investigate.c (my_read_line): Renamed from read_line.
+
+2004-06-16  Werner Koch  <wk@gnupg.org>
+
+       * apdu.c (osc_get_status): Fixed type in function name. Noted by
+       Axel Thimm.  Yes, I didn't tested it with OpenSC :-(.
+
+2004-04-28  Werner Koch  <wk@gnupg.org>
+
+       * app-openpgp.c (do_setattr): Sync FORCE_CHV1.
+
+2004-04-27  Werner Koch  <wk@gnupg.org>
+
+       * app-common.h: Do not include ksba.h for gnupg 1.
+
+2004-04-26  Werner Koch  <wk@gnupg.org>
+
+       * app-common.h: New members FNC.DEINIT and APP_LOCAL.
+       * app.c (release_application): Call new deconstructor.
+       * app-openpgp.c (do_deinit): New.
+       (get_cached_data, flush_cache_item, flush_cache_after_error)
+       (flush_cache): New.
+       (get_one_do): Replaced arg SLOT by APP.  Make used of cached data.
+       (verify_chv2, verify_chv3): Flush some cache item after error.
+       (do_change_pin): Ditto.
+       (do_sign): Ditto.
+       (do_setattr): Flush cache item.
+       (do_genkey): Flush the entire cache.
+       (compare_fingerprint): Use cached data.
+
+       * scdaemon.c (main): Do the last change the usual way. This is so
+       that we can easily test for versioned config files above.
+
+2004-04-26  Marcus Brinkmann  <marcus@g10code.de>
+
+       * scdaemon.c (main): For now, always print default filename for
+       --gpgconf-list, and never /dev/null.
+
+2004-04-21  Werner Koch  <wk@gnupg.org>
+
+       * command.c (scd_update_reader_status_file): Send a signal back to
+       the client.
+       (option_handler): Parse the new event-signal option.
+
+       * scdaemon.c (handle_signal): Do not use SIGUSR{1,2} anymore for
+       changing the verbosity.
+
+2004-04-20  Werner Koch  <wk@gnupg.org>
+
+       * command.c (scd_update_reader_status_file): Write status files.
+
+       * app-help.c (app_help_read_length_of_cert): Fixed calculation of
+       R_CERTOFF.
+
+       * pcsc-wrapper.c: New.
+       * Makefile.am (pkglib_PROGRAMS): Install it here.
+       * apdu.c (writen, readn): New.
+       (open_pcsc_reader, pcsc_send_apdu, close_pcsc_reader): Use the
+       pcsc-wrapper if we are using Pth.
+       (apdu_send_le): Reinitialize RESULTLEN.  Handle SW_EOF_REACHED
+       like SW_SUCCESS.
+
+2004-04-19  Werner Koch  <wk@gnupg.org>
+
+       * ccid-driver.c (parse_ccid_descriptor): Store some of the reader
+       features away.  New arg HANDLE
+       (read_device_info): New arg HANDLE. Changed caller.
+       (bulk_in): Handle time extension requests.
+       (ccid_get_atr): Setup parameters and the IFSD.
+       (compute_edc): New. Factored out code.
+       (ccid_transceive): Use default NADs when required.
+
+2004-04-14  Werner Koch  <wk@gnupg.org>
+
+       * scdaemon.h (server_control_s): Add member READER_SLOT.
+       * scdaemon.c (scd_init_default_ctrl): Initialize READER_SLOT to -1.
+       * command.c (open_card): Reuse an open slot.
+       (reset_notify): Just reset the slot if supported by the reader.
+       (do_reset): Factored code from above out.
+       (scd_command_handler): Use it for cleanup.
+
+       * apdu.h: New pseudo stati SW_HOST_NOT_SUPPORTED,
+       SW_HOST_LOCKING_FAILED and SW_HOST_BUSY.
+       * iso7816.c (map_sw): Map it.
+       
+       * ccid-driver.c (ccid_slot_status): Add arg STATUSBITS.
+       * apdu.c (apdu_get_status): New.
+       (ct_get_status, pcsc_get_status, ocsc_get_status): New stubs.
+       (get_status_ccid): New.
+       (apdu_reset): New.
+       (reset_ct_reader, reset_pcsc_reader, reset_osc_reader): New stubs.
+       (reset_ccid_reader): New.
+       (apdu_enum_reader): New.
+       
+       * apdu.c (lock_slot, trylock_slot, unlock_slot): New helpers.
+       (new_reader_slot) [USE_GNU_PTH]: Init mutex.
+       (apdu_reset, apdu_get_status, apdu_send_le): Run functions
+       in locked mode.
+
+       * command.c (scd_update_reader_status_file): New.
+       * scdaemon.c (handle_tick): Call it.
+
+2004-04-13  Werner Koch  <wk@gnupg.org>
+
+       * scdaemon.c: Convert to a Pth application.
+       (handle_signal, ticker_thread, handle_tick): New.
+       (main): Fire up the ticker thread in server mode.
+
+2004-03-23  Werner Koch  <wk@gnupg.org>
+
+       * scdaemon.c (main) <gpgconf_list>: Fixed output for pcsc_driver.
+
+2004-03-17  Werner Koch  <wk@gnupg.org>
+
+       * tlv.c (parse_ber_header): Do not check for tag overflow - it
+       does not make sense.  Simplified the check for length overflow.
+
+       * scdaemon.c (main) <gpgconf>: Fixed default value quoting.
+
+2004-03-16  Werner Koch  <wk@gnupg.org>
+
+       * app-dinsig.c: Implemented. Based on app-nks.c and card-dinsig.c
+       * app-nks.c (get_length_of_cert): Removed.
+       * app-help.c: New.
+       (app_help_read_length_of_cert): New.  Code taken from above.  New
+       optional arg R_CERTOFF.
+
+       * card-dinsig.c: Removed.
+       * card.c (card_get_serial_and_stamp): Do not bind to the old and
+       never finsiged card-dinsig.c.
+
+       * iso7816.c (iso7816_read_binary): Allow for an NMAX > 254.
+
+2004-03-11  Werner Koch  <wk@gnupg.org>
+
+       * scdaemon.h (out_of_core): Removed.  Replaced callers by standard
+       gpg_error function.
+
+       * apdu.c, iso7816.c, ccid-driver.c [GNUPG_SCD_MAIN_HEADER]: Allow
+       to include a header defined by the compiler.  This helps us to
+       reuse the source in other software.
+
+2004-03-10  Werner Koch  <wk@gnupg.org>
+
+       * iso7816.c (iso7816_read_record): New arg SHORT_EF.  Changed all
+       callers.
+
+2004-02-18  Werner Koch  <wk@gnupg.org>
+
+       * sc-investigate.c (main): Setup the used character set.
+       * scdaemon.c (main): Ditto.
+
+       * scdaemon.c (set_debug): New.  Add option --debug-level.
+       (main): Add option --gpgconf-list.
+
+2004-02-12  Werner Koch  <wk@gnupg.org>
+
+       * Makefile.am: Include cmacros.am for common flags.
+
+2004-01-29  Werner Koch  <wk@gnupg.org>
+
+       * command.c (reset_notify): Release the application context and
+       close the reader.
+
+2004-01-28  Werner Koch  <wk@gnupg.org>
+
+       * iso7816.c (iso7816_manage_security_env): New.
+       (iso7816_decipher): Add PADIND argument.
+
+2004-01-27  Werner Koch  <wk@gnupg.org>
+
+       * command.c (cmd_readcert, cmd_readkey): Work on a copy of LINE.
+
+       * app-common.h (app_ctx_s): Added readcert field.
+       * app.c (app_readcert): New.
+       * tlv.c (parse_ber_header): Added; taken from libksba.
+
+2004-01-26  Werner Koch  <wk@gnupg.org>
+
+       * card.c (map_sc_err): Use SCD as the error source.
+
+       * command.c (open_card): ADD arg NAME to allow requesting a
+       specific application.  Changed all callers.
+       (cmd_serialno): Allow optional argument to select the desired
+       application.
+
+       * app-nks.c: New. 
+
+       * scdaemon.h (opt): Add READER_PORT.
+       * scdaemon.c (main): Set it here.
+       * app.c (app_set_default_reader_port): Removed.
+       (select_application): Add NAME arg and figure out a
+       default serial number from the GDO. Add SLOT arg and remove all
+       reader management.
+       (release_application): New.
+       (app_write_learn_status): Output an APPTYPE status line.
+       * command.c (open_card): Adapt for select_application change.
+       * app-openpgp.c (app_select_openpgp): Removed SN and SNLEN args
+       and set it directly.  Changed all callers.
+
+2004-01-25  Werner Koch  <wk@gnupg.org>
+
+       * iso7816.c (iso7816_select_application): P1 kludge for OpenPGP
+       card.
+       * app-openpgp.c (find_tlv): Factor out this function to ..
+       * tlv.c, tlv.h: .. new.
+
+       * scdaemon.h: Introduced app_t and ctrl_t as the new types for APP
+       and CTRL.
+
+2004-01-21  Werner Koch  <wk@gnupg.org>
+
+       * apdu.c (apdu_send_le): Treat SW_EOF_REACHED as a warning.
+
+2004-01-20  Werner Koch  <wk@gnupg.org>
+
+       * iso7816.c (iso7816_read_binary): New.
+       (iso7816_select_file): New.
+       (iso7816_list_directory): New.
+
+       * sc-investigate.c: Add option -i.
+       (select_app, read_line, interactive_shell): New.
+
+2004-01-16  Werner Koch  <wk@gnupg.org>
+
+       * apdu.h: Add SW_FILE_NOT_FOUND.
+       * iso7816.c (map_sw): Map it to GPG_ERR_ENOENT.
+       * iso7816.c (iso7816_select_file): New.
+
+       * app-dinsig.c: New file w/o any real code yet.
+       * Makefile.am (scdaemon_SOURCES,sc_investigate_SOURCES): Add file.
+
+       * sc-investigate.c: Add option --disable-ccid.
+
+2003-12-19  Werner Koch  <wk@gnupg.org>
+
+       * apdu.c (apdu_send_le): Send a get_response with the indicated
+       length and not the 64 bytes we used for testing.
+
+       * app-openpgp.c (verify_chv2, verify_chv3, do_sign): Check the
+       minimum length of the passphrase, so that we don't need to
+       decrement the retry counter.
+
+2003-12-17  Werner Koch  <wk@gnupg.org>
+
+       * card-p15.c (p15_enum_keypairs): Replaced KRC by RC.
+       * card-dinsig.c (dinsig_enum_keypairs): Ditto.
+
 2003-12-16  Werner Koch  <wk@gnupg.org>
 
        * scdaemon.c (main): Set the prefixes for assuan logging.
        * scdaemon.c scdaemon.h, command.c: New. Based on the code from
        the gpg-agent.
 
- Copyright 2002 Free Software Foundation, Inc.
+       
+ Copyright 2002, 2003, 2004, 2005 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