Implement decryption for TCOS 3 cards.
[gnupg.git] / scd / ChangeLog
index 95ea3f5..efd46fe 100644 (file)
@@ -1,3 +1,146 @@
+2009-03-30  Werner Koch  <wk@g10code.com>
+
+       * 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  <wk@g10code.com>
+
+       * 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  <wk@g10code.com>
+
+       * 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  <wk@g10code.com>
+
+       * app-nks.c (keygripstr_from_pk_file): Fix for TCOS 3 cards.
+
+2009-03-18  Werner Koch  <wk@g10code.com>
+
+       * 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  <wk@g10code.com>
+
+       * app-openpgp.c (send_key_attr): New.
+       (do_getattr): New attribute KEY_ATTR.
+       * command.c (send_status_direct): New.
+
+2009-03-06  Werner Koch  <wk@g10code.com>
+
+       * 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  <wk@g10code.com>
+
+       * 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  <wk@g10code.com>
+
+       * 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  <wk@g10code.com>
+
+       * command.c (scd_command_handler): Remove dereference of STOPME
+       after free.
+
+2009-02-27  Werner Koch  <wk@g10code.com>
+
+       * 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  <wk@g10code.com>
+
+       * 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  <wk@g10code.com>
+
+       * 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  <wk@g10code.com>
+
+       * command.c (cmd_getinfo): Add new subcommand "deny_admin".
+
 2009-01-28  Werner Koch  <wk@g10code.com>
 
        * scdaemon.c (main): Make --allow-admin the default and make the
 
 2008-10-14  Werner Koch  <wk@g10code.com>
 
-
        * apdu.c (reader_table_s): Add fields connect_card and
        disconnect_card.
        (new_reader_slot): Set them to NULL.