2013-03-06 Niibe Yutaka USB stack implementation improvement. * src/usb_stm32f103.c (Device_Method, method_p): Remove. (usb_interrupt_handler): Call usb_cb_device_reset. (std_get_descriptor): Call usb_cb_get_descriptor. (std_set_configuration): Call usb_cb_handle_event. (std_get_status, std_get_interface, std_set_interface): Call usb_cb_interface. (handle_setup0): Call usb_cb_setup. (handle_in0): Call usb_cb_handle_event and usb_cb_ctrl_write_finish. (request_handler): Remove. (handle_setup0): Call std_* directly, not indirectly by request_handler. (ep_intr_handler_IN, ep_intr_handler_OUT): Remove. (usb_handle_transfer): Call EP*_Callback directly, not indirectly by ep_intr_handler_IN, ep_intr_handler_OUT. * src/usb_lld.h (struct usb_device_method, Device_Method): Remove. (usb_cb_device_reset, usb_cb_ctrl_write_finish) (usb_cb_setup, usb_cb_get_descriptor, usb_cb_handle_event) (usb_cb_interface): Define callbacks. (usb_initial_feature): New. (struct Descriptor): Move to ... * src/usb_desc.c: ... here. (usb_initial_feature): New. (usb_cb_get_descriptor): Rename from gnuk_get_descriptor and move from usb_ctrl.c. * src/usb_ctrl.c (usb_cb_device_reset): Rename from gnuk_device_reset. (usb_cb_setup): Rename from gnuk_setup. (usb_cb_ctrl_write_finish): Rename from gnuk_ctrl_write_finish. (usb_cb_event): Rename from gnuk_usb_event. (usb_cb_interface): Rename from gnuk_interface. (Device_Method): Remove. * src/main.c (main): Use usb_initial_feature. 2013-02-27 Niibe Yutaka * src/usb-icc.c (set_sw1sw2): Arguments are C and CHUNK_LEN. Fix reporting remaining bytes. (icc_send_data_block_gr): Follow the arguments change of set_sw1sw2. 2013-02-26 Niibe Yutaka * regnual/regnual.ld (MEMORY): Fix start address. * src/random.c (random_fini): New. * src/main.c (main): Call random_fini. 2013-02-25 Niibe Yutaka * src/configure: Correct typo in help text. * src/gnuk.h (struct key_data_internal): Use uint32_t. * src/openpgp-do.c (do_openpgpcard_aid): Fix calculation of VID. (compute_key_data_checksum): Don't use type-punning pointer. (gpg_do_write_prvkey): Use coercing to char *. 2013-02-22 Niibe Yutaka * src/openpgp-do.c (gpg_do_public_key): Add header of EC point. * src/openpgp-do.c (GPG_DO_DISCRETIONARY, cmp_discretionary): New. (cmp_app_data): Change to factor out GPG_DO_DISCRETIONARY. (gpg_do_table): Add GPG_DO_DISCRETIONARY. 2013-02-21 Niibe Yutaka * src/gnuk.ld.in (MEMORY): Fix adding FLASH_SIZE unit. * src/call-ec_p256.c (ecdsa_sign): Fix secret key access. 2013-02-20 Niibe Yutaka * src/openpgp.c (cmd_internal_authenticate): Support ECDSA for authentication. * src/openpgp-do.c (algorithm_attr_ecdsa): New. (algorithm_attr_rsa): Rename (was: algorithm_attr). (gpg_do_table): Change for GPG_DO_ALG_AUT. (gpg_do_write_prvkey): Support ECDSA key for authentication. (proc_key_import): Likewise. (gpg_do_public_key): Likewise. * src/call-ec_p256.c: New. * src/Makefile.in: Add call-ec_p256.c. * src/call-rsa.c (modulus_free): Remove. 2013-02-19 Niibe Yutaka * regnual/regnual.ld (MEMORY): Fix address of regnual. * regnual/Makefile (MCFLAGS): Remove -mfix-cortex-m3-ldrd. (CFLAGS): Add output to .lst. * src/Makefile.in (MCFLAGS): Remove. * src/sha256.c: Update from NeuG 0.05. * ChibiOS_2.0.8: Remove. 2013-02-18 Niibe Yutaka Changes for new ChibiOS/RT. * src/main.c: Include adc.h. (main): Call halInit, adc_init, and chSysInit (change for ChibiOS/RT 2.4.x). * src/random.h: New. * src/ac.c, src/bn.c, src/call-rsa.c, src/main.c: Include random.h. * src/openpgp.c, src/openpgp-do.c: Likewise. * src/configure, src/gnuk.ld.in: Add MEMORY_SIZE. * src/ec_p256.c: Fix call of bn256_add_uint. * boards/STM8S_DISCOVERY/*: Update for ChibiOS/RT 2.4.x. * boards/CQ_STARM/*: Likewise. * boards/FST_01_00/*: Likewise. * boards/OLIMEX_STM32_H103/*: Likewise. * boards/STBEE/*: Likewise. * boards/STBEE_MINI/*: Likewise. * boards/STM32_PRIMER2/*: Likewise. Merge ec_p256 branch. * src/Makefile.in: Add ECC files. * src/bn.h, src/bn.c: New. * src/jpc-ac.h, src/jpc.c: New. * src/ec_p256.h, src/ec_p256.c, src/ecc-cdh.c: New. * src/mod.h, src/mod.c, src/modp256.h, src/modp256.c: New. 2013-02-17 Niibe Yutaka * chibios: New submodule for ChibioS/RT 2.4.x. * boards/FST_01/*: Update for ChibiOS/RT 2.4.x. * boards/common/mcuconf-common.h: Ditto. * src/chconf.h, src/halconf.h, src/Makefile.in, src/gnuk.ld.in: Update for ChibiOS/RT 2.4.x. * src/main.c, src/openpgp.c, src/usb-icc.c: Follow the change of ChibiOS/RT 2.4.x. * boards/common/board-common.c: Rename from hwinit.c. * src/usb_stm32f103.c: Rename from usb_lld.c. * src/neug.h, src/neug.c: Update NeuG 0.05. * src/adc_stm32f103.c, src/adc.h: New from NeuG 0.05. * src/random.c: Follow the change of NeuG 0.05.