From 2336b09779d313c1594acf6df3bd8a8486e90458 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 1 Dec 2011 10:51:36 +0100 Subject: Generate the ChangeLog from commit logs. * scripts/gitlog-to-changelog: New script. Taken from gnulib. * scripts/git-log-fix: New file. * scripts/git-log-footer: New file. * doc/HACKING: Describe the ChangeLog policy * ChangeLog: New file. * Makefile.am (EXTRA_DIST): Add new files. (gen-ChangeLog): New. (dist-hook): Run gen-ChangeLog. Rename all ChangeLog files to ChangeLog-2011. --- scd/ChangeLog | 2581 --------------------------------------------------- scd/ChangeLog-2011 | 2592 ++++++++++++++++++++++++++++++++++++++++++++++++++++ scd/Makefile.am | 2 + 3 files changed, 2594 insertions(+), 2581 deletions(-) delete mode 100644 scd/ChangeLog create mode 100644 scd/ChangeLog-2011 (limited to 'scd') diff --git a/scd/ChangeLog b/scd/ChangeLog deleted file mode 100644 index 80cddec49..000000000 --- a/scd/ChangeLog +++ /dev/null @@ -1,2581 +0,0 @@ -2011-12-01 Niibe Yutaka - - * app-openpgp.c (do_change_pin): Fix pincb messages when - use_keypad == 1. - -2011-11-29 Niibe Yutaka - - PC/SC pininput support for passphrase modification (2/2) - * apdu.h (apdu_send_simple_kp): Remove. - - * apdu.c (pcsc_keypad_modify): Add bConfirmPIN handling. - (apdu_send_simple_kp): Remove. - - * iso7816.h (iso7816_reset_retry_counter_kp): Remove arguments - of NEWCHV, and NEWCHVLEN. - (iso7816_reset_retry_counter_with_rc_kp, iso7816_put_data_kp): New. - - * iso7816.c (iso7816_reset_retry_counter_with_rc_kp): New. - (iso7816_reset_retry_counter_kp): Call apdu_keypad_modify. Only - handle the case with PININFO. - (iso7816_reset_retry_counter): Don't call - iso7816_reset_retry_counter_kp. - (iso7816_put_data_kp): New. - - * app-openpgp.c (do_change_pin): Add with_resetcode. - Handle keypad for unblocking pass phrase with resetcode, - setting up of resetcode, and unblocking by admin. - - PC/SC pininput support for passphrase modification (1/2) - * iso7816.h (iso7816_change_reference_data_kp): Remove arguments - of OLDCHV, OLDCHVLEN, NEWCHV, and NEWCHVLEN. - - * iso7816.c (iso7816_change_reference_data_kp): Call - apdu_keypad_modify. - (iso7816_change_reference_data): Don't call - iso7816_change_reference_data_kp. - - * apdu.h (apdu_keypad_modify): New. - - * apdu.c (pcsc_keypad_modify, apdu_keypad_modify): New. - (struct reader_table_s): New memeber function keypad_modify. - (new_reader_slot, open_ct_reader, open_ccid_reader) - (open_rapdu_reader): Initialize keypad_modify. - - * app-openpgp.c (do_change_pin): Handle keypad and call - iso7816_change_reference_data_kp if it is the case. - -2011-11-28 Niibe Yutaka - - * iso7816.h (iso7816_verify_kp): Remove arguments of CHV and CHVLEN. - - * iso7816.c (iso7816_verify_kp): Call apdu_keypad_verify. Only - handle the case with PININFO. - (iso7816_verify): Call apdu_send_simple. - - * app-openpgp.c (verify_a_chv, verify_chv3): Follow the change of - iso7816_verify_kp. - - * app-nks.c (verify_pin): Likewise. - - * app-dinsig.c (verify_pin): Likewise. - - * apdu.c: Include "iso7816.h". - (struct reader_table_s): New memeber function keypad_verify. - Add fields verify_ioctl and modify_ioctl in pcsc. - (CM_IOCTL_GET_FEATURE_REQUEST, FEATURE_VERIFY_PIN_DIRECT) - (FEATURE_MODIFY_PIN_DIRECT): New. - (pcsc_control): New. - (control_pcsc_direct, control_pcsc_wrapped, control_pcsc) - (check_pcsc_keypad, pcsc_keypad_verify): New. - (ccid_keypad_verify, apdu_keypad_verify): New. - (new_reader_slot): Initialize with check_pcsc_keypad, - pcsc_keypad_verify, verify_ioctl and modify_ioctl. - (open_ct_reader): Initialize keypad_verify with NULL. - (open_ccid_reader): Initialize keypad_verify. - (open_rapdu_reader): Initialize keypad_verify with NULL. - (apdu_open_reader): Initialize pcsc_control. - - * pcsc-wrapper.c (load_pcsc_driver): Initialize pcsc_control. - (handle_control): New. - (main): Handle the case 6 of handle_control. - -2011-08-10 Werner Koch - - * command.c (cmd_killscd): Use the new assuan force close flag - if available. - -2011-08-08 Werner Koch - - * app-openpgp.c (do_decipher): Take care of accidentally passed - signed integer data with a leading 0. - -2011-06-16 Werner Koch - - * app-openpgp.c (send_key_data): Implemented chunked mode. - (change_keyattr): Increase limit to 4096. - (do_decipher): Adjust padding for 4096 bit keys. - -2011-02-23 Werner Koch - - * apdu.c (apdu_open_reader): Lock in to CCID if used once. - -2011-01-25 NIIBE Yutaka , - Grant Olson (wk) - - * command.c (do_reset, get_reader_slot) - (update_reader_status_file): Fix handling of the VALID flag for - unplugged readers. - -2011-01-25 Werner Koch - - From 2.0 branch, 2010-03-17: - - * command.c (open_card): Return GPG_ERR_NOT_OPERATIONAL if no - card services are available. - (get_reader_slot): Detect no services status. - (cmd_serialno): No reset if there are no services. - (scd_command_handler): Stop scdaemon in that case. - * apdu.c (pcsc_no_service): New. - (open_pcsc_reader_direct): Set it. - (apdu_open_reader): Add arg R_NO_SERVICE. - -2011-01-05 Werner Koch - - * ccid-driver.c (ccid_transceive_secure): Support the gnuk token. - -2010-11-16 Werner Koch - - * apdu.c (PCSC_UNKNOWN) [W32]: Fix all these values which don't - match those of libpcsc. Reported by Michael Petig. - -2010-10-27 Werner Koch - - * scdaemon.c (create_socket_name): Use TMPDIR. Change callers. - -2010-10-18 Werner Koch - - * app-openpgp.c (parse_algorithm_attribute): Remove extra const in - definition of DESC. - -2010-08-16 Werner Koch - - * scdaemon.c: Replace remaining printf by es_printf. - -2010-06-09 Werner Koch - - * scdaemon.c (main): s/log_set_get_tid_callback/log_set_pid_suffix_cb/. - (tid_log_callback): Adjust for this change. - -2010-03-11 Werner Koch - - * scdaemon.c: Include "asshelp.h". - (main): Remove assuan_set_assuan_log_prefix. Add - assuan_set_log_cb. - (handle_signal): Disable pth ctrl dumping. - * command.c (scd_command_handler): Remove assuan_set_log_stream. - -2010-03-10 Werner Koch - - * Makefile.am (scdaemon_LDADD): Remove libjnlib.a. - -2009-12-15 Werner Koch - - * iso7816.c (do_generate_keypair): s/readonly/read_only/ because - the first is a keyword in VMS C. - -2009-12-03 Werner Koch - - * scdaemon.c (set_debug): Allow for numerical debug leveles. Print - active debug flags. - -2009-11-25 Marcus Brinkmann - - * command.c (scd_command_handler): Use assuan_fd_t and - assuan_fdopen on fds. - -2009-11-05 Marcus Brinkmann - - * command.c (scd_command_handler): Call assuan_init_socket_server, - not assuan_init_socket_server_ext. - -2009-11-04 Werner Koch - - * command.c (register_commands): Add help arg to - assuan_register_command. Add help strings to all commands. - -2009-11-02 Marcus Brinkmann - - * command.c (reset_notify): Take LINE arg and return error. - (register_commands): Use assuan_handler_t type. - -2009-10-25 Werner Koch - - * scdaemon.c (scd_deinit_default_ctrl): Release IN_DATA. - * command.c (cmd_setdata): Release IN_DATA. Reported by Klaus - Flittner. - -2009-10-16 Marcus Brinkmann - - * AM_CFLAGS, scdaemon_LDADD: Use libassuan instead of libassuan-pth. - * scdaemon.c: Invoke ASSUAN_SYSTEM_PTH_IMPL. - (main): Call assuan_set_system_hooks and assuan_sock_init. - -2009-09-23 Marcus Brinkmann - - * command.c: Include "scdaemon.h" before because of - GPG_ERR_SOURCE_DEFAULT check. - (option_handler, open_card, cmd_serialno, cmd_lean, cmd_readcert) - (cmd_readkey, cmd_setdata, cmd_pksign, cmd_pkauth, cmd_pkdecrypt) - (cmd_getattr, cmd_setattr, cmd_writecert, cmd_writekey) - (cmd_genkey, cmd_random, cmd_passwd, cmd_checkpin, cmd_lock) - (cmd_unlock, cmd_getinfo, cmd_restart, cmd_disconnect, cmd_apdu) - (cmd_killscd): Return gpg_error_t instead of int. - (scd_command_handler): Allocate assuan context before starting server. - * scdaemon.c (main): Update to new Assuan API. - -2009-09-03 Werner Koch - - * app-openpgp.c (do_decipher): Compute required Le. - * iso7816.c (iso7816_decipher): Add new arg LE. - * app-nks.c (do_decipher): Adjust for change. - - * iso7816.c (iso7816_put_data, iso7816_put_data_odd): Turn DATA - into a void ptr. - -2009-08-05 Werner Koch - - * app-openpgp.c (change_keyattr_from_string): New. - (do_setattr): Support KEY-ATTR. - -2009-07-29 Marcus Brinkmann - - * ccid-driver.c (print_pr_data): Fix 64 bit compat problem. - -2009-07-24 Werner Koch - - * ccid-driver.c (parse_ccid_descriptor): Enable hack for SCR 3320. - -2009-07-21 Werner Koch - - * ccid-driver.c [HAVE_PTH]: Include pth.h. - (my_sleep): New. - (bulk_in): s/gnupg_sleep/my_sleep/. - -2009-07-20 Werner Koch - - * apdu.c [GNUPG_MAJOR_VERSION==1]: Include dynload.h. - -2009-07-16 Werner Koch - - * command.c (update_reader_status_file): Test for unplugged reader. - (TEST_CARD_REMOVAL): Ditto. - * app.c (select_application): Ditto. - * ccid-driver.c (bulk_out): Return CCID_DRIVER_ERR_NO_READER if a - reader was unplugged. - (struct ccid_driver_s): Turn nonnull_nad into an unsigned char. - Turn apdu_level, auto_ifsd, powered_off, has_pinpad into - bitfields. Add enodev_seen. - * apdu.c (apdu_prepare_exit): New. - (get_status_ccid): Return the status word and nut just -1. - * scdaemon.c (scd_exit): Call it. - -2009-07-13 Werner Koch - - * ccid-driver.c (struct ccid_driver_s): Add fields last_progress, - progress_cb and progress_cb_arg. - (ccid_set_progress_cb): New. - (print_progress): New. - (ccid_transceive): Call print_progress for wait time extensions. - * apdu.c (struct reader_table_s): Add field set_progress_cb. - (new_reader_slot): Clear that field. - (open_ccid_reader): Set it to .. - (set_progress_cb_ccid_reader): ... new fucntion. - * app.c (print_progress_line): New. - (lock_reader): Add arg CTRL to set a progress callback and - change all callers to provide it. - (unlock_reader): Remove the progress callback. - -2009-07-10 Werner Koch - - * iso7816.c (iso7816_compute_ds): Add args EXTENDED_MODE and LE. - Change all callers to use 0. - (iso7816_internal_authenticate): Add args EXTENDED_MODE and LE. - * app-openpgp.c (do_sign): Take exmode and Le from card - capabilities and pass them to iso7816_compute_ds. - (do_auth): Ditto for iso7816_internal_authenticate. - (change_keyattr): Reset CHV verification status. - -2009-07-09 Werner Koch - - * app-openpgp.c (change_keyattr): New. - (do_writekey): Call it. - - * app-openpgp.c (does_key_exist): Add arg GENERATING. Change - callers. - -2009-06-30 Werner Koch - - * ccid-driver.c (ccid_transceive): Set RESYNCING flag. - -2009-06-29 Werner Koch - - * ccid-driver.c (ccid_transceive): Add a hack to support extended - length for Omnikey readers. - (is_exlen_apdu): New. - (parse_ccid_descriptor): Track short+extended apdu exchange level. - -2009-06-18 Werner Koch - - * app-openpgp.c (verify_chv2): Remove special case for v2 cards. - (get_public_key): Use extended mode. - -2009-06-17 Werner Koch - - * iso7816.c (iso7816_get_data): Add arg EXTENDED_MODE. Change all - callers. - * app-openpgp.c (data_objects): Use bit flags. Add flag - TRY_EXTLENGTH. - (get_cached_data): Add arg TRY_EXTLEN and use it for iso7816_get_data. - (get_one_do): Use extended length APDU if necessary. - -2009-06-10 Werner Koch - - * app-openpgp.c (store_fpr): Change first arg to app_t; adjust - callers. Flush the cache. - -2009-06-09 Werner Koch - - * app-openpgp.c (do_readcert): Return NOT_FOUND if the retrieved - data has a length of zero. - (do_getattr): Add EXTCAP subkey "sm". - -2009-05-20 Werner Koch - - * app-openpgp.c (verify_chv2): Add case for v2 cards. - (verify_chv3): Factor some code out to .. - (build_enter_admin_pin_prompt): .. new. - (do_change_pin): Properly handle v2 cards. - -2009-05-19 Werner Koch - - * scdaemon.c (create_server_socket): Use SUN_LEN. - (JNLIB_NEED_AFLOCAL): Define. - -2009-05-13 Werner Koch - - * ccid-driver.c (abort_cmd): Add arg SEQNO and change callers. - (bulk_in): Retry on seqno mismatch. - - * apdu.c (send_le): Release result_buffer. - (apdu_send_direct): Implemend extended length. - * command.c (cmd_apdu): Add option "--exlen". - -2009-05-11 Werner Koch - - * apdu.c (send_le): Replace log_error by log_info. - -2009-05-08 Werner Koch - - * app-openpgp.c (do_genkey): Allow larger key sizes. - (do_decipher): Ditto. - * iso7816.c (do_generate_keypair): Add arg EXTENDED_MODE an LE. - (iso7816_generate_keypair, iso7816_read_public_key): Ditto. - Changed all callers. - * apdu.c (send_le): Implement extended length return values. - - * ccid-driver.c (bulk_in): Retry on EAGAIN. - (abort_cmd): Change seqno handling. - -2009-04-28 Werner Koch - - * app-help.c (app_help_count_bits): New. - - * app-nks.c (switch_application): Detect mass signature cards. - Take care of new NEED_APP_SELECT flag. - (do_sign): Don't allow mass signature cards. - (all_zero_p): New. - (do_readkey): New. - (app_select_nks): Register do_readkey. - -2009-04-01 Werner Koch - - * app-openpgp.c (do_setattr, do_writekey): Prepare for extended - length cards. - -2009-03-31 Werner Koch - - * command.c (percent_plus_unescape): Remove. - (cmd_setattr): Use percent_plus_unescape_inplace. - -2009-03-30 Werner Koch - - * app-nks.c (do_decipher): Make it work for TCOS 3. - * iso7816.c (iso7816_decipher): Add arg EXTENDED_MODE. - * apdu.c (apdu_send): Add arg EXTENDED_MODE and change all callers. - (apdu_send_le): Ditto. - (apdu_send_direct): Ditto, but not yet functional. - (send_le): Fix command chaining. Implement extended length option. - * ccid-driver.c (ccid_transceive): Remove restriction on apdu length. - (struct ccid_driver_s): Add field IFSC. - (ccid_get_atr): Set IFSC. - (ccid_transceive): Use negotiated IFSC and support S(IFS) command. - -2009-03-26 Werner Koch - - * command.c (cmd_pksign): Allow more hash algorithms. - - * scdaemon.h (MAX_DIGEST_LEN): Change to 64. - - * apdu.c (open_ccid_reader): Clear the is_to flag. - - * app-nks.c (filelist): Add field KID. - (do_getattr): Change standard authentication key. - (do_sign): Setup a security environment for TCOS 3 cards and support - all SHA-2 algorithms. - -2009-03-24 Werner Koch - - * command.c (struct server_local_s): Add flag - APP_CTX_MARKED_FOR_RELEASE. - (do_reset): Set the flag. - (open_card): Act on this flag. - * app-common.h (struct app_ctx_s): Add flag NO_REUSE. - (application_notify_card_reset): Set the flag. - * app.c (select_application, release_application): Take care of - that flag. - -2009-03-20 Werner Koch - - * app-nks.c (keygripstr_from_pk_file): Fix for TCOS 3 cards. - -2009-03-18 Werner Koch - - * apdu.c (open_pcsc_reader_wrapped): Use close_all_fds. - - * command.c (cmd_learn): Add option --keypairinfo. - * app.c (app_write_learn_status): Add arg FLAGS. - * app-common.h (struct app_ctx_s): Add arg FLAGS to LEARN_STATUS. - Change all implementors. - * app-p15.c (do_learn_status): Take care of flag bit 0. - * app-nks.c (do_learn_status, do_learn_status_core): Ditto. - -2009-03-10 Werner Koch - - * app-openpgp.c (send_key_attr): New. - (do_getattr): New attribute KEY_ATTR. - * command.c (send_status_direct): New. - -2009-03-06 Werner Koch - - * app-nks.c (do_learn_status): Factor code out to.. - (do_learn_status_core): .. new. - (do_readcert, do_sign, do_decipher): Switch to SigG if needed. - (verify_pin): Use DESC also for keypad based verify. - -2009-03-05 Werner Koch - - * app-openpgp.c (verify_a_chv): Remove special case for keypads. - (verify_chv3): Ditto. - - * app-nks.c (get_chv_status): New. - (parse_pwidstr): New. - (verify_pin): Add args PWID and DESC and use them. Remove the - CHV1 caching. - (do_change_pin): Allow PIN selection and add reset mode. - (do_learn_status): Use NKS-NKS3 tag for TCOS 3 cards. - (do_readcert, do_sign): Allow NKS-NKS3 tag. - -2009-03-04 Werner Koch - - * app-nks.c (do_getattr): New. - (app_select_nks): Register it. - (verify_pin): Factor some code out to... - (basic_pin_checks): New. - (do_change_pin): Call the basic check. - (app_select_nks): Move AID to .. - (aid_nks): .. new. - (aid_sigg): New. - (switch_application): New. - (do_getattr, do_learn_status, do_readcert, do_sign, do_decipher) - (do_change_pin, do_check_pin): Make sure we are in NKS mode. - -2009-03-03 Werner Koch - - * command.c (scd_command_handler): Remove dereference of STOPME - after free. - -2009-02-27 Werner Koch - - * app.c (get_supported_applications): New. - * command.c (cmd_getinfo): New subcommand "app_list" - (cmd_killscd): New. - (register_commands): Register command KILLSCD. - (struct server_local_s): Add field STOPME. - (scd_command_handler): Act upon this. - -2009-02-25 Werner Koch - - * apdu.c (apdu_get_status): Factor all code out to ... - (apdu_private_get_status): .. new. Add arg NO_ATR_RESET. - (apdu_connect): Call new function. - - * scdaemon.c: New option --debug-log-tid. - (tid_log_callback): New. - (main): Move debug-wait code after debug stream init. - -2009-02-24 Werner Koch - - * ccid-driver.c (ccid_get_atr): Move debug output to .. - (print_r2p_parameters): .. new. - (print_r2p_header, print_pr_data, print_r2p_unknown) - (print_r2p_datablock, print_r2p_slotstatus, print_r2p_escape) - (print_r2p_datarate): New. - (bulk_in): Call parameter printing. - (ccid_set_debug_level): Add debug level 3. - (convert_le_u16): New. - (print_p2r_header, print_p2r_iccpoweron, print_p2r_iccpoweroff) - (print_p2r_getslotstatus, print_p2r_xfrblock) - (print_p2r_getparameters, print_p2r_resetparameters) - (print_p2r_setparameters, print_p2r_escape, print_p2r_iccclock) - (print_p2r_to0apdu, print_p2r_secure, print_p2r_mechanical) - (print_p2r_abort, print_p2r_setdatarate, print_r2p_unknown): New. - (bulk_out): Add arg NO_DEBUG and change all callers to pass 0. - Call parameter printing. - (ccid_slot_status): Call with NO_DEBUG set. - (abort_cmd, send_escape_cmd, ccid_get_atr, ccid_get_atr) - (ccid_transceive_apdu_level, ccid_transceive) - (ccid_transceive_secure): Remove old debug print code. - -2009-02-12 Werner Koch - - * command.c (cmd_getinfo): Add new subcommand "deny_admin". - -2009-01-28 Werner Koch - - * scdaemon.c (main): Make --allow-admin the default and make the - option a dummy. - -2009-01-27 Werner Koch - - * app-geldkarte.c: Changed to use an AID. - - * app.c (app_munge_serialno): Add case for no serialno. - (app_get_serial_and_stamp): Ditto. - -2009-01-26 Werner Koch - - * app-geldkarte.c: New. - * Makefile.am (card_apps): Add new file. - * app.c (select_application): Test for geldkarte. - -2009-01-12 Werner Koch - - * command.c (send_client_notifications) [HAVE_W32_SYSTEM]: Fix - brackets. - -2009-01-08 Werner Koch - - * iso7816.c (iso7816_read_record, iso7816_read_binary): Pass 0 for - L_e because the problem with the CCID driver has gone. - (iso7816_apdu_direct): New. - - * app-nks.c (filelist): Add NKS_VER field. Add NKS 3 specific - entries. - (app_local_s, do_deinit): New. - (get_nks_version): New. - (app_select_nks): Setup local data. - (keygripstr_from_pk_file): Replace SLOT by APP and take care of - NKS version > 2. - (do_learn_status): Take care of NKS version. - -2009-01-05 Werner Koch - - * apdu.c (apdu_get_status): Save the last status. - -2008-12-18 Werner Koch - - * ccid-driver.c (abort_cmd): New. - (bulk_in): Call abort_cmd after severe errors. - - * apdu.c (reader_table_s): Add field ANY_STATUS. - (new_reader_slot): Clear it. - (apdu_get_status): Use ANY_STATUS to update the change counter. - Remove the use of the flag bit from LAST_STATUS everywhere. - * command.c (update_reader_status_file): Factor code out to ... - (send_client_notifications): New. Track signals already sent. - (update_reader_status_file): Shutdown the reader after a failed - apdu_get_status. - -2008-12-09 Werner Koch - - * scdaemon.c (main): Call i18n_init before init_common_subsystems. - -2008-12-08 Werner Koch - - * scdaemon.c (handle_connections): Sync ticker to the next full - interval. - (TIMERTICK_INTERVAL_USEC): Change to 500ms. - -2008-12-05 Werner Koch - - * app-openpgp.c (app_local_s): Add field ALGO_ATTR_CHANGE. - (app_select_openpgp): Parse new capability. - (show_caps): Show new capability. - -2008-12-03 Werner Koch - - * scdaemon.c (opts): Use ARGPARSE_ macros. Add option - --card-timeout. - * command.c (update_reader_status_file): Implement it. - -2008-11-18 Werner Koch - - * scdaemon.c (make_libversion): New. - (my_strusage): Print libgcrypt and libksba version. - -2008-11-03 Werner Koch - - * command.c (server_local_s): Add field DISCONNECT_ALLOWED. - (cmd_disconnect): Implement command. - (open_card): Reset disconnect flag. - (update_reader_status_file): Disconnect if allowed. - - * app-common.h (app_ctx_s): Remove INITIALIZED. Make REF_COUNT - unsigned. - * app.c (select_application): Remove INITIALIZED. - (app_write_learn_status, app_readcert, app_readkey, app_getattr) - (app_setattr, app_sign, app_decipher, app_writecert) - (app_writekey, app_get_challenge, app_change_pin, app_check_pin): - Replace INITIALIZED by REF_COUNT check. - (application_notify_card_removed): Rename to .. - (application_notify_card_reset): .. this. Change all callers. - * command.c (do_reset): Call application_notify_card_reset after - sending a reset. - (update_reader_status_file): Add arg SET_CARD_REMOVED. - (scd_update_reader_status_file): Pass true for new flag. - (do_reset): Pass false for new flag. - - * app.c (app_get_serial_and_stamp): Use bin2hex. - * app-help.c (app_help_get_keygrip_string): Ditto. - * app-p15.c (send_certinfo, send_keypairinfo, do_getattr): Ditto. - * app-openpgp.c (send_fpr_if_not_null, send_key_data) - (retrieve_fpr_from_card, send_keypair_info): Ditto. - * app-nks.c (keygripstr_from_pk_file): Ditto. - * command.c (cmd_apdu): Ditto. - -2008-10-21 Marcus Brinkmann - - * command.c (open_card): If connect error is SW_HOST_NO_CARD, - return a more descriptive error. - -2008-10-20 Werner Koch - - * pcsc-wrapper.c (read_32): Use provided arg and not stdin. Is - called with stdin, though. - (handle_close): Mark unused arg. - (handle_status, handle_reset): Ditto. - - * ccid-driver.c (ccid_check_card_presence): Mark not yet used arg. - - * scdaemon.c (scd_deinit_default_ctrl): Mark unused arg. - * command.c (cmd_unlock, cmd_restart, cmd_disconnect): Ditto. - * apdu.c (ct_get_status): Ditto. - (ct_send_apdu, pcsc_send_apdu_wrapped) - (apdu_open_remote_reader): Ditto. - * app.c (select_application): Ditto. - * app-openpgp.c (do_writecert, do_change_pin, do_writekey): Ditto. - * app-nks.c (do_change_pin, do_check_pin): Ditto. - -2008-10-16 Werner Koch - - * command.c (cmd_disconnect): New dummy command. - (register_commands): Register command. - -2008-10-15 Werner Koch - - * command.c (scd_command_handler): Return true if there is no more - active session. - * scdaemon.c (start_connection_thread): Set shutdown flag if - requested by command handler. - (main): Make PIPE_SERVER module global. - (handle_connections): Disable listen_fd if a shutdown is pending. - -2008-10-14 Werner Koch - - * apdu.c (reader_table_s): Add fields connect_card and - disconnect_card. - (new_reader_slot): Set them to NULL. - (apdu_connect, apdu_disconnect): New. - (apdu_close_reader, apdu_shutdown_reader): Call apdu_disconnect. - (connect_pcsc_card, disconnect_pcsc_card): new. - (reset_pcsc_reader_direct): Implement in terms of - disconnect_pcsc_card and connect_pcsc_card. - (apdu_get_atr): Return NULL if there is no ATR. - * sc-copykeys.c (main): Add call to apdu_connect. - * command.c (open_card): Ditto. - - * apdu.h (SW_HOST_ALREADY_CONNECTED): New. - (APDU_CARD_USABLE, APDU_CARD_PRESENT, APDU_CARD_ACTIVE): New. - * apdu.c: Replace constants by the new macros. - (open_pcsc_reader): Factor code out to ... - (open_pcsc_reader_direct, open_pcsc_reader_wrapped): New. - (reset_pcsc_reader): Factor code out to ... - (reset_pcsc_reader_direct, reset_pcsc_reader_wrapped): New. - (pcsc_get_status): Factor code out to ... - (pcsc_get_status_direct, pcsc_get_status_wrapped): New. - (pcsc_send_apdu): Factor code out to ... - (pcsc_send_apdu_direct, pcsc_send_apdu_wrapped): New. - (close_pcsc_reader): Factor code out to ... - (close_pcsc_reader_direct, close_pcsc_reader_wrapped): New. - - * command.c (update_reader_status_file): Open the reader if not - yet done. - - * scdaemon.c (TIMERTICK_INTERVAL_SEC, TIMERTICK_INTERVAL_USEC): - New to replace TIMERTICK_INTERVAL. Chnage from 2s (4 under W32) - to 250ms. - -2008-10-13 Werner Koch - - * command.c (option_handler) [W32]: Use strtoul with base 16. - (update_reader_status_file) [W32]: Set Event. - (scd_command_handler): Use INT2FD to silent warning. - -2008-09-29 Werner Koch - - * scdaemon.h (GCRY_MD_USER): Rename to GCRY_MODULE_ID_USER. - (GCRY_MD_USER_TLS_MD5SHA1): Rename to MD_USER_TLS_MD5SHA1 and - change all users. - -2008-09-28 Marcus Brinkmann - - * apdu.c (pcsc_get_status): Fix last change. - -2008-09-25 Werner Koch - - * app-openpgp.c (do_setattr): Do not allow setting of the reset - code. - (do_change_pin): Allow setting of the reset code. - -2008-09-24 Werner Koch - - * app-openpgp.c (verify_chv3): Set the did_chv3 flag which was - accidently removed on 2008-03-26. - (verify_chv2): Revert last change. - (do_change_pin): Do not change CHV2. Add reset code logic for v2 - cards. - * iso7816.c (iso7816_reset_retry_counter_with_rc): New. - - * app-openpgp.c (add_tlv, build_privkey_template): New. - (do_writekey): Support v2 keys and other key lengths than 1024. - * iso7816.c (iso7816_put_data_odd): New. - -2008-09-23 Werner Koch - - * app-openpgp.c (do_sign): Support SHA-2 digests. - (verify_chv2): No CHV auto-sync for v2 cards. - (do_auth): Allow 2048 bit keys. - (parse_algorithm_attribute): New. - (rsa_key_format_t): New. - (struct app_local_s): Add struct KEYATTR. - -2008-09-23 Marcus Brinkmann - - * apdu.c (pcsc_get_status): Be more relaxed with the usable flag - under Windows. - -2008-09-23 Werner Koch - - * app-openpgp.c (do_setattr): Use command chaining for long - values. - * iso7816.c (iso7816_put_data): Add arg EXTENDED_MODE. Change all - callers. - * apdu.c (apdu_send_simple): Add arg EXTENDED_MODE. Change all - callers. - (send_le): Implement command chaining. - * ccid-driver.c (ccid_transceive_apdu_level): Increase allowed - APDU size. - (ccid_transceive): Alow for APDUS of up to 259 bytes. - * apdu.h: Add new SW_ codes. - -2008-09-16 Werner Koch - - * command.c (cmd_writecert): New. - (register_commands): Register it. - * app-common.h (app_ctx_s): Add member WRITECERT. - * app.c (app_writecert): New. - * app-openpgp.c (do_writecert): New. - (parse_historical): New. - (show_extcap): New. - (dump_all_do): Print only the length of longs DOs. - * command.c (cmd_writekey, cmd_apdu, cmd_pksign) - (cmd_passwd): Replace open coding by skip_options. - -2008-08-30 Moritz - - * scdaemon.c (main): Use estream_asprintf instead of asprintf. - * command.c (update_reader_status_file): Likewise. - (cmd_serialno): Use estream_asprintf instead of asprintf - and xfree instead of free to release memory allocated - through (estream_)asprintf. - (cmd_learn): Likewise. - (pin_cb): Likewise. - * app-openpgp.c (get_public_key): Likewise. - -2008-08-18 Werner Koch - - * app-openpgp.c (do_setattr): Fix test for v2 cards. - -2008-08-11 Werner Koch - - * apdu.c (reset_pcsc_reader, open_pcsc_reader) - (reset_rapdu_reader, open_rapdu_reader): Allow ATRs of up to 33 - bytes. Provide maximum size of ATR buffer using DIM. Such long - ATR are never seen in reality but the PC/SC library of MAC OS X is - just too buggy. Reported by Ludovic Rousseau. Fixes bug #948. - -2008-07-30 Werner Koch - - * app-openpgp.c (verify_a_chv): Use xtrymalloc and make the prompt - for CHV2 more user friendly. - -2008-07-03 Werner Koch - - * app-openpgp.c (do_readcert): New. - (app_local_s): Add fields IS_V2 and MAX_CERTLEN_3. - (app_select_openpgp): Set them and register do_readcert. - (do_setattr): Allow storing of the certificate. - -2008-06-25 Werner Koch - - * app-dinsig.c (do_sign): Allow for SHA256. - -2008-06-24 Werner Koch - - * app-common.h (app_ctx_s): Renamed reset_mode parameter of - change_pin to mode_Flags and make it an unsigned int. - (APP_CHANGE_FLAG_RESET, APP_CHANGE_FLAG_NULLPIN): New. - * app-openpgp.c (do_change_pin): Adjust for that. - - * command.c (cmd_passwd): Add option --nullpin. - * app-nks.c (do_check_pin, do_change_pin): New. - (app_select_nks): Register new functions. - -2008-04-21 Moritz Schulte (wk) - - * app-openpgp.c (verify_a_chv): Make use of the default CHV flag. - -2008-03-26 Werner Koch - - * app-openpgp.c (verify_chv3): Support the keypad. - -2008-02-09 Marcus Brinkmann - - * scdaemon.c (main): Use CONFIG_FILENAME as filename if it is set - in gpgconf-list output. - -2007-12-10 Werner Koch - - * app-openpgp.c (do_decipher): Take care of cryptograms shorter - that 128 bytes. Fixes bug#851. - -2007-11-14 Werner Koch - - * scdaemon.c (main): Pass STANDARD_SOCKET flag to - create_server_socket. - -2007-11-13 Werner Koch - - * scdaemon.c (start_connection_thread): Do not call - assuan_sock_check_nonce if we are running in --server mode. - -2007-11-07 Werner Koch - - * scdaemon.h: Remove errors.h. - -2007-10-02 Werner Koch - - * command.c (cmd_getinfo): Add "pid" subcommand. - -2007-10-01 Werner Koch - - * scdaemon.c (create_server_socket): Use Assuan socket wrappers - and remove Windows specific code. - (socket_nonce): New. - (start_connection_thread): Check nonce. - -2007-09-14 Marcus Brinkmann - - * scdaemon.c (main): New variable STANDARD_SOCKET, which is 1 for - W32 targets. Use it for create_socket_name. - -2007-08-07 Werner Koch - - * tlv.c, tlv.h: Move to ../common/. - -2007-08-02 Werner Koch - - * scdaemon.c: Include gc-opt-flags.h and remove their definition - here. - -2007-08-01 Werner Koch - - * apdu.c (send_le): Implement exact length hack. Suggested by - Sten Lindgren. - -2007-07-05 Werner Koch - - * command.c (has_option_name, skip_options): New. - (cmd_genkey): Add option --timestamp. - (cmd_writekey): Enter confidential mode while inquiring the key data. - - * app.c (app_genkey): Add arg CREATETIME. - * app-common.h (app_ctx_s): Likewise - * app-openpgp.c (do_genkey): Ditto. Use it. - - -2007-07-04 Werner Koch - - * command.c (cmd_getinfo): New subcommand "version". - - * scdaemon.c (TIMERTICK_INTERVAL): New. - (handle_connections) [W32]: Enable a dummy sigs event. - (handle_connections): Use a proper count for select and not - FD_SETSIZE. - (fixed_gcry_pth_init, main): Kludge to fix pth initialization. - -2007-06-21 Werner Koch - - * scdaemon.h (ctrl_t): Remove. It is now declared in ../common/util.h. - -2007-06-18 Marcus Brinkmann - - * scdaemon.c (main): Percent escape output of --gpgconf-list. - -2007-06-12 Werner Koch - - * scdaemon.c (main): Replace some calls by init_common_subsystems. - -2007-06-11 Werner Koch - - * Makefile.am (scdaemon_LDADD): Use libcommonpth macro. - - * command.c (initialize_module_command): New. - * scdaemon.c (main) [W32]: Do not use sigpipe code. - (main): Call initialize_module_command. - -2007-06-06 Werner Koch - - * app-openpgp.c (do_sign): Fix arithmetic on void*. - - * app.c (dump_mutex_state) [W32]: Handle the W32Pth case. - - * apdu.c: Remove dynload.h. - - * scdaemon.c (i18n_init): Remove. - -2007-04-20 Werner Koch - - * sc-copykeys.c (my_gcry_logger): Removed. - (main): Call setup_libgcrypt_logging helper. - * scdaemon.c (my_gcry_logger): Removed. - (main): Call setup_libgcrypt_logging helper. - -2007-04-03 Werner Koch - - * command.c (cmd_getinfo): New subcommand "reader_list". - * ccid-driver.c (scan_or_find_devices): Ignore EBUSY in scan mode - for special transports. - -2007-03-07 Werner Koch - - * app-dinsig.c: Include i18n.h. - (verify_pin): Support PIN pads. - * app-nks.c (verify_pin): Ditto. - - * ccid-driver.c (bulk_in): Handle time extension before checking - the message type. - (ccid_transceive_secure): Support the Cherry XX44 keyboard. - Kudos to the nice folks at Cherry for helping with that. - -2007-02-18 Werner Koch - - * scdaemon.c (DEFAULT_PCSC_DRIVER): Add a default for OS X. - -2007-01-25 Werner Koch - - * Makefile.am (scdaemon_LDADD): Added LIBICONV. Noted by Billy - Halsey. - -2006-12-21 Werner Koch - - * app-openpgp.c (verify_chv2): Factored most code out into... - (verify_a_chv): ... new. - (do_sign): Factored verification code out to new function and - take care of a keypad entered PIN. - (compare_fingerprint): Print an additional diagnostic. - -2006-11-28 Werner Koch - - * apdu.c (send_le, apdu_send_direct): Increase RESULTLEN to 258 to - allow for full 256 byte and the status word. This might break - some old PC/SC drivers or cards, but we will see. Suggested by - Kenneth Wang. - -2006-11-23 Werner Koch - - * command.c (scd_command_handler): Fixed use of CTRL. - -2006-11-21 Werner Koch - - * Makefile.am (libexec_PROGRAMS): Put pscs-wrapper into libexec. - Renamed to gnupg-pcsc-wrapper. - * apdu.c (open_pcsc_reader): Use GNUPG_LIBEXECDIR to accces the - wrapper. Suggested by Eric Dorland. - -2006-11-20 Werner Koch - - * app-openpgp.c (verify_chv2): Support for keypads (only CHV2). - - * ccid-driver.c (ccid_transceive_secure): Made it work for Kaan - and SCM. - -2006-11-17 Werner Koch - - * ccid-driver.c (scan_or_find_devices): Use DEBUGOUT_2 instead of - log_debug. Removed few other log_debug. - - * iso7816.c (iso7816_check_keypad): Allow for a SW of 0. - - * command.c (pin_cb): New mode to prompt for a keypad entry. - - * scdaemon.c (main) : Add disable-keypad. - -2006-11-15 Werner Koch - - * app-p15.c (read_ef_odf): Cast one printf arg. - - * scdaemon.h (struct server_control_s): Add field THREAD_STARTUP. - * command.c (scd_command_handler): Add new arg CTRL. - * scdaemon.c (scd_init_default_ctrl): Made static. - (scd_deinit_default_ctrl): New. - (start_connection_thread): Call init/deinit of ctrl. - (handle_connections): Allocate CTRL. - - * apdu.c (PCSC_ERR_MASK): New. - (reset_pcsc_reader, pcsc_get_status, pcsc_send_apdu) - (close_pcsc_reader, open_pcsc_reader): Use it after shifting error - values. Reported by Henrik Nordstrom. Fixes bug #724. - -2006-10-24 Werner Koch - - * scdaemon.h (GCRY_MD_USER_TLS_MD5SHA1): New. - (MAX_DIGEST_LEN): Increased to 36. - * app-p15.c (do_sign): Support for TLS_MD5SHA1. - (do_auth): Detect TLS_MD5SHA1. - (do_sign): Tweaks for that digest. - -2006-10-23 Werner Koch - - * scdaemon.c (main): New command --gpgconf-test. - -2006-10-17 Werner Koch - - * Makefile.am (scdaemon_LDADD): Link against libcommonpth. - -2006-10-12 Werner Koch - - * apdu.c: Include pth.h after unistd.h for the sake of newer Pth - versions. - -2006-10-11 Werner Koch - - * app-openpgp.c (do_sign): Redirect to do_auth for OpenPGP.3. - -2006-10-06 Werner Koch - - * Makefile.am (AM_CFLAGS): Use PTH version of libassuan. - (scdaemon_LDADD): Ditto. - - * scdaemon.h (send_status_info): Mark with sentinel attribute. - -2006-10-02 Marcus Brinkmann - - * command.c (update_reader_status_file): Increase buffer of - NUMBUF2 (fixing typo). - -2006-09-24 Marcus Brinkmann - - * app-openpgp.c (do_sign): Advance INDATA by the SHA1 resp. RMD160 - prefix length. - -2006-09-14 Werner Koch - - Replaced all call gpg_error_from_errno(errno) by - gpg_error_from_syserror(). - - * command.c (scd_command_handler): Replaced - init_connected_socket_server by init_socket_server_ext. - -2006-09-07 Werner Koch - - * command.c (update_reader_status_file): Execute an event handler - if available. - -2006-09-06 Werner Koch - - * apdu.c (pcsc_end_transaction): - * pcsc-wrapper.c (pcsc_end_transaction: Fixed dclaration. - Reported by Bob Dunlop. - - * scdaemon.h (CTRL,APP): Removed and changed everywhere to - ctrl_t/app_t. - - Replaced all Assuan error codes by libgpg-error codes. Removed - all map_to_assuan_status and map_assuan_err. - - * scdaemon.c (main): Call assuan_set_assuan_err_source to have Assuan - switch to gpg-error codes. - * command.c (set_error): Adjusted. - -2006-09-02 Marcus Brinkmann - - * command.c (get_reader_slot): Return the slot_table index, not - the APDU slot number. - (update_reader_status_file): Use the slot_table index in the - update_card_removed invocation. - -2006-09-01 Marcus Brinkmann - - * command.c (cmd_getinfo): Handle status command. - -2006-08-30 Marcus Brinkmann - - * command.c (do_reset): Delay resetting CTRL->reader_slot until - after update_card_removed invocation. - -2006-08-28 Marcus Brinkmann - - * app-openpgp.c (do_decipher, do_sign): Allow "OPENPGP.2" - resp. "OPENPGP.1" for KEYIDSTR. - -2006-08-21 Werner Koch - - * pcsc-wrapper.c (handle_open, handle_close): Reset card and - protocol on error/close. - (handle_status): Don't set the state if the state is unknown. - (handle_reset): Ignore an error if already disconnected. May - happen due to system wake-up after hibernation. Suggested by Bob - Dunlop. - -2006-06-28 Werner Koch - - * app-openpgp.c (do_writekey): Fixed computation of memmove - length. This led to garbled keys if E was larger than one byte. - Thanks to Achim Pietig for hinting at the garbled E. - -2006-06-09 Marcus Brinkmann - - * Makefile.am (scdaemon_LDADD): Add $(NETLIBS). - -2006-04-14 Marcus Brinkmann - - * app.c (select_application): Cover up a slot mismatch error in - case it happens (it shouldn't happen). - (release_application): Use APP->slot. Lock the reader. - (application_notify_card_removed): Lock the reader. - -2006-04-11 Werner Koch - - * command.c (hex_to_buffer): New. - (cmd_apdu): New. - -2006-04-03 Werner Koch - - * scdaemon.c [__GLIBC__]: Default to libpcsclite.so.1. - -2006-03-21 Werner Koch - - * command.c (cmd_pksign): Add --hash option. - -2006-03-01 Werner Koch - - * command.c (status_file_update_lock): New. - (scd_update_reader_status_file): Use lock and factor existing code - out to .. - (update_reader_status_file): .. this. - (do_reset): Use the lock and call update_reader_status_file. - -2006-02-20 Werner Koch - - * apdu.c (open_pcsc_reader): Fixed double free. Thanks to Moritz. - -2006-02-09 Werner Koch - - * command.c (get_reader_slot, do_reset) - (scd_update_reader_status_file): Rewrote. - - * app.c (release_application): Factored code out to .. - (deallocate_app): new function. - (select_application): Introduce new saved application stuff. - (application_notify_card_removed): New. - * command.c (update_card_removed): Call it here. - (do_reset): And here. - - * app.c (check_application_conflict): New. - * command.c (open_card): Use it here. - (cmd_restart): New command. - - * command.c (cmd_lock): Fixed --wait option to actually terminate. - -2006-02-08 Werner Koch - - * ccid-driver.c (ccid_get_atr): Read Parameter and select T=1 - using these parameters. - (scan_or_find_devices): Check for NULL r_fd. - -2006-02-02 Werner Koch - - * ccid-driver.c (special_transport): New - (ccid_open_reader, do_close_reader, ccid_shutdown_reader) - (bulk_out, bulk_in): Add support for CardMan 4040 reader. - - * ccid-driver.c (scan_or_find_devices): Factored most code out to - (scan_or_find_usb_device): .. new. - (make_reader_id): Fixed vendor mask. - -2006-01-01 Werner Koch - - * app-openpgp.c (do_sign): Give user error if hash algorithm is - not supported by the card. - -2005-12-06 Werner Koch - - * apdu.c (open_pcsc_reader): Check that pcsc-wrapper is actually - installed. - -2005-11-23 Werner Koch - - * app-nks.c (verify_pin): Give a special error message for a Nullpin. - -2005-10-29 Werner Koch - - * ccid-driver.c (send_escape_cmd): New args RESULT, RESULTLEN and - RESULTMAX. Changed all callers. - (ccid_transceive_escape): New. - -2005-10-27 Werner Koch - - * apdu.c [__CYGWIN__]: Make cygwin environment similar to _WIN32. - Suggested by John P. Clizbe. - * scdaemon.c [__CYGWIN__]: Set default PC/SC driver to winscard.dll. - -2005-10-19 Werner Koch - - * ccid-driver.h (CCID_DRIVER_ERR_NO_KEYPAD): New. - * apdu.h (SW_HOST_NO_KEYPAD): New. - * iso7816.h (struct iso7816_pininfo_s): New. - * iso7816.c (map_sw): Support new code. - (iso7816_check_keypad): New. - (iso7816_verify_kp, iso7816_change_reference_data_kp) - (iso7816_reset_retry_counter_kp): New. Extended versions of the - original functions. - * apdu.c (host_sw_string): Support new code. - (reader_table_s): New field CHECK_KEYPAD. - (new_reader_slot, open_ct_reader, open_pcsc_reader) - (open_ccid_reader, open_rapdu_reader): Initialize it. - (check_ccid_keypad): New. - (apdu_check_keypad): New. - (apdu_send_le): Factored all code out to ... - (send_le): .. new. Takes an additional arg; changed all callers - of the orginal function to use this one with a NULL for the new - arg. - (apdu_send_simple_kp): New. - (ct_send_apdu, pcsc_send_apdu, my_rapdu_send_apdu) - (send_apdu_ccid): New arg PININFO. - (send_apdu_ccid): Use the new arg. - - * scdaemon.c: New option --disable-keypad. - -2005-10-08 Marcus Brinkmann - - * Makefile.am (scdaemon_LDADD): Add ../gl/libgnu.a after - ../common/libcommon.a. - -2005-09-20 Werner Koch - - * app-dinsig.c (verify_pin): Try ISO 9564 BCD encoding. - - * iso7816.c (iso7816_select_application): Add arg FLAGS. Changed - all callers to pass 0. - * app-openpgp.c (app_select_openpgp): But this one requires a - special flag. - - * app-p15.c (app_select_p15): Don't use select application for the - BELPIC. - -2005-09-09 Werner Koch - - * pcsc-wrapper.c (main): Removed bogus free. - - * app-p15.c (do_auth): New. - (do_getattr): New attribs $AUTHKEYID and $DISPSERIALNO. - * app-openpgp.c (do_getattr): Ditto. - -2005-09-08 Werner Koch - - * app-openpgp.c (do_getattr): New key $AUTHKEYID. - -2005-09-06 Werner Koch - - * app-p15.c (do_sign): Tweaked for BELPIC cards. - (read_home_df): New arg R_BELPIC. - (app_select_p15): Set card type for BELPIC. - -2005-09-05 Werner Koch - - * iso7816.c (iso7816_select_path): New. - * app-p15.c (select_ef_by_path): Allow for direct path selection. - (app_select_p15): Try using the Belgian variant of pkcs#15. - (read_home_df): New. - (read_ef_odf): Generalized. - (read_ef_tokeninfo): New. - (read_p15_info): Set serialnumber from TokenInfo. - (app_select_p15): Don't munge serialNumber - that must be done - only once. - - * iso7816.c (iso7816_read_binary): Use Le=0 when reading all - data. Handle 6C00 error and take 6B00 as indication for EOF. - * apdu.h (SW_EXACT_LENGTH_P): New. - * apdu.c (new_reader_slot, reset_pcsc_reader, pcsc_get_status) - (open_pcsc_reader): Set new reader state IS_T0. - (apdu_send_le): When doing T=0 make sure not to send Lc and Le. - Problem reported by Carl Meijer. - (apdu_send_direct): Initialize RESULTLEN. - * pcsc-wrapper.c (handle_status): Return the current protocol as - a new third word. - -2005-08-05 Werner Koch - - * apdu.c (open_rapdu_reader): Set the reader number. - -2005-07-05 Werner Koch - - * app-openpgp.c (do_readkey): Return a mallcoed copy of the key as - required by the description. Thanks to Moritz for tracking this - problem down. - -2005-06-21 Werner Koch - - * scdaemon.c (main): ifdef call to ccid_set_debug_level. - - * apdu.c (reset_pcsc_reader, open_pcsc_reader): Cast size_t to - ulong for printf. - -2005-06-06 Werner Koch - - * scdaemon.c (main): New option --debug-allow-core-dump. - -2005-06-03 Werner Koch - - * scdaemon.c (handle_connections): Make sure that the signals we - are handling are not blocked.Block signals while creating new - threads. - (handle_connections): Include the file descriptor into the name of - the thread. - -2005-06-02 Werner Koch - - * app.c (app_dump_state, dump_mutex_state): New. - * scdaemon.c (handle_signal): Print it on SIGUSR1. - - * app-openpgp.c (do_writekey): Typo fix. - - * command.c (open_card): Check for locked state even if an - application context is available. - - * app-common.h: Add REF_COUNT field. - * app.c (release_application, select_application): Implement - reference counting to share the context beween connections. - - * app.c (lock_reader, unlock_reader): Take SLOT instead of APP as - argument. Changed all callers. - (select_application): Unlock the reader on error. This should fix - the hangs I noticed last week. - - * scdaemon.h: Removed card_ctx_t cruft. - -2005-06-01 Werner Koch - - * scdaemon.c: Include mkdtemp.h. - -2005-05-31 Werner Koch - - * tlv.c [GNUPG_MAJOR_VERSION==1]: Define constants instead of - including a gnupg 1.4 header. - -2005-05-30 Werner Koch - - * tlv.c: Add hack to compile without gpg-error.h when used with - GnuPG 1.4. - -2005-05-23 Werner Koch - - * Makefile.am: Do not build sc-copykeys anymore. - - * app-openpgp.c (app_openpgp_storekey, app_openpgp_readkey) - (app_openpgp_cardinfo): Removed. - - * ccid-driver.c (parse_ccid_descriptor): SCR335 FW version 5.14 is - good. - (do_close_reader): Never do a reset. The caller should instead - make sure that the reader has been closed properly. The new retry - code in ccid_slot_status will make sure that the readersatrts up - fine even if the last process didn't closed the USB connection - properly. - (ccid_get_atr): For certain readers try switching to ISO mode. - Thanks to Ludovic Rousseau for this hint and the magic numbers. - (print_command_failed): New. - (bulk_in): Use it here. Add new arg NO_DEBUG. - (ccid_slot_status): Disabled debugging. - -2005-05-21 Werner Koch - - * scdaemon.c (handle_signal): Print thread info on SIGUSR1. - -2005-05-20 Werner Koch - - * ccid-driver.c: Replaced macro DEBUG_T1 by a new debug level. - (parse_ccid_descriptor): Mark SCR335 firmware version 5.18 good. - (ccid_transceive): Arghhh. The seqno is another bit in the - R-block than in the I block, this was wrong at one place. - - * scdaemon.c: New options --debug-ccid-driver and - --debug-disable-ticker. - - * app-openpgp.c (do_genkey, do_writekey): Factored code to check - for existing key out into .. - (does_key_exist): .. New function. - -2005-05-19 Werner Koch - - * tlv.c (parse_sexp): New. - - * command.c (cmd_writekey): New. - * app.c (app_writekey): New. - * app-common.c (app_t): Add function ptr WRITEKEY. - * app-openpgp.c (do_writekey): New. - - * app-openpgp.c (do_readkey) [GNUPG_MAJOR_VERSION==1]: Return error. - * app-common.h (app_t) [GNUPG_MAJOR_VERSION==1]: Add a field to - store the Assuan context. - -2005-05-17 Werner Koch - - * scdaemon.c: Removed non-pth code paths. - (create_socket_name, create_server_socket): New. Taken from - ../agent/gpg-agent. - (cleanup): Changed to adjust for SOCKET_NAME now being malloced. - (ticker_thread): Always use pth_event_occurred; it is again - defined for all decent PTH versions. - (handle_connections): New. Based on the gpg-agent code. - (start_connection_thread): Ditto. - (ticker_thread): Removed. - (cleanup_sh): Removed. - (main): Run the handler for the pipe server in a separate - thread. This replaces the old ticker thread. - (scd_get_socket_name): New. - * command.c (cmd_getinfo): New command GETINFO. - (scd_command_handler): Renamed argument and changed code to use an - already connected FD. - -2005-05-15 Werner Koch - - * app.c, app-common.h, app-nks.c, app-p15.c, app-dinsig.c - * app-openpgp.c: Change most function return types from int to - gpg_error_t. - * command.c (pin_cb): Ditto. - * sc-copykeys.c (pincb): Ditto. - - * app.c (lock_reader, unlock_reader): New. Changed call handler - wrappers to make use of these functions. - -2005-05-07 Werner Koch - - * ccid-driver.c (do_close_reader): Don't do a reset before close. - Some folks reported that it makes the SCR335 hang less often. - Look at the source on how to re-enable it. - -2005-04-27 Werner Koch - - * app-p15.c (micardo_mse): New. - (do_sign): Call it. - * iso7816.c (iso7816_manage_security_env): Allow passing DATA as - NULL to indicate an empty Lc. - * tlv.c (find_tlv): Check that a found object fits into the - buffer. - (find_tlv_unchecked): New as replacement for the old non-checking - variant. - * app.c (select_application): Keep on using the non-checking - variant. - * app-openpgp.c (get_one_do, dump_all_do): Ditto. - - - Removal of the old OpenSC based code. - - * app-p15.c: New. Basic support for pkcs15 cards without OpenSC. - There are quite a couple of things missing but at least I can use - my old TCOS cards from the Aegypten-1 development for signing. - * app.c (select_application): Detect pkcs15 applications. - * Makefile.am (scdaemon_SOURCES): Removed card.c, card-common.h - and card-p15.c because they are now obsolete. Added app-p15.c. - Removed all OpenSC stuff. - * command.c (do_reset, open_card, cmd_serialno, cmd_learn) - (cmd_readcert, cmd_readkey, cmd_pksign, cmd_pkdecrypt): Removed - all special cases for the old card.c based mechanisms. - * scdaemon.c, apdu.c: Removed all special cases for OpenSC. - -2005-04-20 Werner Koch - - * command.c: Use GPG_ERR_LOCKED instead of EBUSY. - -2005-04-14 Werner Koch - - * app-openpgp.c (retrieve_key_material): Rewritten. Return a - proper error code. - (retrieve_next_token): Removed. - (retrieve_fpr_from_card): Rewritten to make use of DO caching and - to take the KEYNO as arg. - (get_public_key): Renamed variable for clarity. - -2005-04-12 Werner Koch - - Basic support for several sessions. - - * command.c (scd_command_handler): Replace the primary_connection - stuff by a real connection list. Release the local context on - exit. - (scd_update_reader_status_file): Update accordingly. Send signal - to all connections who registered an event signal. - (cmd_lock, cmd_unlock, register_commands): New commands LOCK and - UNLOCK. - (cmd_setdata, cmd_pksign, cmd_pkauth, cmd_pkdecrypt, cmd_setattr) - (cmd_genkey, cmd_passwd, cmd_checkpin): Return an error if reader - is locked. - (do_reset): Handle locking. - (open_card): Ditto. Share the reader slot with other sessions. - (get_reader_slot): New. - (update_card_removed): New. Use it in the TEST_CARD_REMOVAL macro. - -2005-04-07 Werner Koch - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * scdaemon.c (main): Use default_homedir(). - -2004-12-18 Werner Koch - - * 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 - - * 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 - - * Makefile.am (pkglib_PROGRAMS): Build only for W32. - -2004-10-22 Werner Koch - - * app-openpgp.c (verify_chv3): The minium length for CHV3 is - 8. Changed string to match the other ones. - -2004-10-21 Werner Koch - - * 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 - - * 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 - - * ccid-driver.c (ccid_get_atr): Reset T=1 state info. - -2004-10-14 Werner Koch - - * app-openpgp.c (parse_login_data): New. - (app_select_openpgp): Call it. - (do_setattr): Reparse it after change. - -2004-10-06 Werner Koch - - * 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 - - * ccid-driver.c (send_escape_cmd): New. - -2004-09-30 Werner Koch - - * 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 - - 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 - - * 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 - - * app-openpgp.c (app_select_openpgp): Its app_munge_serialno and - not app_number_serialno. - -2004-08-20 Werner Koch - - * 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 - - * 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 - - * apdu.c: Include . - - * Makefile.am: Use @DL_LIBS@ instead of -ldl. - -2004-07-22 Werner Koch - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * app-openpgp.c (app_openpgp_readkey): Fixed check for valid - exponent. - -2004-06-18 Werner Koch - - * sc-investigate.c (my_read_line): Renamed from read_line. - -2004-06-16 Werner Koch - - * 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 - - * app-openpgp.c (do_setattr): Sync FORCE_CHV1. - -2004-04-27 Werner Koch - - * app-common.h: Do not include ksba.h for gnupg 1. - -2004-04-26 Werner Koch - - * 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 - - * scdaemon.c (main): For now, always print default filename for - --gpgconf-list, and never /dev/null. - -2004-04-21 Werner Koch - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * scdaemon.c (main) : Fixed output for pcsc_driver. - -2004-03-17 Werner Koch - - * 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) : Fixed default value quoting. - -2004-03-16 Werner Koch - - * 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 - - * 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 - - * iso7816.c (iso7816_read_record): New arg SHORT_EF. Changed all - callers. - -2004-02-18 Werner Koch - - * 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 - - * Makefile.am: Include cmacros.am for common flags. - -2004-01-29 Werner Koch - - * command.c (reset_notify): Release the application context and - close the reader. - -2004-01-28 Werner Koch - - * iso7816.c (iso7816_manage_security_env): New. - (iso7816_decipher): Add PADIND argument. - -2004-01-27 Werner Koch - - * 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 - - * 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 - - * 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 - - * apdu.c (apdu_send_le): Treat SW_EOF_REACHED as a warning. - -2004-01-20 Werner Koch - - * 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 - - * 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 - - * 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 - - * card-p15.c (p15_enum_keypairs): Replaced KRC by RC. - * card-dinsig.c (dinsig_enum_keypairs): Ditto. - -2003-12-16 Werner Koch - - * scdaemon.c (main): Set the prefixes for assuan logging. - -2003-11-17 Werner Koch - - * scdaemon.c, scdaemon.h: New options --allow-admin and --deny-admin. - * app-openpgp.c (verify_chv3): Check it here. - -2003-11-12 Werner Koch - - Adjusted for API changes in Libksba. - -2003-10-30 Werner Koch - - * apdu.c (close_ct_reader, close_pcsc_reader): Implemented. - (get_ccid_error_string): New. Not very useful messages, though. - -2003-10-25 Werner Koch - - * ccid-driver.c (ccid_open_reader): Return an error if no USB - devices are found. - - * command.c (cmd_genkey, cmd_passwd): Fixed faulty use of - !spacep(). - - * apdu.c (apdu_open_reader): Hacks for PC/SC under Windows. - -2003-10-20 Werner Koch - - * command.c (cmd_checkpin): New. - (register_commands): Add command CHECKPIN. - * app.c (app_check_pin): New. - * app-openpgp.c (check_against_given_fingerprint): New. Factored - out that code elsewhere. - (do_check_pin): New. - -2003-10-10 Werner Koch - - * 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. - -2003-10-09 Werner Koch - - * ccid-driver.c (ccid_transceive): Add T=1 chaining for sending. - -2003-10-08 Werner Koch - - * app-openpgp.c (do_getattr): Support SERIALNO and AID. - -2003-10-01 Werner Koch - - * 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 - -2003-09-30 Werner Koch - - * command.c (cmd_getattr): New command GETATTR. - * app.c (app_setattr): New. - (do_getattr): New. - (do_learn_status): Reimplemented in terms of do_getattr. - - * 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. - -2003-09-28 Werner Koch - - * app-openpgp.c (dump_all_do): Use gpg_err_code and not gpg_error. - -2003-09-19 Werner Koch - - * ccid-driver.c (parse_ccid_descriptor): New. - (read_device_info): New. - (ccid_open_reader): Check that the device has all required features. - -2003-09-06 Werner Koch - - * scdaemon.c (main): --pcsc-driver again defaults to pcsclite. - David Corcoran was so kind to remove the GPL incompatible - advertisng clause from pcsclite. - * apdu.c (apdu_open_reader): Actually make pcsc-driver option work. - -2003-09-05 Werner Koch - - * ccid-driver.c: More work, data can now actually be retrieved. - * ccid-driver.c, ccid-driver.h: Alternativley allow use under BSD - conditions. - -2003-09-02 Werner Koch - - * scdaemon.c, scdaemon.h: New option --pcsc-ccid. - * ccid-driver.c, ccid-driver.h: New but far from being useful. - * Makefile.am: Add above. - * apdu.c: Add support for that ccid driver. - -2003-08-26 Timo Schulz - - * apdu.c (new_reader_slot): Only set 'is_osc' when OpenSC - is used. - -2003-08-25 Werner Koch - - * command.c (cmd_setattr): Use a copy of LINE. - (cmd_genkey): Use a copy of KEYNO. - (cmd_passwd): Use a copy of CHVNOSTR. - (cmd_pksign, cmd_pkauth, cmd_pkdecrypt): s/strdup/xtrystrdup/. - -2003-08-19 Werner Koch - - * scdaemon.c, scdaemon.h: New option --pcsc-driver. - * apdu.c (apdu_open_reader): Use that option here instead of a - hardcoded one. - -2003-08-18 Werner Koch - - * Makefile.am: Add OPENSC_LIBS to all programs. - - * scdaemon.c, scdaemon.h: New option --disable-opensc. - * card.c (card_open): Implement it. - * apdu.c (open_osc_reader, osc_send_apdu): New. - (apdu_open_reader) [HAVE_OPENSC]: Use the opensc driver if not - disabled. - (error_string) [HAVE_OPENSC]: Use sc_strerror. - (send_apdu) [HAVE_OPENSC]: Call osc_apdu_send. - - * card-p15.c (p15_enum_keypairs, p15_prepare_key): Adjusted for - libgpg-error. - -2003-08-14 Timo Schulz - - * apdu.c (ct_activate_card): Change the code a little to avoid - problems with other readers. - * Always use 'dynload.h' instead of 'dlfcn.h'. - -2003-08-05 Werner Koch - - * app-openpgp.c (dump_all_do): Don't analyze constructed DOs after - an error. - -2003-08-04 Werner Koch - - * app.c (app_set_default_reader_port): New. - (select_application): Use it here. - * scdaemon.c (main): and here. - * sc-copykeys.c: --reader-port does now take a string. - * sc-investigate.c, scdaemon.c: Ditto. - * apdu.c (apdu_open_reader): Ditto. Load pcsclite if no ctapi - driver is configured. Always include code for ctapi. - (new_reader_slot): Don't test for already used ports and remove - port arg. - (open_pcsc_reader, pcsc_send_apdu, pcsc_error_string): New. - (apdu_send_le): Changed RC to long to cope with PC/SC. - - * scdaemon.c, scdaemon.h: New option --ctapi-driver. - * sc-investigate.c, sc-copykeys.c: Ditto. - -2003-07-31 Werner Koch - - * Makefile.am (scdaemon_LDADD): Added INTLLIBS. - -2003-07-28 Werner Koch - - * app-openpgp.c (do_setattr): Change implementation. Allow all - useful DOs. - -2003-07-27 Werner Koch - - Adjusted for gcry_mpi_print and gcry_mpi_scan API change. - -2003-07-24 Werner Koch - - * app-openpgp.c (do_learn_status): Print more status information. - (app_select_openpgp): Store the card version. - (store_fpr): Add argument card_version and fix DOs for old cards. - (app_openpgp_storekey): Likewise. - -2003-07-23 Werner Koch - - * command.c (cmd_pkauth): New. - (cmd_setdata): Check whether data was given at all to avoid - passing 0 to malloc. - - * app.c (app_auth): New. - * app-openpgp.c (do_auth): New. - -2003-07-22 Werner Koch - - * command.c (cmd_passwd): New. - * app.c (app_change_pin): New. - * app-openpgp.c (do_change_pin): New. - * iso7816.c (iso7816_reset_retry_counter): Implemented. - - * sc-investigate.c (main): New option --gen-random. - * iso7816.c (iso7816_get_challenge): Don't create APDUs with a - length larger than 255. - -2003-07-17 Werner Koch - - * command.c (cmd_random): New command RANDOM. - - * iso7816.c (map_sw): New. Use it in this file to return - meaningful error messages. Changed all public fucntions to return - a gpg_error_t. - (iso7816_change_reference_data): New. - * apdu.c (apdu_open_reader): Use faked status words for soem - system errors. - -2003-07-16 Werner Koch - - * apdu.c (apdu_send_simple): Use apdu_send_le so that we can - specify not to send Le as it should be. - -2003-07-15 Werner Koch - - * Makefile.am: Add sc-copykeys program. - * sc-copykeys.c: New. - * app-openpgp.c (app_openpgp_storekey): New. - (app_openpgp_cardinfo): New. - (count_bits): New. - (store_fpr): And use it here to get the actual length in bit. - -2003-07-03 Werner Koch - - * app-openpgp.c (do_setattr): Add setting of the URL. - (app_select_openpgp): Dump card data only in very verbose mode. - (do_decipher): New. - -2003-07-02 Werner Koch - - * app-openpgp.c (get_sig_counter): New. - (do_sign): Print the signature counter and enable the PIN callback. - (do_genkey): Implement the PIN callback. - -2003-07-01 Werner Koch - - * app-openpgp.c (store_fpr): Fixed fingerprint calculation. - -2003-06-26 Werner Koch - - * app-openpgp.c (find_tlv): Fixed length header parsing. - - * app.c (app_genkey): New. - * command.c (cmd_genkey): New. - -2003-06-25 Werner Koch - - * command.c (percent_plus_unescape): New. - (cmd_setattr): New. - -2003-06-24 Werner Koch - - * command.c (send_status_info): New. - - * app-openpgp.c (app_select_openpgp): Replace SLOT arg by APP arg - and setup the function pointers in APP on success. Changed callers. - * app.c: New. - * app-common.h: New. - * scdaemon.h (APP): New type to handle applications. - (server_control_s): Add an APP context field. - - * command.c (cmd_serialno): Handle applications. - (cmd_pksign): Ditto. - (cmd_pkdecrypt): Ditto. - (reset_notify): Ditto. - (cmd_learn): For now return error for application contexts. - (cmd_readcert): Ditto. - (cmd_readkey): Ditto. - -2003-06-04 Werner Koch - - * card.c (map_sc_err): Renamed gpg_make_err to gpg_err_make. - - Renamed error codes from INVALID to INV and removed _ERROR suffixes. - -2003-06-03 Werner Koch - - Changed all error codes in all files to the new libgpg-error scheme. - - * scdaemon.h: Include gpg-error.h and errno.h - * card.c (map_sc_err): Use unknown for the error source. - * Makefile.am: Link with libgpg-error - -2003-05-14 Werner Koch - - * atr.c, atr.h: New. - * sc-investigate.c: Dump the ATR in a human readable format. - -2003-05-08 Werner Koch - - * scdaemon.h (DBG_CARD_IO_VALUE): New. - - * sc-investigate.c: New. - * scdaemon.c (main): Removed --print-atr option. - - * iso7816.c, iso7816.h, app-openpgp.c: New. - -2003-04-29 Werner Koch - - * scdaemon.c: New options --print-atr and --reader-port - * apdu.c, apdu.h: New - - * card.c, card-p15.c, card-dinsig.c: Allow build without OpenSC. - - * Makefile.am (LDFLAGS): Removed. - - * command.c (register_commands): Adjusted for new Assuan semantics. - -2002-08-21 Werner Koch - - * scdaemon.c (main): New option --daemon so that the program is - not accidently started in the background. - -2002-08-16 Werner Koch - - * scdaemon.c: Include i18n.h. - - * card-common.h (struct p15_private_s): Forward declaration. Add - it to card_ctx_s. - * card.c (card_close): Make sure private data is released. - (card_enum_certs): New. - * card-p15.c (p15_release_private_data): New. - (init_private_data): New to work around an OpenSC weirdness. - (p15_enum_keypairs): Do an OpenSC get_objects only once. - (p15_enum_certs): New. - (card_p15_bind): Bind new function. - * command.c (cmd_learn): Return information about the certificates. - -2002-08-09 Werner Koch - - * card.c (card_get_serial_and_stamp): Use the tokeinfo serial - number as a fallback. Add a special prefix for serial numbers. - -2002-07-30 Werner Koch - - Changes to cope with OpenSC 0.7.0: - - * card.c: Removed the check for the packed opensc version. - Changed include file names of opensc. - (map_sc_err): Adjusted error codes for new opensc version. - * card-p15.c: Changed include filename of opensc. - * card-dinsig.c: Ditto. - - * card-p15.c (p15_decipher): Add flags argument to OpenSC call. - -2002-07-24 Werner Koch - - * card.c (find_simple_tlv, find_iccsn): New. - (card_get_serial_and_stamp): Improved serial number parser. - -2002-06-27 Werner Koch - - * scdaemon.c (main): Use GNUPG_DEFAULT_HOMEDIR constant. - -2002-06-15 Werner Koch - - * card-dinsig.c: Documented some stuff from the DIN norm. - -2002-04-15 Werner Koch - - * command.c (cmd_pksign, cmd_pkdecrypt): Use a copy of the key ID. - -2002-04-12 Werner Koch - - * scdaemon.c: New option --debug-sc N. - * card.c (card_open): set it here. - - * card-p15.c (p15_prepare_key): Factored out common code from ... - (p15_sign, p15_decipher): here and made the decryption work the - regular way. - -2002-04-10 Werner Koch - - * card.c (card_open): Return immediately when no reader is available. - -2002-03-27 Werner Koch - - * card.c (card_open, card_close): Adjusted for changes in OpenSC. - -2002-03-10 Werner Koch - - * card-p15.c, card-dinsig.c, card-common.h: New. - * card.c: Factored most code out to the new modules, so that we - can better support different types of card applications. - -2002-01-26 Werner Koch - - * scdaemon.c scdaemon.h, command.c: New. Based on the code from - the gpg-agent. - - - Copyright 2002, 2003, 2004, 2005, 2007, 2008 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 - modifications, as long as this notice is preserved. - - This file is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY, to the extent permitted by law; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/scd/ChangeLog-2011 b/scd/ChangeLog-2011 new file mode 100644 index 000000000..9184af4c5 --- /dev/null +++ b/scd/ChangeLog-2011 @@ -0,0 +1,2592 @@ +2011-12-01 Werner Koch + + NB: ChangeLog files are no longer manually maintained. Starting + on December 1st, 2011 we put change information only in the GIT + commit log, and generate a top-level ChangeLog file from logs at + "make dist". See doc/HACKING for details. + +2011-12-01 Niibe Yutaka + + * app-openpgp.c (do_change_pin): Fix pincb messages when + use_keypad == 1. + +2011-11-29 Niibe Yutaka + + PC/SC pininput support for passphrase modification (2/2) + * apdu.h (apdu_send_simple_kp): Remove. + + * apdu.c (pcsc_keypad_modify): Add bConfirmPIN handling. + (apdu_send_simple_kp): Remove. + + * iso7816.h (iso7816_reset_retry_counter_kp): Remove arguments + of NEWCHV, and NEWCHVLEN. + (iso7816_reset_retry_counter_with_rc_kp, iso7816_put_data_kp): New. + + * iso7816.c (iso7816_reset_retry_counter_with_rc_kp): New. + (iso7816_reset_retry_counter_kp): Call apdu_keypad_modify. Only + handle the case with PININFO. + (iso7816_reset_retry_counter): Don't call + iso7816_reset_retry_counter_kp. + (iso7816_put_data_kp): New. + + * app-openpgp.c (do_change_pin): Add with_resetcode. + Handle keypad for unblocking pass phrase with resetcode, + setting up of resetcode, and unblocking by admin. + + PC/SC pininput support for passphrase modification (1/2) + * iso7816.h (iso7816_change_reference_data_kp): Remove arguments + of OLDCHV, OLDCHVLEN, NEWCHV, and NEWCHVLEN. + + * iso7816.c (iso7816_change_reference_data_kp): Call + apdu_keypad_modify. + (iso7816_change_reference_data): Don't call + iso7816_change_reference_data_kp. + + * apdu.h (apdu_keypad_modify): New. + + * apdu.c (pcsc_keypad_modify, apdu_keypad_modify): New. + (struct reader_table_s): New memeber function keypad_modify. + (new_reader_slot, open_ct_reader, open_ccid_reader) + (open_rapdu_reader): Initialize keypad_modify. + + * app-openpgp.c (do_change_pin): Handle keypad and call + iso7816_change_reference_data_kp if it is the case. + +2011-11-28 Niibe Yutaka + + * iso7816.h (iso7816_verify_kp): Remove arguments of CHV and CHVLEN. + + * iso7816.c (iso7816_verify_kp): Call apdu_keypad_verify. Only + handle the case with PININFO. + (iso7816_verify): Call apdu_send_simple. + + * app-openpgp.c (verify_a_chv, verify_chv3): Follow the change of + iso7816_verify_kp. + + * app-nks.c (verify_pin): Likewise. + + * app-dinsig.c (verify_pin): Likewise. + + * apdu.c: Include "iso7816.h". + (struct reader_table_s): New memeber function keypad_verify. + Add fields verify_ioctl and modify_ioctl in pcsc. + (CM_IOCTL_GET_FEATURE_REQUEST, FEATURE_VERIFY_PIN_DIRECT) + (FEATURE_MODIFY_PIN_DIRECT): New. + (pcsc_control): New. + (control_pcsc_direct, control_pcsc_wrapped, control_pcsc) + (check_pcsc_keypad, pcsc_keypad_verify): New. + (ccid_keypad_verify, apdu_keypad_verify): New. + (new_reader_slot): Initialize with check_pcsc_keypad, + pcsc_keypad_verify, verify_ioctl and modify_ioctl. + (open_ct_reader): Initialize keypad_verify with NULL. + (open_ccid_reader): Initialize keypad_verify. + (open_rapdu_reader): Initialize keypad_verify with NULL. + (apdu_open_reader): Initialize pcsc_control. + + * pcsc-wrapper.c (load_pcsc_driver): Initialize pcsc_control. + (handle_control): New. + (main): Handle the case 6 of handle_control. + +2011-08-10 Werner Koch + + * command.c (cmd_killscd): Use the new assuan force close flag + if available. + +2011-08-08 Werner Koch + + * app-openpgp.c (do_decipher): Take care of accidentally passed + signed integer data with a leading 0. + +2011-06-16 Werner Koch + + * app-openpgp.c (send_key_data): Implemented chunked mode. + (change_keyattr): Increase limit to 4096. + (do_decipher): Adjust padding for 4096 bit keys. + +2011-02-23 Werner Koch + + * apdu.c (apdu_open_reader): Lock in to CCID if used once. + +2011-01-25 NIIBE Yutaka , + Grant Olson (wk) + + * command.c (do_reset, get_reader_slot) + (update_reader_status_file): Fix handling of the VALID flag for + unplugged readers. + +2011-01-25 Werner Koch + + From 2.0 branch, 2010-03-17: + + * command.c (open_card): Return GPG_ERR_NOT_OPERATIONAL if no + card services are available. + (get_reader_slot): Detect no services status. + (cmd_serialno): No reset if there are no services. + (scd_command_handler): Stop scdaemon in that case. + * apdu.c (pcsc_no_service): New. + (open_pcsc_reader_direct): Set it. + (apdu_open_reader): Add arg R_NO_SERVICE. + +2011-01-05 Werner Koch + + * ccid-driver.c (ccid_transceive_secure): Support the gnuk token. + +2010-11-16 Werner Koch + + * apdu.c (PCSC_UNKNOWN) [W32]: Fix all these values which don't + match those of libpcsc. Reported by Michael Petig. + +2010-10-27 Werner Koch + + * scdaemon.c (create_socket_name): Use TMPDIR. Change callers. + +2010-10-18 Werner Koch + + * app-openpgp.c (parse_algorithm_attribute): Remove extra const in + definition of DESC. + +2010-08-16 Werner Koch + + * scdaemon.c: Replace remaining printf by es_printf. + +2010-06-09 Werner Koch + + * scdaemon.c (main): s/log_set_get_tid_callback/log_set_pid_suffix_cb/. + (tid_log_callback): Adjust for this change. + +2010-03-11 Werner Koch + + * scdaemon.c: Include "asshelp.h". + (main): Remove assuan_set_assuan_log_prefix. Add + assuan_set_log_cb. + (handle_signal): Disable pth ctrl dumping. + * command.c (scd_command_handler): Remove assuan_set_log_stream. + +2010-03-10 Werner Koch + + * Makefile.am (scdaemon_LDADD): Remove libjnlib.a. + +2009-12-15 Werner Koch + + * iso7816.c (do_generate_keypair): s/readonly/read_only/ because + the first is a keyword in VMS C. + +2009-12-03 Werner Koch + + * scdaemon.c (set_debug): Allow for numerical debug leveles. Print + active debug flags. + +2009-11-25 Marcus Brinkmann + + * command.c (scd_command_handler): Use assuan_fd_t and + assuan_fdopen on fds. + +2009-11-05 Marcus Brinkmann + + * command.c (scd_command_handler): Call assuan_init_socket_server, + not assuan_init_socket_server_ext. + +2009-11-04 Werner Koch + + * command.c (register_commands): Add help arg to + assuan_register_command. Add help strings to all commands. + +2009-11-02 Marcus Brinkmann + + * command.c (reset_notify): Take LINE arg and return error. + (register_commands): Use assuan_handler_t type. + +2009-10-25 Werner Koch + + * scdaemon.c (scd_deinit_default_ctrl): Release IN_DATA. + * command.c (cmd_setdata): Release IN_DATA. Reported by Klaus + Flittner. + +2009-10-16 Marcus Brinkmann + + * AM_CFLAGS, scdaemon_LDADD: Use libassuan instead of libassuan-pth. + * scdaemon.c: Invoke ASSUAN_SYSTEM_PTH_IMPL. + (main): Call assuan_set_system_hooks and assuan_sock_init. + +2009-09-23 Marcus Brinkmann + + * command.c: Include "scdaemon.h" before because of + GPG_ERR_SOURCE_DEFAULT check. + (option_handler, open_card, cmd_serialno, cmd_lean, cmd_readcert) + (cmd_readkey, cmd_setdata, cmd_pksign, cmd_pkauth, cmd_pkdecrypt) + (cmd_getattr, cmd_setattr, cmd_writecert, cmd_writekey) + (cmd_genkey, cmd_random, cmd_passwd, cmd_checkpin, cmd_lock) + (cmd_unlock, cmd_getinfo, cmd_restart, cmd_disconnect, cmd_apdu) + (cmd_killscd): Return gpg_error_t instead of int. + (scd_command_handler): Allocate assuan context before starting server. + * scdaemon.c (main): Update to new Assuan API. + +2009-09-03 Werner Koch + + * app-openpgp.c (do_decipher): Compute required Le. + * iso7816.c (iso7816_decipher): Add new arg LE. + * app-nks.c (do_decipher): Adjust for change. + + * iso7816.c (iso7816_put_data, iso7816_put_data_odd): Turn DATA + into a void ptr. + +2009-08-05 Werner Koch + + * app-openpgp.c (change_keyattr_from_string): New. + (do_setattr): Support KEY-ATTR. + +2009-07-29 Marcus Brinkmann + + * ccid-driver.c (print_pr_data): Fix 64 bit compat problem. + +2009-07-24 Werner Koch + + * ccid-driver.c (parse_ccid_descriptor): Enable hack for SCR 3320. + +2009-07-21 Werner Koch + + * ccid-driver.c [HAVE_PTH]: Include pth.h. + (my_sleep): New. + (bulk_in): s/gnupg_sleep/my_sleep/. + +2009-07-20 Werner Koch + + * apdu.c [GNUPG_MAJOR_VERSION==1]: Include dynload.h. + +2009-07-16 Werner Koch + + * command.c (update_reader_status_file): Test for unplugged reader. + (TEST_CARD_REMOVAL): Ditto. + * app.c (select_application): Ditto. + * ccid-driver.c (bulk_out): Return CCID_DRIVER_ERR_NO_READER if a + reader was unplugged. + (struct ccid_driver_s): Turn nonnull_nad into an unsigned char. + Turn apdu_level, auto_ifsd, powered_off, has_pinpad into + bitfields. Add enodev_seen. + * apdu.c (apdu_prepare_exit): New. + (get_status_ccid): Return the status word and nut just -1. + * scdaemon.c (scd_exit): Call it. + +2009-07-13 Werner Koch + + * ccid-driver.c (struct ccid_driver_s): Add fields last_progress, + progress_cb and progress_cb_arg. + (ccid_set_progress_cb): New. + (print_progress): New. + (ccid_transceive): Call print_progress for wait time extensions. + * apdu.c (struct reader_table_s): Add field set_progress_cb. + (new_reader_slot): Clear that field. + (open_ccid_reader): Set it to .. + (set_progress_cb_ccid_reader): ... new fucntion. + * app.c (print_progress_line): New. + (lock_reader): Add arg CTRL to set a progress callback and + change all callers to provide it. + (unlock_reader): Remove the progress callback. + +2009-07-10 Werner Koch + + * iso7816.c (iso7816_compute_ds): Add args EXTENDED_MODE and LE. + Change all callers to use 0. + (iso7816_internal_authenticate): Add args EXTENDED_MODE and LE. + * app-openpgp.c (do_sign): Take exmode and Le from card + capabilities and pass them to iso7816_compute_ds. + (do_auth): Ditto for iso7816_internal_authenticate. + (change_keyattr): Reset CHV verification status. + +2009-07-09 Werner Koch + + * app-openpgp.c (change_keyattr): New. + (do_writekey): Call it. + + * app-openpgp.c (does_key_exist): Add arg GENERATING. Change + callers. + +2009-06-30 Werner Koch + + * ccid-driver.c (ccid_transceive): Set RESYNCING flag. + +2009-06-29 Werner Koch + + * ccid-driver.c (ccid_transceive): Add a hack to support extended + length for Omnikey readers. + (is_exlen_apdu): New. + (parse_ccid_descriptor): Track short+extended apdu exchange level. + +2009-06-18 Werner Koch + + * app-openpgp.c (verify_chv2): Remove special case for v2 cards. + (get_public_key): Use extended mode. + +2009-06-17 Werner Koch + + * iso7816.c (iso7816_get_data): Add arg EXTENDED_MODE. Change all + callers. + * app-openpgp.c (data_objects): Use bit flags. Add flag + TRY_EXTLENGTH. + (get_cached_data): Add arg TRY_EXTLEN and use it for iso7816_get_data. + (get_one_do): Use extended length APDU if necessary. + +2009-06-10 Werner Koch + + * app-openpgp.c (store_fpr): Change first arg to app_t; adjust + callers. Flush the cache. + +2009-06-09 Werner Koch + + * app-openpgp.c (do_readcert): Return NOT_FOUND if the retrieved + data has a length of zero. + (do_getattr): Add EXTCAP subkey "sm". + +2009-05-20 Werner Koch + + * app-openpgp.c (verify_chv2): Add case for v2 cards. + (verify_chv3): Factor some code out to .. + (build_enter_admin_pin_prompt): .. new. + (do_change_pin): Properly handle v2 cards. + +2009-05-19 Werner Koch + + * scdaemon.c (create_server_socket): Use SUN_LEN. + (JNLIB_NEED_AFLOCAL): Define. + +2009-05-13 Werner Koch + + * ccid-driver.c (abort_cmd): Add arg SEQNO and change callers. + (bulk_in): Retry on seqno mismatch. + + * apdu.c (send_le): Release result_buffer. + (apdu_send_direct): Implemend extended length. + * command.c (cmd_apdu): Add option "--exlen". + +2009-05-11 Werner Koch + + * apdu.c (send_le): Replace log_error by log_info. + +2009-05-08 Werner Koch + + * app-openpgp.c (do_genkey): Allow larger key sizes. + (do_decipher): Ditto. + * iso7816.c (do_generate_keypair): Add arg EXTENDED_MODE an LE. + (iso7816_generate_keypair, iso7816_read_public_key): Ditto. + Changed all callers. + * apdu.c (send_le): Implement extended length return values. + + * ccid-driver.c (bulk_in): Retry on EAGAIN. + (abort_cmd): Change seqno handling. + +2009-04-28 Werner Koch + + * app-help.c (app_help_count_bits): New. + + * app-nks.c (switch_application): Detect mass signature cards. + Take care of new NEED_APP_SELECT flag. + (do_sign): Don't allow mass signature cards. + (all_zero_p): New. + (do_readkey): New. + (app_select_nks): Register do_readkey. + +2009-04-01 Werner Koch + + * app-openpgp.c (do_setattr, do_writekey): Prepare for extended + length cards. + +2009-03-31 Werner Koch + + * command.c (percent_plus_unescape): Remove. + (cmd_setattr): Use percent_plus_unescape_inplace. + +2009-03-30 Werner Koch + + * app-nks.c (do_decipher): Make it work for TCOS 3. + * iso7816.c (iso7816_decipher): Add arg EXTENDED_MODE. + * apdu.c (apdu_send): Add arg EXTENDED_MODE and change all callers. + (apdu_send_le): Ditto. + (apdu_send_direct): Ditto, but not yet functional. + (send_le): Fix command chaining. Implement extended length option. + * ccid-driver.c (ccid_transceive): Remove restriction on apdu length. + (struct ccid_driver_s): Add field IFSC. + (ccid_get_atr): Set IFSC. + (ccid_transceive): Use negotiated IFSC and support S(IFS) command. + +2009-03-26 Werner Koch + + * command.c (cmd_pksign): Allow more hash algorithms. + + * scdaemon.h (MAX_DIGEST_LEN): Change to 64. + + * apdu.c (open_ccid_reader): Clear the is_to flag. + + * app-nks.c (filelist): Add field KID. + (do_getattr): Change standard authentication key. + (do_sign): Setup a security environment for TCOS 3 cards and support + all SHA-2 algorithms. + +2009-03-24 Werner Koch + + * command.c (struct server_local_s): Add flag + APP_CTX_MARKED_FOR_RELEASE. + (do_reset): Set the flag. + (open_card): Act on this flag. + * app-common.h (struct app_ctx_s): Add flag NO_REUSE. + (application_notify_card_reset): Set the flag. + * app.c (select_application, release_application): Take care of + that flag. + +2009-03-20 Werner Koch + + * app-nks.c (keygripstr_from_pk_file): Fix for TCOS 3 cards. + +2009-03-18 Werner Koch + + * apdu.c (open_pcsc_reader_wrapped): Use close_all_fds. + + * command.c (cmd_learn): Add option --keypairinfo. + * app.c (app_write_learn_status): Add arg FLAGS. + * app-common.h (struct app_ctx_s): Add arg FLAGS to LEARN_STATUS. + Change all implementors. + * app-p15.c (do_learn_status): Take care of flag bit 0. + * app-nks.c (do_learn_status, do_learn_status_core): Ditto. + +2009-03-10 Werner Koch + + * app-openpgp.c (send_key_attr): New. + (do_getattr): New attribute KEY_ATTR. + * command.c (send_status_direct): New. + +2009-03-06 Werner Koch + + * app-nks.c (do_learn_status): Factor code out to.. + (do_learn_status_core): .. new. + (do_readcert, do_sign, do_decipher): Switch to SigG if needed. + (verify_pin): Use DESC also for keypad based verify. + +2009-03-05 Werner Koch + + * app-openpgp.c (verify_a_chv): Remove special case for keypads. + (verify_chv3): Ditto. + + * app-nks.c (get_chv_status): New. + (parse_pwidstr): New. + (verify_pin): Add args PWID and DESC and use them. Remove the + CHV1 caching. + (do_change_pin): Allow PIN selection and add reset mode. + (do_learn_status): Use NKS-NKS3 tag for TCOS 3 cards. + (do_readcert, do_sign): Allow NKS-NKS3 tag. + +2009-03-04 Werner Koch + + * app-nks.c (do_getattr): New. + (app_select_nks): Register it. + (verify_pin): Factor some code out to... + (basic_pin_checks): New. + (do_change_pin): Call the basic check. + (app_select_nks): Move AID to .. + (aid_nks): .. new. + (aid_sigg): New. + (switch_application): New. + (do_getattr, do_learn_status, do_readcert, do_sign, do_decipher) + (do_change_pin, do_check_pin): Make sure we are in NKS mode. + +2009-03-03 Werner Koch + + * command.c (scd_command_handler): Remove dereference of STOPME + after free. + +2009-02-27 Werner Koch + + * app.c (get_supported_applications): New. + * command.c (cmd_getinfo): New subcommand "app_list" + (cmd_killscd): New. + (register_commands): Register command KILLSCD. + (struct server_local_s): Add field STOPME. + (scd_command_handler): Act upon this. + +2009-02-25 Werner Koch + + * apdu.c (apdu_get_status): Factor all code out to ... + (apdu_private_get_status): .. new. Add arg NO_ATR_RESET. + (apdu_connect): Call new function. + + * scdaemon.c: New option --debug-log-tid. + (tid_log_callback): New. + (main): Move debug-wait code after debug stream init. + +2009-02-24 Werner Koch + + * ccid-driver.c (ccid_get_atr): Move debug output to .. + (print_r2p_parameters): .. new. + (print_r2p_header, print_pr_data, print_r2p_unknown) + (print_r2p_datablock, print_r2p_slotstatus, print_r2p_escape) + (print_r2p_datarate): New. + (bulk_in): Call parameter printing. + (ccid_set_debug_level): Add debug level 3. + (convert_le_u16): New. + (print_p2r_header, print_p2r_iccpoweron, print_p2r_iccpoweroff) + (print_p2r_getslotstatus, print_p2r_xfrblock) + (print_p2r_getparameters, print_p2r_resetparameters) + (print_p2r_setparameters, print_p2r_escape, print_p2r_iccclock) + (print_p2r_to0apdu, print_p2r_secure, print_p2r_mechanical) + (print_p2r_abort, print_p2r_setdatarate, print_r2p_unknown): New. + (bulk_out): Add arg NO_DEBUG and change all callers to pass 0. + Call parameter printing. + (ccid_slot_status): Call with NO_DEBUG set. + (abort_cmd, send_escape_cmd, ccid_get_atr, ccid_get_atr) + (ccid_transceive_apdu_level, ccid_transceive) + (ccid_transceive_secure): Remove old debug print code. + +2009-02-12 Werner Koch + + * command.c (cmd_getinfo): Add new subcommand "deny_admin". + +2009-01-28 Werner Koch + + * scdaemon.c (main): Make --allow-admin the default and make the + option a dummy. + +2009-01-27 Werner Koch + + * app-geldkarte.c: Changed to use an AID. + + * app.c (app_munge_serialno): Add case for no serialno. + (app_get_serial_and_stamp): Ditto. + +2009-01-26 Werner Koch + + * app-geldkarte.c: New. + * Makefile.am (card_apps): Add new file. + * app.c (select_application): Test for geldkarte. + +2009-01-12 Werner Koch + + * command.c (send_client_notifications) [HAVE_W32_SYSTEM]: Fix + brackets. + +2009-01-08 Werner Koch + + * iso7816.c (iso7816_read_record, iso7816_read_binary): Pass 0 for + L_e because the problem with the CCID driver has gone. + (iso7816_apdu_direct): New. + + * app-nks.c (filelist): Add NKS_VER field. Add NKS 3 specific + entries. + (app_local_s, do_deinit): New. + (get_nks_version): New. + (app_select_nks): Setup local data. + (keygripstr_from_pk_file): Replace SLOT by APP and take care of + NKS version > 2. + (do_learn_status): Take care of NKS version. + +2009-01-05 Werner Koch + + * apdu.c (apdu_get_status): Save the last status. + +2008-12-18 Werner Koch + + * ccid-driver.c (abort_cmd): New. + (bulk_in): Call abort_cmd after severe errors. + + * apdu.c (reader_table_s): Add field ANY_STATUS. + (new_reader_slot): Clear it. + (apdu_get_status): Use ANY_STATUS to update the change counter. + Remove the use of the flag bit from LAST_STATUS everywhere. + * command.c (update_reader_status_file): Factor code out to ... + (send_client_notifications): New. Track signals already sent. + (update_reader_status_file): Shutdown the reader after a failed + apdu_get_status. + +2008-12-09 Werner Koch + + * scdaemon.c (main): Call i18n_init before init_common_subsystems. + +2008-12-08 Werner Koch + + * scdaemon.c (handle_connections): Sync ticker to the next full + interval. + (TIMERTICK_INTERVAL_USEC): Change to 500ms. + +2008-12-05 Werner Koch + + * app-openpgp.c (app_local_s): Add field ALGO_ATTR_CHANGE. + (app_select_openpgp): Parse new capability. + (show_caps): Show new capability. + +2008-12-03 Werner Koch + + * scdaemon.c (opts): Use ARGPARSE_ macros. Add option + --card-timeout. + * command.c (update_reader_status_file): Implement it. + +2008-11-18 Werner Koch + + * scdaemon.c (make_libversion): New. + (my_strusage): Print libgcrypt and libksba version. + +2008-11-03 Werner Koch + + * command.c (server_local_s): Add field DISCONNECT_ALLOWED. + (cmd_disconnect): Implement command. + (open_card): Reset disconnect flag. + (update_reader_status_file): Disconnect if allowed. + + * app-common.h (app_ctx_s): Remove INITIALIZED. Make REF_COUNT + unsigned. + * app.c (select_application): Remove INITIALIZED. + (app_write_learn_status, app_readcert, app_readkey, app_getattr) + (app_setattr, app_sign, app_decipher, app_writecert) + (app_writekey, app_get_challenge, app_change_pin, app_check_pin): + Replace INITIALIZED by REF_COUNT check. + (application_notify_card_removed): Rename to .. + (application_notify_card_reset): .. this. Change all callers. + * command.c (do_reset): Call application_notify_card_reset after + sending a reset. + (update_reader_status_file): Add arg SET_CARD_REMOVED. + (scd_update_reader_status_file): Pass true for new flag. + (do_reset): Pass false for new flag. + + * app.c (app_get_serial_and_stamp): Use bin2hex. + * app-help.c (app_help_get_keygrip_string): Ditto. + * app-p15.c (send_certinfo, send_keypairinfo, do_getattr): Ditto. + * app-openpgp.c (send_fpr_if_not_null, send_key_data) + (retrieve_fpr_from_card, send_keypair_info): Ditto. + * app-nks.c (keygripstr_from_pk_file): Ditto. + * command.c (cmd_apdu): Ditto. + +2008-10-21 Marcus Brinkmann + + * command.c (open_card): If connect error is SW_HOST_NO_CARD, + return a more descriptive error. + +2008-10-20 Werner Koch + + * pcsc-wrapper.c (read_32): Use provided arg and not stdin. Is + called with stdin, though. + (handle_close): Mark unused arg. + (handle_status, handle_reset): Ditto. + + * ccid-driver.c (ccid_check_card_presence): Mark not yet used arg. + + * scdaemon.c (scd_deinit_default_ctrl): Mark unused arg. + * command.c (cmd_unlock, cmd_restart, cmd_disconnect): Ditto. + * apdu.c (ct_get_status): Ditto. + (ct_send_apdu, pcsc_send_apdu_wrapped) + (apdu_open_remote_reader): Ditto. + * app.c (select_application): Ditto. + * app-openpgp.c (do_writecert, do_change_pin, do_writekey): Ditto. + * app-nks.c (do_change_pin, do_check_pin): Ditto. + +2008-10-16 Werner Koch + + * command.c (cmd_disconnect): New dummy command. + (register_commands): Register command. + +2008-10-15 Werner Koch + + * command.c (scd_command_handler): Return true if there is no more + active session. + * scdaemon.c (start_connection_thread): Set shutdown flag if + requested by command handler. + (main): Make PIPE_SERVER module global. + (handle_connections): Disable listen_fd if a shutdown is pending. + +2008-10-14 Werner Koch + + * apdu.c (reader_table_s): Add fields connect_card and + disconnect_card. + (new_reader_slot): Set them to NULL. + (apdu_connect, apdu_disconnect): New. + (apdu_close_reader, apdu_shutdown_reader): Call apdu_disconnect. + (connect_pcsc_card, disconnect_pcsc_card): new. + (reset_pcsc_reader_direct): Implement in terms of + disconnect_pcsc_card and connect_pcsc_card. + (apdu_get_atr): Return NULL if there is no ATR. + * sc-copykeys.c (main): Add call to apdu_connect. + * command.c (open_card): Ditto. + + * apdu.h (SW_HOST_ALREADY_CONNECTED): New. + (APDU_CARD_USABLE, APDU_CARD_PRESENT, APDU_CARD_ACTIVE): New. + * apdu.c: Replace constants by the new macros. + (open_pcsc_reader): Factor code out to ... + (open_pcsc_reader_direct, open_pcsc_reader_wrapped): New. + (reset_pcsc_reader): Factor code out to ... + (reset_pcsc_reader_direct, reset_pcsc_reader_wrapped): New. + (pcsc_get_status): Factor code out to ... + (pcsc_get_status_direct, pcsc_get_status_wrapped): New. + (pcsc_send_apdu): Factor code out to ... + (pcsc_send_apdu_direct, pcsc_send_apdu_wrapped): New. + (close_pcsc_reader): Factor code out to ... + (close_pcsc_reader_direct, close_pcsc_reader_wrapped): New. + + * command.c (update_reader_status_file): Open the reader if not + yet done. + + * scdaemon.c (TIMERTICK_INTERVAL_SEC, TIMERTICK_INTERVAL_USEC): + New to replace TIMERTICK_INTERVAL. Chnage from 2s (4 under W32) + to 250ms. + +2008-10-13 Werner Koch + + * command.c (option_handler) [W32]: Use strtoul with base 16. + (update_reader_status_file) [W32]: Set Event. + (scd_command_handler): Use INT2FD to silent warning. + +2008-09-29 Werner Koch + + * scdaemon.h (GCRY_MD_USER): Rename to GCRY_MODULE_ID_USER. + (GCRY_MD_USER_TLS_MD5SHA1): Rename to MD_USER_TLS_MD5SHA1 and + change all users. + +2008-09-28 Marcus Brinkmann + + * apdu.c (pcsc_get_status): Fix last change. + +2008-09-25 Werner Koch + + * app-openpgp.c (do_setattr): Do not allow setting of the reset + code. + (do_change_pin): Allow setting of the reset code. + +2008-09-24 Werner Koch + + * app-openpgp.c (verify_chv3): Set the did_chv3 flag which was + accidently removed on 2008-03-26. + (verify_chv2): Revert last change. + (do_change_pin): Do not change CHV2. Add reset code logic for v2 + cards. + * iso7816.c (iso7816_reset_retry_counter_with_rc): New. + + * app-openpgp.c (add_tlv, build_privkey_template): New. + (do_writekey): Support v2 keys and other key lengths than 1024. + * iso7816.c (iso7816_put_data_odd): New. + +2008-09-23 Werner Koch + + * app-openpgp.c (do_sign): Support SHA-2 digests. + (verify_chv2): No CHV auto-sync for v2 cards. + (do_auth): Allow 2048 bit keys. + (parse_algorithm_attribute): New. + (rsa_key_format_t): New. + (struct app_local_s): Add struct KEYATTR. + +2008-09-23 Marcus Brinkmann + + * apdu.c (pcsc_get_status): Be more relaxed with the usable flag + under Windows. + +2008-09-23 Werner Koch + + * app-openpgp.c (do_setattr): Use command chaining for long + values. + * iso7816.c (iso7816_put_data): Add arg EXTENDED_MODE. Change all + callers. + * apdu.c (apdu_send_simple): Add arg EXTENDED_MODE. Change all + callers. + (send_le): Implement command chaining. + * ccid-driver.c (ccid_transceive_apdu_level): Increase allowed + APDU size. + (ccid_transceive): Alow for APDUS of up to 259 bytes. + * apdu.h: Add new SW_ codes. + +2008-09-16 Werner Koch + + * command.c (cmd_writecert): New. + (register_commands): Register it. + * app-common.h (app_ctx_s): Add member WRITECERT. + * app.c (app_writecert): New. + * app-openpgp.c (do_writecert): New. + (parse_historical): New. + (show_extcap): New. + (dump_all_do): Print only the length of longs DOs. + * command.c (cmd_writekey, cmd_apdu, cmd_pksign) + (cmd_passwd): Replace open coding by skip_options. + +2008-08-30 Moritz + + * scdaemon.c (main): Use estream_asprintf instead of asprintf. + * command.c (update_reader_status_file): Likewise. + (cmd_serialno): Use estream_asprintf instead of asprintf + and xfree instead of free to release memory allocated + through (estream_)asprintf. + (cmd_learn): Likewise. + (pin_cb): Likewise. + * app-openpgp.c (get_public_key): Likewise. + +2008-08-18 Werner Koch + + * app-openpgp.c (do_setattr): Fix test for v2 cards. + +2008-08-11 Werner Koch + + * apdu.c (reset_pcsc_reader, open_pcsc_reader) + (reset_rapdu_reader, open_rapdu_reader): Allow ATRs of up to 33 + bytes. Provide maximum size of ATR buffer using DIM. Such long + ATR are never seen in reality but the PC/SC library of MAC OS X is + just too buggy. Reported by Ludovic Rousseau. Fixes bug #948. + +2008-07-30 Werner Koch + + * app-openpgp.c (verify_a_chv): Use xtrymalloc and make the prompt + for CHV2 more user friendly. + +2008-07-03 Werner Koch + + * app-openpgp.c (do_readcert): New. + (app_local_s): Add fields IS_V2 and MAX_CERTLEN_3. + (app_select_openpgp): Set them and register do_readcert. + (do_setattr): Allow storing of the certificate. + +2008-06-25 Werner Koch + + * app-dinsig.c (do_sign): Allow for SHA256. + +2008-06-24 Werner Koch + + * app-common.h (app_ctx_s): Renamed reset_mode parameter of + change_pin to mode_Flags and make it an unsigned int. + (APP_CHANGE_FLAG_RESET, APP_CHANGE_FLAG_NULLPIN): New. + * app-openpgp.c (do_change_pin): Adjust for that. + + * command.c (cmd_passwd): Add option --nullpin. + * app-nks.c (do_check_pin, do_change_pin): New. + (app_select_nks): Register new functions. + +2008-04-21 Moritz Schulte (wk) + + * app-openpgp.c (verify_a_chv): Make use of the default CHV flag. + +2008-03-26 Werner Koch + + * app-openpgp.c (verify_chv3): Support the keypad. + +2008-02-09 Marcus Brinkmann + + * scdaemon.c (main): Use CONFIG_FILENAME as filename if it is set + in gpgconf-list output. + +2007-12-10 Werner Koch + + * app-openpgp.c (do_decipher): Take care of cryptograms shorter + that 128 bytes. Fixes bug#851. + +2007-11-14 Werner Koch + + * scdaemon.c (main): Pass STANDARD_SOCKET flag to + create_server_socket. + +2007-11-13 Werner Koch + + * scdaemon.c (start_connection_thread): Do not call + assuan_sock_check_nonce if we are running in --server mode. + +2007-11-07 Werner Koch + + * scdaemon.h: Remove errors.h. + +2007-10-02 Werner Koch + + * command.c (cmd_getinfo): Add "pid" subcommand. + +2007-10-01 Werner Koch + + * scdaemon.c (create_server_socket): Use Assuan socket wrappers + and remove Windows specific code. + (socket_nonce): New. + (start_connection_thread): Check nonce. + +2007-09-14 Marcus Brinkmann + + * scdaemon.c (main): New variable STANDARD_SOCKET, which is 1 for + W32 targets. Use it for create_socket_name. + +2007-08-07 Werner Koch + + * tlv.c, tlv.h: Move to ../common/. + +2007-08-02 Werner Koch + + * scdaemon.c: Include gc-opt-flags.h and remove their definition + here. + +2007-08-01 Werner Koch + + * apdu.c (send_le): Implement exact length hack. Suggested by + Sten Lindgren. + +2007-07-05 Werner Koch + + * command.c (has_option_name, skip_options): New. + (cmd_genkey): Add option --timestamp. + (cmd_writekey): Enter confidential mode while inquiring the key data. + + * app.c (app_genkey): Add arg CREATETIME. + * app-common.h (app_ctx_s): Likewise + * app-openpgp.c (do_genkey): Ditto. Use it. + + +2007-07-04 Werner Koch + + * command.c (cmd_getinfo): New subcommand "version". + + * scdaemon.c (TIMERTICK_INTERVAL): New. + (handle_connections) [W32]: Enable a dummy sigs event. + (handle_connections): Use a proper count for select and not + FD_SETSIZE. + (fixed_gcry_pth_init, main): Kludge to fix pth initialization. + +2007-06-21 Werner Koch + + * scdaemon.h (ctrl_t): Remove. It is now declared in ../common/util.h. + +2007-06-18 Marcus Brinkmann + + * scdaemon.c (main): Percent escape output of --gpgconf-list. + +2007-06-12 Werner Koch + + * scdaemon.c (main): Replace some calls by init_common_subsystems. + +2007-06-11 Werner Koch + + * Makefile.am (scdaemon_LDADD): Use libcommonpth macro. + + * command.c (initialize_module_command): New. + * scdaemon.c (main) [W32]: Do not use sigpipe code. + (main): Call initialize_module_command. + +2007-06-06 Werner Koch + + * app-openpgp.c (do_sign): Fix arithmetic on void*. + + * app.c (dump_mutex_state) [W32]: Handle the W32Pth case. + + * apdu.c: Remove dynload.h. + + * scdaemon.c (i18n_init): Remove. + +2007-04-20 Werner Koch + + * sc-copykeys.c (my_gcry_logger): Removed. + (main): Call setup_libgcrypt_logging helper. + * scdaemon.c (my_gcry_logger): Removed. + (main): Call setup_libgcrypt_logging helper. + +2007-04-03 Werner Koch + + * command.c (cmd_getinfo): New subcommand "reader_list". + * ccid-driver.c (scan_or_find_devices): Ignore EBUSY in scan mode + for special transports. + +2007-03-07 Werner Koch + + * app-dinsig.c: Include i18n.h. + (verify_pin): Support PIN pads. + * app-nks.c (verify_pin): Ditto. + + * ccid-driver.c (bulk_in): Handle time extension before checking + the message type. + (ccid_transceive_secure): Support the Cherry XX44 keyboard. + Kudos to the nice folks at Cherry for helping with that. + +2007-02-18 Werner Koch + + * scdaemon.c (DEFAULT_PCSC_DRIVER): Add a default for OS X. + +2007-01-25 Werner Koch + + * Makefile.am (scdaemon_LDADD): Added LIBICONV. Noted by Billy + Halsey. + +2006-12-21 Werner Koch + + * app-openpgp.c (verify_chv2): Factored most code out into... + (verify_a_chv): ... new. + (do_sign): Factored verification code out to new function and + take care of a keypad entered PIN. + (compare_fingerprint): Print an additional diagnostic. + +2006-11-28 Werner Koch + + * apdu.c (send_le, apdu_send_direct): Increase RESULTLEN to 258 to + allow for full 256 byte and the status word. This might break + some old PC/SC drivers or cards, but we will see. Suggested by + Kenneth Wang. + +2006-11-23 Werner Koch + + * command.c (scd_command_handler): Fixed use of CTRL. + +2006-11-21 Werner Koch + + * Makefile.am (libexec_PROGRAMS): Put pscs-wrapper into libexec. + Renamed to gnupg-pcsc-wrapper. + * apdu.c (open_pcsc_reader): Use GNUPG_LIBEXECDIR to accces the + wrapper. Suggested by Eric Dorland. + +2006-11-20 Werner Koch + + * app-openpgp.c (verify_chv2): Support for keypads (only CHV2). + + * ccid-driver.c (ccid_transceive_secure): Made it work for Kaan + and SCM. + +2006-11-17 Werner Koch + + * ccid-driver.c (scan_or_find_devices): Use DEBUGOUT_2 instead of + log_debug. Removed few other log_debug. + + * iso7816.c (iso7816_check_keypad): Allow for a SW of 0. + + * command.c (pin_cb): New mode to prompt for a keypad entry. + + * scdaemon.c (main) : Add disable-keypad. + +2006-11-15 Werner Koch + + * app-p15.c (read_ef_odf): Cast one printf arg. + + * scdaemon.h (struct server_control_s): Add field THREAD_STARTUP. + * command.c (scd_command_handler): Add new arg CTRL. + * scdaemon.c (scd_init_default_ctrl): Made static. + (scd_deinit_default_ctrl): New. + (start_connection_thread): Call init/deinit of ctrl. + (handle_connections): Allocate CTRL. + + * apdu.c (PCSC_ERR_MASK): New. + (reset_pcsc_reader, pcsc_get_status, pcsc_send_apdu) + (close_pcsc_reader, open_pcsc_reader): Use it after shifting error + values. Reported by Henrik Nordstrom. Fixes bug #724. + +2006-10-24 Werner Koch + + * scdaemon.h (GCRY_MD_USER_TLS_MD5SHA1): New. + (MAX_DIGEST_LEN): Increased to 36. + * app-p15.c (do_sign): Support for TLS_MD5SHA1. + (do_auth): Detect TLS_MD5SHA1. + (do_sign): Tweaks for that digest. + +2006-10-23 Werner Koch + + * scdaemon.c (main): New command --gpgconf-test. + +2006-10-17 Werner Koch + + * Makefile.am (scdaemon_LDADD): Link against libcommonpth. + +2006-10-12 Werner Koch + + * apdu.c: Include pth.h after unistd.h for the sake of newer Pth + versions. + +2006-10-11 Werner Koch + + * app-openpgp.c (do_sign): Redirect to do_auth for OpenPGP.3. + +2006-10-06 Werner Koch + + * Makefile.am (AM_CFLAGS): Use PTH version of libassuan. + (scdaemon_LDADD): Ditto. + + * scdaemon.h (send_status_info): Mark with sentinel attribute. + +2006-10-02 Marcus Brinkmann + + * command.c (update_reader_status_file): Increase buffer of + NUMBUF2 (fixing typo). + +2006-09-24 Marcus Brinkmann + + * app-openpgp.c (do_sign): Advance INDATA by the SHA1 resp. RMD160 + prefix length. + +2006-09-14 Werner Koch + + Replaced all call gpg_error_from_errno(errno) by + gpg_error_from_syserror(). + + * command.c (scd_command_handler): Replaced + init_connected_socket_server by init_socket_server_ext. + +2006-09-07 Werner Koch + + * command.c (update_reader_status_file): Execute an event handler + if available. + +2006-09-06 Werner Koch + + * apdu.c (pcsc_end_transaction): + * pcsc-wrapper.c (pcsc_end_transaction: Fixed dclaration. + Reported by Bob Dunlop. + + * scdaemon.h (CTRL,APP): Removed and changed everywhere to + ctrl_t/app_t. + + Replaced all Assuan error codes by libgpg-error codes. Removed + all map_to_assuan_status and map_assuan_err. + + * scdaemon.c (main): Call assuan_set_assuan_err_source to have Assuan + switch to gpg-error codes. + * command.c (set_error): Adjusted. + +2006-09-02 Marcus Brinkmann + + * command.c (get_reader_slot): Return the slot_table index, not + the APDU slot number. + (update_reader_status_file): Use the slot_table index in the + update_card_removed invocation. + +2006-09-01 Marcus Brinkmann + + * command.c (cmd_getinfo): Handle status command. + +2006-08-30 Marcus Brinkmann + + * command.c (do_reset): Delay resetting CTRL->reader_slot until + after update_card_removed invocation. + +2006-08-28 Marcus Brinkmann + + * app-openpgp.c (do_decipher, do_sign): Allow "OPENPGP.2" + resp. "OPENPGP.1" for KEYIDSTR. + +2006-08-21 Werner Koch + + * pcsc-wrapper.c (handle_open, handle_close): Reset card and + protocol on error/close. + (handle_status): Don't set the state if the state is unknown. + (handle_reset): Ignore an error if already disconnected. May + happen due to system wake-up after hibernation. Suggested by Bob + Dunlop. + +2006-06-28 Werner Koch + + * app-openpgp.c (do_writekey): Fixed computation of memmove + length. This led to garbled keys if E was larger than one byte. + Thanks to Achim Pietig for hinting at the garbled E. + +2006-06-09 Marcus Brinkmann + + * Makefile.am (scdaemon_LDADD): Add $(NETLIBS). + +2006-04-14 Marcus Brinkmann + + * app.c (select_application): Cover up a slot mismatch error in + case it happens (it shouldn't happen). + (release_application): Use APP->slot. Lock the reader. + (application_notify_card_removed): Lock the reader. + +2006-04-11 Werner Koch + + * command.c (hex_to_buffer): New. + (cmd_apdu): New. + +2006-04-03 Werner Koch + + * scdaemon.c [__GLIBC__]: Default to libpcsclite.so.1. + +2006-03-21 Werner Koch + + * command.c (cmd_pksign): Add --hash option. + +2006-03-01 Werner Koch + + * command.c (status_file_update_lock): New. + (scd_update_reader_status_file): Use lock and factor existing code + out to .. + (update_reader_status_file): .. this. + (do_reset): Use the lock and call update_reader_status_file. + +2006-02-20 Werner Koch + + * apdu.c (open_pcsc_reader): Fixed double free. Thanks to Moritz. + +2006-02-09 Werner Koch + + * command.c (get_reader_slot, do_reset) + (scd_update_reader_status_file): Rewrote. + + * app.c (release_application): Factored code out to .. + (deallocate_app): new function. + (select_application): Introduce new saved application stuff. + (application_notify_card_removed): New. + * command.c (update_card_removed): Call it here. + (do_reset): And here. + + * app.c (check_application_conflict): New. + * command.c (open_card): Use it here. + (cmd_restart): New command. + + * command.c (cmd_lock): Fixed --wait option to actually terminate. + +2006-02-08 Werner Koch + + * ccid-driver.c (ccid_get_atr): Read Parameter and select T=1 + using these parameters. + (scan_or_find_devices): Check for NULL r_fd. + +2006-02-02 Werner Koch + + * ccid-driver.c (special_transport): New + (ccid_open_reader, do_close_reader, ccid_shutdown_reader) + (bulk_out, bulk_in): Add support for CardMan 4040 reader. + + * ccid-driver.c (scan_or_find_devices): Factored most code out to + (scan_or_find_usb_device): .. new. + (make_reader_id): Fixed vendor mask. + +2006-01-01 Werner Koch + + * app-openpgp.c (do_sign): Give user error if hash algorithm is + not supported by the card. + +2005-12-06 Werner Koch + + * apdu.c (open_pcsc_reader): Check that pcsc-wrapper is actually + installed. + +2005-11-23 Werner Koch + + * app-nks.c (verify_pin): Give a special error message for a Nullpin. + +2005-10-29 Werner Koch + + * ccid-driver.c (send_escape_cmd): New args RESULT, RESULTLEN and + RESULTMAX. Changed all callers. + (ccid_transceive_escape): New. + +2005-10-27 Werner Koch + + * apdu.c [__CYGWIN__]: Make cygwin environment similar to _WIN32. + Suggested by John P. Clizbe. + * scdaemon.c [__CYGWIN__]: Set default PC/SC driver to winscard.dll. + +2005-10-19 Werner Koch + + * ccid-driver.h (CCID_DRIVER_ERR_NO_KEYPAD): New. + * apdu.h (SW_HOST_NO_KEYPAD): New. + * iso7816.h (struct iso7816_pininfo_s): New. + * iso7816.c (map_sw): Support new code. + (iso7816_check_keypad): New. + (iso7816_verify_kp, iso7816_change_reference_data_kp) + (iso7816_reset_retry_counter_kp): New. Extended versions of the + original functions. + * apdu.c (host_sw_string): Support new code. + (reader_table_s): New field CHECK_KEYPAD. + (new_reader_slot, open_ct_reader, open_pcsc_reader) + (open_ccid_reader, open_rapdu_reader): Initialize it. + (check_ccid_keypad): New. + (apdu_check_keypad): New. + (apdu_send_le): Factored all code out to ... + (send_le): .. new. Takes an additional arg; changed all callers + of the orginal function to use this one with a NULL for the new + arg. + (apdu_send_simple_kp): New. + (ct_send_apdu, pcsc_send_apdu, my_rapdu_send_apdu) + (send_apdu_ccid): New arg PININFO. + (send_apdu_ccid): Use the new arg. + + * scdaemon.c: New option --disable-keypad. + +2005-10-08 Marcus Brinkmann + + * Makefile.am (scdaemon_LDADD): Add ../gl/libgnu.a after + ../common/libcommon.a. + +2005-09-20 Werner Koch + + * app-dinsig.c (verify_pin): Try ISO 9564 BCD encoding. + + * iso7816.c (iso7816_select_application): Add arg FLAGS. Changed + all callers to pass 0. + * app-openpgp.c (app_select_openpgp): But this one requires a + special flag. + + * app-p15.c (app_select_p15): Don't use select application for the + BELPIC. + +2005-09-09 Werner Koch + + * pcsc-wrapper.c (main): Removed bogus free. + + * app-p15.c (do_auth): New. + (do_getattr): New attribs $AUTHKEYID and $DISPSERIALNO. + * app-openpgp.c (do_getattr): Ditto. + +2005-09-08 Werner Koch + + * app-openpgp.c (do_getattr): New key $AUTHKEYID. + +2005-09-06 Werner Koch + + * app-p15.c (do_sign): Tweaked for BELPIC cards. + (read_home_df): New arg R_BELPIC. + (app_select_p15): Set card type for BELPIC. + +2005-09-05 Werner Koch + + * iso7816.c (iso7816_select_path): New. + * app-p15.c (select_ef_by_path): Allow for direct path selection. + (app_select_p15): Try using the Belgian variant of pkcs#15. + (read_home_df): New. + (read_ef_odf): Generalized. + (read_ef_tokeninfo): New. + (read_p15_info): Set serialnumber from TokenInfo. + (app_select_p15): Don't munge serialNumber - that must be done + only once. + + * iso7816.c (iso7816_read_binary): Use Le=0 when reading all + data. Handle 6C00 error and take 6B00 as indication for EOF. + * apdu.h (SW_EXACT_LENGTH_P): New. + * apdu.c (new_reader_slot, reset_pcsc_reader, pcsc_get_status) + (open_pcsc_reader): Set new reader state IS_T0. + (apdu_send_le): When doing T=0 make sure not to send Lc and Le. + Problem reported by Carl Meijer. + (apdu_send_direct): Initialize RESULTLEN. + * pcsc-wrapper.c (handle_status): Return the current protocol as + a new third word. + +2005-08-05 Werner Koch + + * apdu.c (open_rapdu_reader): Set the reader number. + +2005-07-05 Werner Koch + + * app-openpgp.c (do_readkey): Return a mallcoed copy of the key as + required by the description. Thanks to Moritz for tracking this + problem down. + +2005-06-21 Werner Koch + + * scdaemon.c (main): ifdef call to ccid_set_debug_level. + + * apdu.c (reset_pcsc_reader, open_pcsc_reader): Cast size_t to + ulong for printf. + +2005-06-06 Werner Koch + + * scdaemon.c (main): New option --debug-allow-core-dump. + +2005-06-03 Werner Koch + + * scdaemon.c (handle_connections): Make sure that the signals we + are handling are not blocked.Block signals while creating new + threads. + (handle_connections): Include the file descriptor into the name of + the thread. + +2005-06-02 Werner Koch + + * app.c (app_dump_state, dump_mutex_state): New. + * scdaemon.c (handle_signal): Print it on SIGUSR1. + + * app-openpgp.c (do_writekey): Typo fix. + + * command.c (open_card): Check for locked state even if an + application context is available. + + * app-common.h: Add REF_COUNT field. + * app.c (release_application, select_application): Implement + reference counting to share the context beween connections. + + * app.c (lock_reader, unlock_reader): Take SLOT instead of APP as + argument. Changed all callers. + (select_application): Unlock the reader on error. This should fix + the hangs I noticed last week. + + * scdaemon.h: Removed card_ctx_t cruft. + +2005-06-01 Werner Koch + + * scdaemon.c: Include mkdtemp.h. + +2005-05-31 Werner Koch + + * tlv.c [GNUPG_MAJOR_VERSION==1]: Define constants instead of + including a gnupg 1.4 header. + +2005-05-30 Werner Koch + + * tlv.c: Add hack to compile without gpg-error.h when used with + GnuPG 1.4. + +2005-05-23 Werner Koch + + * Makefile.am: Do not build sc-copykeys anymore. + + * app-openpgp.c (app_openpgp_storekey, app_openpgp_readkey) + (app_openpgp_cardinfo): Removed. + + * ccid-driver.c (parse_ccid_descriptor): SCR335 FW version 5.14 is + good. + (do_close_reader): Never do a reset. The caller should instead + make sure that the reader has been closed properly. The new retry + code in ccid_slot_status will make sure that the readersatrts up + fine even if the last process didn't closed the USB connection + properly. + (ccid_get_atr): For certain readers try switching to ISO mode. + Thanks to Ludovic Rousseau for this hint and the magic numbers. + (print_command_failed): New. + (bulk_in): Use it here. Add new arg NO_DEBUG. + (ccid_slot_status): Disabled debugging. + +2005-05-21 Werner Koch + + * scdaemon.c (handle_signal): Print thread info on SIGUSR1. + +2005-05-20 Werner Koch + + * ccid-driver.c: Replaced macro DEBUG_T1 by a new debug level. + (parse_ccid_descriptor): Mark SCR335 firmware version 5.18 good. + (ccid_transceive): Arghhh. The seqno is another bit in the + R-block than in the I block, this was wrong at one place. + + * scdaemon.c: New options --debug-ccid-driver and + --debug-disable-ticker. + + * app-openpgp.c (do_genkey, do_writekey): Factored code to check + for existing key out into .. + (does_key_exist): .. New function. + +2005-05-19 Werner Koch + + * tlv.c (parse_sexp): New. + + * command.c (cmd_writekey): New. + * app.c (app_writekey): New. + * app-common.c (app_t): Add function ptr WRITEKEY. + * app-openpgp.c (do_writekey): New. + + * app-openpgp.c (do_readkey) [GNUPG_MAJOR_VERSION==1]: Return error. + * app-common.h (app_t) [GNUPG_MAJOR_VERSION==1]: Add a field to + store the Assuan context. + +2005-05-17 Werner Koch + + * scdaemon.c: Removed non-pth code paths. + (create_socket_name, create_server_socket): New. Taken from + ../agent/gpg-agent. + (cleanup): Changed to adjust for SOCKET_NAME now being malloced. + (ticker_thread): Always use pth_event_occurred; it is again + defined for all decent PTH versions. + (handle_connections): New. Based on the gpg-agent code. + (start_connection_thread): Ditto. + (ticker_thread): Removed. + (cleanup_sh): Removed. + (main): Run the handler for the pipe server in a separate + thread. This replaces the old ticker thread. + (scd_get_socket_name): New. + * command.c (cmd_getinfo): New command GETINFO. + (scd_command_handler): Renamed argument and changed code to use an + already connected FD. + +2005-05-15 Werner Koch + + * app.c, app-common.h, app-nks.c, app-p15.c, app-dinsig.c + * app-openpgp.c: Change most function return types from int to + gpg_error_t. + * command.c (pin_cb): Ditto. + * sc-copykeys.c (pincb): Ditto. + + * app.c (lock_reader, unlock_reader): New. Changed call handler + wrappers to make use of these functions. + +2005-05-07 Werner Koch + + * ccid-driver.c (do_close_reader): Don't do a reset before close. + Some folks reported that it makes the SCR335 hang less often. + Look at the source on how to re-enable it. + +2005-04-27 Werner Koch + + * app-p15.c (micardo_mse): New. + (do_sign): Call it. + * iso7816.c (iso7816_manage_security_env): Allow passing DATA as + NULL to indicate an empty Lc. + * tlv.c (find_tlv): Check that a found object fits into the + buffer. + (find_tlv_unchecked): New as replacement for the old non-checking + variant. + * app.c (select_application): Keep on using the non-checking + variant. + * app-openpgp.c (get_one_do, dump_all_do): Ditto. + + + Removal of the old OpenSC based code. + + * app-p15.c: New. Basic support for pkcs15 cards without OpenSC. + There are quite a couple of things missing but at least I can use + my old TCOS cards from the Aegypten-1 development for signing. + * app.c (select_application): Detect pkcs15 applications. + * Makefile.am (scdaemon_SOURCES): Removed card.c, card-common.h + and card-p15.c because they are now obsolete. Added app-p15.c. + Removed all OpenSC stuff. + * command.c (do_reset, open_card, cmd_serialno, cmd_learn) + (cmd_readcert, cmd_readkey, cmd_pksign, cmd_pkdecrypt): Removed + all special cases for the old card.c based mechanisms. + * scdaemon.c, apdu.c: Removed all special cases for OpenSC. + +2005-04-20 Werner Koch + + * command.c: Use GPG_ERR_LOCKED instead of EBUSY. + +2005-04-14 Werner Koch + + * app-openpgp.c (retrieve_key_material): Rewritten. Return a + proper error code. + (retrieve_next_token): Removed. + (retrieve_fpr_from_card): Rewritten to make use of DO caching and + to take the KEYNO as arg. + (get_public_key): Renamed variable for clarity. + +2005-04-12 Werner Koch + + Basic support for several sessions. + + * command.c (scd_command_handler): Replace the primary_connection + stuff by a real connection list. Release the local context on + exit. + (scd_update_reader_status_file): Update accordingly. Send signal + to all connections who registered an event signal. + (cmd_lock, cmd_unlock, register_commands): New commands LOCK and + UNLOCK. + (cmd_setdata, cmd_pksign, cmd_pkauth, cmd_pkdecrypt, cmd_setattr) + (cmd_genkey, cmd_passwd, cmd_checkpin): Return an error if reader + is locked. + (do_reset): Handle locking. + (open_card): Ditto. Share the reader slot with other sessions. + (get_reader_slot): New. + (update_card_removed): New. Use it in the TEST_CARD_REMOVAL macro. + +2005-04-07 Werner Koch + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * scdaemon.c (main): Use default_homedir(). + +2004-12-18 Werner Koch + + * 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 + + * 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 + + * Makefile.am (pkglib_PROGRAMS): Build only for W32. + +2004-10-22 Werner Koch + + * app-openpgp.c (verify_chv3): The minium length for CHV3 is + 8. Changed string to match the other ones. + +2004-10-21 Werner Koch + + * 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 + + * 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 + + * ccid-driver.c (ccid_get_atr): Reset T=1 state info. + +2004-10-14 Werner Koch + + * app-openpgp.c (parse_login_data): New. + (app_select_openpgp): Call it. + (do_setattr): Reparse it after change. + +2004-10-06 Werner Koch + + * 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 + + * ccid-driver.c (send_escape_cmd): New. + +2004-09-30 Werner Koch + + * 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 + + 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 + + * 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 + + * app-openpgp.c (app_select_openpgp): Its app_munge_serialno and + not app_number_serialno. + +2004-08-20 Werner Koch + + * 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 + + * 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 + + * apdu.c: Include . + + * Makefile.am: Use @DL_LIBS@ instead of -ldl. + +2004-07-22 Werner Koch + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * app-openpgp.c (app_openpgp_readkey): Fixed check for valid + exponent. + +2004-06-18 Werner Koch + + * sc-investigate.c (my_read_line): Renamed from read_line. + +2004-06-16 Werner Koch + + * 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 + + * app-openpgp.c (do_setattr): Sync FORCE_CHV1. + +2004-04-27 Werner Koch + + * app-common.h: Do not include ksba.h for gnupg 1. + +2004-04-26 Werner Koch + + * 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 + + * scdaemon.c (main): For now, always print default filename for + --gpgconf-list, and never /dev/null. + +2004-04-21 Werner Koch + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * scdaemon.c (main) : Fixed output for pcsc_driver. + +2004-03-17 Werner Koch + + * 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) : Fixed default value quoting. + +2004-03-16 Werner Koch + + * 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 + + * 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 + + * iso7816.c (iso7816_read_record): New arg SHORT_EF. Changed all + callers. + +2004-02-18 Werner Koch + + * 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 + + * Makefile.am: Include cmacros.am for common flags. + +2004-01-29 Werner Koch + + * command.c (reset_notify): Release the application context and + close the reader. + +2004-01-28 Werner Koch + + * iso7816.c (iso7816_manage_security_env): New. + (iso7816_decipher): Add PADIND argument. + +2004-01-27 Werner Koch + + * 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 + + * 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 + + * 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 + + * apdu.c (apdu_send_le): Treat SW_EOF_REACHED as a warning. + +2004-01-20 Werner Koch + + * 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 + + * 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 + + * 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 + + * card-p15.c (p15_enum_keypairs): Replaced KRC by RC. + * card-dinsig.c (dinsig_enum_keypairs): Ditto. + +2003-12-16 Werner Koch + + * scdaemon.c (main): Set the prefixes for assuan logging. + +2003-11-17 Werner Koch + + * scdaemon.c, scdaemon.h: New options --allow-admin and --deny-admin. + * app-openpgp.c (verify_chv3): Check it here. + +2003-11-12 Werner Koch + + Adjusted for API changes in Libksba. + +2003-10-30 Werner Koch + + * apdu.c (close_ct_reader, close_pcsc_reader): Implemented. + (get_ccid_error_string): New. Not very useful messages, though. + +2003-10-25 Werner Koch + + * ccid-driver.c (ccid_open_reader): Return an error if no USB + devices are found. + + * command.c (cmd_genkey, cmd_passwd): Fixed faulty use of + !spacep(). + + * apdu.c (apdu_open_reader): Hacks for PC/SC under Windows. + +2003-10-20 Werner Koch + + * command.c (cmd_checkpin): New. + (register_commands): Add command CHECKPIN. + * app.c (app_check_pin): New. + * app-openpgp.c (check_against_given_fingerprint): New. Factored + out that code elsewhere. + (do_check_pin): New. + +2003-10-10 Werner Koch + + * 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. + +2003-10-09 Werner Koch + + * ccid-driver.c (ccid_transceive): Add T=1 chaining for sending. + +2003-10-08 Werner Koch + + * app-openpgp.c (do_getattr): Support SERIALNO and AID. + +2003-10-01 Werner Koch + + * 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 + +2003-09-30 Werner Koch + + * command.c (cmd_getattr): New command GETATTR. + * app.c (app_setattr): New. + (do_getattr): New. + (do_learn_status): Reimplemented in terms of do_getattr. + + * 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. + +2003-09-28 Werner Koch + + * app-openpgp.c (dump_all_do): Use gpg_err_code and not gpg_error. + +2003-09-19 Werner Koch + + * ccid-driver.c (parse_ccid_descriptor): New. + (read_device_info): New. + (ccid_open_reader): Check that the device has all required features. + +2003-09-06 Werner Koch + + * scdaemon.c (main): --pcsc-driver again defaults to pcsclite. + David Corcoran was so kind to remove the GPL incompatible + advertisng clause from pcsclite. + * apdu.c (apdu_open_reader): Actually make pcsc-driver option work. + +2003-09-05 Werner Koch + + * ccid-driver.c: More work, data can now actually be retrieved. + * ccid-driver.c, ccid-driver.h: Alternativley allow use under BSD + conditions. + +2003-09-02 Werner Koch + + * scdaemon.c, scdaemon.h: New option --pcsc-ccid. + * ccid-driver.c, ccid-driver.h: New but far from being useful. + * Makefile.am: Add above. + * apdu.c: Add support for that ccid driver. + +2003-08-26 Timo Schulz + + * apdu.c (new_reader_slot): Only set 'is_osc' when OpenSC + is used. + +2003-08-25 Werner Koch + + * command.c (cmd_setattr): Use a copy of LINE. + (cmd_genkey): Use a copy of KEYNO. + (cmd_passwd): Use a copy of CHVNOSTR. + (cmd_pksign, cmd_pkauth, cmd_pkdecrypt): s/strdup/xtrystrdup/. + +2003-08-19 Werner Koch + + * scdaemon.c, scdaemon.h: New option --pcsc-driver. + * apdu.c (apdu_open_reader): Use that option here instead of a + hardcoded one. + +2003-08-18 Werner Koch + + * Makefile.am: Add OPENSC_LIBS to all programs. + + * scdaemon.c, scdaemon.h: New option --disable-opensc. + * card.c (card_open): Implement it. + * apdu.c (open_osc_reader, osc_send_apdu): New. + (apdu_open_reader) [HAVE_OPENSC]: Use the opensc driver if not + disabled. + (error_string) [HAVE_OPENSC]: Use sc_strerror. + (send_apdu) [HAVE_OPENSC]: Call osc_apdu_send. + + * card-p15.c (p15_enum_keypairs, p15_prepare_key): Adjusted for + libgpg-error. + +2003-08-14 Timo Schulz + + * apdu.c (ct_activate_card): Change the code a little to avoid + problems with other readers. + * Always use 'dynload.h' instead of 'dlfcn.h'. + +2003-08-05 Werner Koch + + * app-openpgp.c (dump_all_do): Don't analyze constructed DOs after + an error. + +2003-08-04 Werner Koch + + * app.c (app_set_default_reader_port): New. + (select_application): Use it here. + * scdaemon.c (main): and here. + * sc-copykeys.c: --reader-port does now take a string. + * sc-investigate.c, scdaemon.c: Ditto. + * apdu.c (apdu_open_reader): Ditto. Load pcsclite if no ctapi + driver is configured. Always include code for ctapi. + (new_reader_slot): Don't test for already used ports and remove + port arg. + (open_pcsc_reader, pcsc_send_apdu, pcsc_error_string): New. + (apdu_send_le): Changed RC to long to cope with PC/SC. + + * scdaemon.c, scdaemon.h: New option --ctapi-driver. + * sc-investigate.c, sc-copykeys.c: Ditto. + +2003-07-31 Werner Koch + + * Makefile.am (scdaemon_LDADD): Added INTLLIBS. + +2003-07-28 Werner Koch + + * app-openpgp.c (do_setattr): Change implementation. Allow all + useful DOs. + +2003-07-27 Werner Koch + + Adjusted for gcry_mpi_print and gcry_mpi_scan API change. + +2003-07-24 Werner Koch + + * app-openpgp.c (do_learn_status): Print more status information. + (app_select_openpgp): Store the card version. + (store_fpr): Add argument card_version and fix DOs for old cards. + (app_openpgp_storekey): Likewise. + +2003-07-23 Werner Koch + + * command.c (cmd_pkauth): New. + (cmd_setdata): Check whether data was given at all to avoid + passing 0 to malloc. + + * app.c (app_auth): New. + * app-openpgp.c (do_auth): New. + +2003-07-22 Werner Koch + + * command.c (cmd_passwd): New. + * app.c (app_change_pin): New. + * app-openpgp.c (do_change_pin): New. + * iso7816.c (iso7816_reset_retry_counter): Implemented. + + * sc-investigate.c (main): New option --gen-random. + * iso7816.c (iso7816_get_challenge): Don't create APDUs with a + length larger than 255. + +2003-07-17 Werner Koch + + * command.c (cmd_random): New command RANDOM. + + * iso7816.c (map_sw): New. Use it in this file to return + meaningful error messages. Changed all public fucntions to return + a gpg_error_t. + (iso7816_change_reference_data): New. + * apdu.c (apdu_open_reader): Use faked status words for soem + system errors. + +2003-07-16 Werner Koch + + * apdu.c (apdu_send_simple): Use apdu_send_le so that we can + specify not to send Le as it should be. + +2003-07-15 Werner Koch + + * Makefile.am: Add sc-copykeys program. + * sc-copykeys.c: New. + * app-openpgp.c (app_openpgp_storekey): New. + (app_openpgp_cardinfo): New. + (count_bits): New. + (store_fpr): And use it here to get the actual length in bit. + +2003-07-03 Werner Koch + + * app-openpgp.c (do_setattr): Add setting of the URL. + (app_select_openpgp): Dump card data only in very verbose mode. + (do_decipher): New. + +2003-07-02 Werner Koch + + * app-openpgp.c (get_sig_counter): New. + (do_sign): Print the signature counter and enable the PIN callback. + (do_genkey): Implement the PIN callback. + +2003-07-01 Werner Koch + + * app-openpgp.c (store_fpr): Fixed fingerprint calculation. + +2003-06-26 Werner Koch + + * app-openpgp.c (find_tlv): Fixed length header parsing. + + * app.c (app_genkey): New. + * command.c (cmd_genkey): New. + +2003-06-25 Werner Koch + + * command.c (percent_plus_unescape): New. + (cmd_setattr): New. + +2003-06-24 Werner Koch + + * command.c (send_status_info): New. + + * app-openpgp.c (app_select_openpgp): Replace SLOT arg by APP arg + and setup the function pointers in APP on success. Changed callers. + * app.c: New. + * app-common.h: New. + * scdaemon.h (APP): New type to handle applications. + (server_control_s): Add an APP context field. + + * command.c (cmd_serialno): Handle applications. + (cmd_pksign): Ditto. + (cmd_pkdecrypt): Ditto. + (reset_notify): Ditto. + (cmd_learn): For now return error for application contexts. + (cmd_readcert): Ditto. + (cmd_readkey): Ditto. + +2003-06-04 Werner Koch + + * card.c (map_sc_err): Renamed gpg_make_err to gpg_err_make. + + Renamed error codes from INVALID to INV and removed _ERROR suffixes. + +2003-06-03 Werner Koch + + Changed all error codes in all files to the new libgpg-error scheme. + + * scdaemon.h: Include gpg-error.h and errno.h + * card.c (map_sc_err): Use unknown for the error source. + * Makefile.am: Link with libgpg-error + +2003-05-14 Werner Koch + + * atr.c, atr.h: New. + * sc-investigate.c: Dump the ATR in a human readable format. + +2003-05-08 Werner Koch + + * scdaemon.h (DBG_CARD_IO_VALUE): New. + + * sc-investigate.c: New. + * scdaemon.c (main): Removed --print-atr option. + + * iso7816.c, iso7816.h, app-openpgp.c: New. + +2003-04-29 Werner Koch + + * scdaemon.c: New options --print-atr and --reader-port + * apdu.c, apdu.h: New + + * card.c, card-p15.c, card-dinsig.c: Allow build without OpenSC. + + * Makefile.am (LDFLAGS): Removed. + + * command.c (register_commands): Adjusted for new Assuan semantics. + +2002-08-21 Werner Koch + + * scdaemon.c (main): New option --daemon so that the program is + not accidently started in the background. + +2002-08-16 Werner Koch + + * scdaemon.c: Include i18n.h. + + * card-common.h (struct p15_private_s): Forward declaration. Add + it to card_ctx_s. + * card.c (card_close): Make sure private data is released. + (card_enum_certs): New. + * card-p15.c (p15_release_private_data): New. + (init_private_data): New to work around an OpenSC weirdness. + (p15_enum_keypairs): Do an OpenSC get_objects only once. + (p15_enum_certs): New. + (card_p15_bind): Bind new function. + * command.c (cmd_learn): Return information about the certificates. + +2002-08-09 Werner Koch + + * card.c (card_get_serial_and_stamp): Use the tokeinfo serial + number as a fallback. Add a special prefix for serial numbers. + +2002-07-30 Werner Koch + + Changes to cope with OpenSC 0.7.0: + + * card.c: Removed the check for the packed opensc version. + Changed include file names of opensc. + (map_sc_err): Adjusted error codes for new opensc version. + * card-p15.c: Changed include filename of opensc. + * card-dinsig.c: Ditto. + + * card-p15.c (p15_decipher): Add flags argument to OpenSC call. + +2002-07-24 Werner Koch + + * card.c (find_simple_tlv, find_iccsn): New. + (card_get_serial_and_stamp): Improved serial number parser. + +2002-06-27 Werner Koch + + * scdaemon.c (main): Use GNUPG_DEFAULT_HOMEDIR constant. + +2002-06-15 Werner Koch + + * card-dinsig.c: Documented some stuff from the DIN norm. + +2002-04-15 Werner Koch + + * command.c (cmd_pksign, cmd_pkdecrypt): Use a copy of the key ID. + +2002-04-12 Werner Koch + + * scdaemon.c: New option --debug-sc N. + * card.c (card_open): set it here. + + * card-p15.c (p15_prepare_key): Factored out common code from ... + (p15_sign, p15_decipher): here and made the decryption work the + regular way. + +2002-04-10 Werner Koch + + * card.c (card_open): Return immediately when no reader is available. + +2002-03-27 Werner Koch + + * card.c (card_open, card_close): Adjusted for changes in OpenSC. + +2002-03-10 Werner Koch + + * card-p15.c, card-dinsig.c, card-common.h: New. + * card.c: Factored most code out to the new modules, so that we + can better support different types of card applications. + +2002-01-26 Werner Koch + + * scdaemon.c scdaemon.h, command.c: New. Based on the code from + the gpg-agent. + + + Copyright 2002, 2003, 2004, 2005, 2007, 2008 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 + modifications, as long as this notice is preserved. + + This file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY, to the extent permitted by law; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +Local Variables: +buffer-read-only: t +End: diff --git a/scd/Makefile.am b/scd/Makefile.am index 9153a4403..bdd457acd 100644 --- a/scd/Makefile.am +++ b/scd/Makefile.am @@ -17,6 +17,8 @@ ## Process this file with automake to produce Makefile.in +EXTRA_DIST = ChangeLog-2011 + bin_PROGRAMS = scdaemon if ! HAVE_W32_SYSTEM libexec_PROGRAMS = gnupg-pcsc-wrapper -- cgit v1.2.3