2013-03-14 Niibe Yutaka * tool/stlinkv2.py (stlinkv2.start): Call write_debug_reg to run the core again. 2013-03-12 Niibe Yutaka * src/gnuk.ld.in (__process_stack_size__): Increase (was: 0x200). * tool/stlinkv2.py (stlinkv2.exit_from_debug_swd) (stlinkv2.exit_from_debug_swim): New. (stlinkv2.start): Call exit_from_debug_swd or exit_from_debug_swim. 2013-03-09 Niibe Yutaka * src/openpgp-do.c (gpg_do_public_key): Add OID for ECDSA. (gpg_do_write_prvkey): Add PUBKEY_LEN for ECDSA. * src/flash.c (flash_key_write): Argument change for ECDSA key. * src/main.c (calculate_regnual_entry_address): New. (main): Use calculate_regnual_entry_address for entry point. * src/openpgp-do.c (gpg_do_write_prvkey): Coerce KDI.DATA to uint8_t *. * src/usb_stm32f103.c (handle_setup0): Fix selecting handler. 2013-03-08 Niibe Yutaka Relocatable reGNUal. * regnual/regnual.ld (MEMORY): 0x1400 was the value of Gnuk 1.0.1. Keep this value. (.text): Include .text.entry next to the .vectors. (.got): New. * regnual/sys.c (entry): Now, it's at .text.entry section. Do relocations. Don't use absolute values which causes relocations, but access at GOT. * regnual/Makefile (CFLAGS): Add -fpie. 2013-03-07 Niibe Yutaka Follow the USB stack change. * regnual/regnual.c (usb_cb_device_reset): Rename from regnual_device_reset. (mem): Change type to uint32_t. (mem_info): Removed. (fetch): Avoid pointer punning. (usb_cb_ctrl_write_finish): Rename from regnual_ctrl_write_finish. (usb_cb_setup): Rename from regnual_setup. (usb_cb_get_descriptor): Rename from regnual_get_descriptor. (usb_cb_handle_event): Rename regnual_usb_event. (usb_cb_interface): Rename regnual_interface. (Device_Method): Remove. (usb_cb_get_descriptor): Not use struct Descriptor. 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.