gnuk/ChangeLog

1696 lines
58 KiB
Plaintext
Raw Normal View History

2012-05-18 Niibe Yutaka <gniibe@fsij.org>
2012-05-18 10:03:09 +00:00
* src/usb_lld.c (handle_datastage_out): Fix rx copying.
(handle_setup0): Bug fix not stalling TX, it will be possible
to go IN transaction, soon after OUT transaction.
* src/usb_lld.h (USB_SETUP_SET, USB_SETUP_GET): New.
(usb_device_method.ctrl_write_finish): New.
(usb_device_method.setup): Merge setup_with_data, and
setup_with_nodata.
* src/usb_lld.c (usb_lld_shutdown, usb_lld_prepare_shutdown): New.
(handle_setup0): Call ->setup.
(handle_in0): Call ->ctrl_write_finish.
* src/usb_prop.c (vcom_port_data_setup): Merge
vcom_port_setup_with_nodata.
(download_check_crc32): New.
(gnuk_setup): Merge gnuk_setup_with_data and
gnuk_setup_with_nodata.
(gnuk_ctrl_write_finish): New.
2012-05-17 03:45:51 +00:00
2012-05-17 Niibe Yutaka <gniibe@fsij.org>
2012-05-17 08:02:49 +00:00
* tool/gnuk_upgrade.py: New tool.
* src/gnuk.h (ICC_STATE_EXITED, ICC_STATE_EXEC_REQUESTED): New.
* src/openpgp.c (INS_EXTERNAL_AUTHENTICATE)
(cmd_external_authenticate): New.
(INS_GET_CHALLENGE, cmd_get_challenge): New.
* src/usb-icc.c (USBthread): Finish the thread with
ICC_STATE_EXITED, after EXTERNAL_AUTHENTICATE.
* src/usb_prop.c (gnuk_setup_endpoints_for_interface): Add STOP
argument.
(gnuk_usb_event): Disable all endpoints when configure(0).
2012-05-17 08:02:49 +00:00
(vcom_port_data_setup): Check direction and support
USB_CDC_REQ_SET_LINE_CODING.
(vcom_port_setup_with_nodata): Check direction.
(gnuk_setup_with_data): Check direction and add FSIJ_GNUK device
requests.
(gnuk_setup_with_nodata): Likewise.
2012-05-17 03:45:51 +00:00
* src/usb_lld.c (LAST_OUT_DATA): Remove.
(handle_datastage_out): Cleanup and call st103_ep_set_rxtx_status.
(handle_datastage_in): Call st103_ep_set_rxtx_status and
st103_ep_set_tx_status.
(handle_setup0): Likewise.
(handle_out0): Remove LAST_OUT_DATA.
2012-05-17 08:02:49 +00:00
(std_none, std_get_status, std_clear_feature, std_set_feature)
(std_set_address, std_get_descriptor, std_get_configuration)
(std_set_configuration, std_get_interface, std_set_interface):
Check direction.
(handle_setup0): Add length for setup_with_data
2012-05-17 03:45:51 +00:00
2012-05-17 03:15:24 +00:00
2012-05-16 Niibe Yutaka <gniibe@fsij.org>
* tool/gnuk_put_binary.py (main): Fix fileid.
* tool/gnuk_put_binary_libusb.py: Ditto.
* src/openpgp.c (FILE_EF_RANDOM): Remove.
(cmd_update_binary, cmds): ifdef CERTDO_SUPPORT.
(cmd_write_binary): Fix fileid.
* src/flash.c (flash_check_blank): Always enable.
(flash_erase_binary): ifdef CERTDO_SUPPORT.
(flash_write_binary): Call flash_check_blank.
2012-05-15 01:16:25 +00:00
2012-05-15 Niibe Yutaka <gniibe@fsij.org>
* Version 0.18.
* src/usb_desc.c (gnukStringSerial): Updated.
* src/main.c (EP3_IN_Callback, EP5_OUT_Callback): Move from
usb_endp.c.
* src/usb_endp.c: Remove.
2012-05-14 04:32:47 +00:00
2012-05-14 Niibe Yutaka <gniibe@fsij.org>
2012-05-14 06:38:50 +00:00
* tool/gnuk_remove_keys.py: New.
2012-05-14 06:38:03 +00:00
* src/openpgp-do.c (proc_key_import): Fix checking extended header.
2012-05-14 05:26:44 +00:00
* src/hardclock.c: Remove.
2012-05-14 04:32:47 +00:00
* src/usb_prop.c (MSC_INTERFACE_NO): New.
(gnuk_setup_endpoints_for_interface): Cleanup with MSC_INTERFACE_NO.
(gnuk_setup_with_data, gnuk_setup_with_nodata): Likewise.
* src/usb-msc.c: Rename from usb_msc.c.
* src/usb-msc.h: Rename from usb_msc.h.
2012-05-14 05:26:44 +00:00
* src/Makefile.in: Follow the rename of usb-msc.c and remove of
hardclock.c.
2012-05-14 04:32:47 +00:00
2012-05-14 06:38:03 +00:00
* src/pin-dnd.c, src/usb_prop.c: Follow the rename of usb-msc.h.
2012-05-11 23:06:33 +00:00
2012-05-12 Niibe Yutaka <gniibe@fsij.org>
* src/usb_msc.c (ep6_out): Rename (was: ep7_out).
(usb_start_receive): Use ep6_out and ENDP6.
(EP6_OUT_Callback): Rename (was: EP7_OUT_Callback).
Use ep6_out and ENDP6.
(msc_handle_command): Use ep6_out and ENDP6.
* src/main.c (main): Wait USB reset.
* src/usb-icc.c (EP1_OUT_Callback): Rename from EP2_OUT_Callback.
(USBthread): Use ENDP1 for both of epi_init and epo_init.
* src/usb_conf.h (ENDP1_RXADDR, ENDP2_TXADDR, ENDP6_RXADDR): New.
(ENDP3_TXADDR, ENDP4_TXADDR, ENDP5_RXADDR): New value.
(ENDP7_RXADDR): Remove.
* src/usb_desc.c (gnukConfigDescriptor): Use endpoint OUT1 (was
IN2), endpoint OUT6 (IN7).
* src/usb_prop.c (gnuk_setup_endpoints_for_interface): Use ENDP1
and ENDP6 for both directions.
2012-05-11 00:23:57 +00:00
2012-05-11 Niibe Yutaka <gniibe@fsij.org>
* src/configure (--vidpid): New mandatory option.
* GNUK_USB_DEVICE_ID: New file.
* src/usb_desc.c (gnukDeviceDescriptor): Include
usb-vid-pid-ver.c.inc.
(gnukStringVendor, gnukStringProduct): Remove. It's in the
file, usb-string-vender-product.c.inc.
* src/Makefile.in (distclean): Delete *.inc.
2012-05-11 00:28:04 +00:00
* src/usb_prop.c (vcom_port_setup_with_nodata) Rename.
(vcom_port_data_setup): Rename and fix return value.
* src/usb-cdc.h (VIRTUAL_COM_PORT_DATA_SIZE)
(VIRTUAL_COM_PORT_INT_SIZE): New.
* src/main.c (#include): Add usb-cdc.h.
* src/usb_desc.c (#include): Add usb-cdc.h.
* src/usb_endp.c (#include): Add usb_lld.h.
2012-05-11 00:23:57 +00:00
* src/configure ($help): Add FST_01.
2012-05-10 10:01:01 +00:00
2012-05-10 Niibe Yutaka <gniibe@fsij.org>
* STM32_USB-FS-Device_Driver, Virtual_COM_Port: Remove.
* src/usb_lld.c (#include): Don't include usb_lib.h.
(RECIPIENT, REG_BASE PMA_ADDR, CNTR, ISTR, FNR, DADDR, BTABLE)
(ISTR_CTR, ISTR_DOVR, ISTR_ERR, ISTR_WKUP, ISTR_SUSP, ISTR_RESET)
(ISTR_SOF, ISTR_ESOF, ISTR_DIR, ISTR_EP_ID, CLR_CTR, CLR_DOVR)
(CLR_ERR, CLR_WKUP, CLR_SUSP, CLR_RESET, CLR_SOF, CLR_ESOF)
(CNTR_CTRM, CNTR_DOVRM, CNTR_ERRM, CNTR_WKUPM, CNTR_SUSPM)
(CNTR_RESETM, CNTR_SOFM, CNTR_ESOFM, CNTR_RESUME, CNTR_FSUSP)
(CNTR_LPMODE, CNTR_PDWN, CNTR_FRES, DADDR_EF, DADDR_ADD)
(EP_CTR_RX, EP_DTOG_RX, EPRX_STAT, EP_SETUP, EP_T_FIELD, EP_KIND)
(EP_CTR_TX, EP_DTOG_TX, EPTX_STAT, EPADDR_FIELD, EPREG_MASK)
(EP_TX_DIS, EP_TX_STALL, EP_TX_NAK, EP_TX_VALID, EPTX_DTOG1)
(EPTX_DTOG2, EP_RX_DIS, EP_RX_STALL, EP_RX_NAK, EP_RX_VALID)
(EPRX_DTOG1, EPRX_DTOG2): New. Compatible to ST's USB-FS-Device_Lib.
(CH_IRQ_HANDLER): Call usb_interrupt_handler (was: USB_Istr).
(EP1_IN_Callback, EP2_IN_Callback, EP3_IN_Callback)
(EP4_IN_Callback, EP5_IN_Callback, EP6_IN_Callback)
(EP7_IN_Callback, EP1_OUT_Callback, EP2_OUT_Callback)
(EP3_OUT_Callback, EP4_OUT_Callback, EP5_OUT_Callback)
(EP6_OUT_Callback, EP7_OUT_Callback): New. Implement here.
Compatible to ST's USB-FS-Device_Lib.
(USB_MAX_PACKET_SIZE): New.
(GET_STATUS, CLEAR_FEATURE, RESERVED1, SET_FEATURE, RESERVED2)
(SET_ADDRESS, GET_DESCRIPTOR, SET_DESCRIPTOR, GET_CONFIGURATION)
(SET_CONFIGURATION, GET_INTERFACE, SET_INTERFACE)
(SYNCH_FRAME,TOTAL_REQUEST): New for USB control transfer.
(enum CONTROL_STATE): New for state machine of control pipe.
(enum FEATURE_SELECTOR): New.
(struct DATA_INFO, struct CONTROL_INFO, struct DEVICE_INFO): New.
(ctrl_p, dev_p, data_p, Control_Info, Device_Info, Data_Info):
New.
(usb_lld_stall_tx, usb_lld_stall_rx)
(usb_lld_tx_data_len, usb_lld_txcpy, usb_lld_tx_enable)
(usb_lld_write, usb_lld_rx_enable, usb_lld_rx_data_len)
(usb_lld_rxcpy): Move from usb_lld.h and not inline.
(usb_lld_reset, usb_lld_setup_endpoint)
(usb_lld_set_configuration, usb_lld_current_configuration)
(usb_lld_set_feature, usb_lld_set_data_to_send): New.
(usb_lld_to_pmabuf, usb_lld_from_pmabuf): Clean up.
(usb_lld_init): New implementation.
(st103_set_btable, st103_get_istr, st103_set_istr, st103_set_cntr)
(st103_set_daddr, st103_set_epreg, st103_get_epreg)
(st103_set_tx_addr, st103_get_tx_addr, st103_set_tx_count)
(st103_get_tx_count, st103_set_rx_addr, st103_get_rx_addr)
(st103_set_rx_buf_size, st103_get_rx_count, st103_ep_clear_ctr_rx)
(st103_ep_clear_ctr_tx, st103_ep_set_rxtx_status)
(st103_ep_set_rx_status, st103_ep_get_rx_status)
(st103_ep_set_tx_status, st103_ep_get_tx_status)
(st103_ep_clear_dtog_rx, st103_ep_clear_dtog_tx): New lower-level
functions for USB related registers access.
(usb_interrupt_handler, usb_handle_transfer)
(handle_datastage_out, handle_datastage_in, handle_setup0)
(handle_in0, handle_out0)
(std_none, std_get_status, std_clear_feature, std_set_feature,
std_set_address, std_get_descriptor, std_get_configuration,
std_set_configuration, std_get_interface, std_set_interface)
(std_request_handler): New USB stack implementation.
* src/usb_lld.h (usb_lld_stall_tx, usb_lld_stall_rx)
(usb_lld_tx_data_len, usb_lld_txcpy, usb_lld_tx_enable)
(usb_lld_write, usb_lld_rx_enable, usb_lld_rx_data_len)
(usb_lld_rxcpy): Those are not inline functions anymore.
(USB_DEVICE_DESCRIPTOR_TYPE, USB_CONFIGURATION_DESCRIPTOR_TYPE)
(USB_STRING_DESCRIPTOR_TYPE, USB_INTERFACE_DESCRIPTOR_TYPE)
(USB_ENDPOINT_DESCRIPTOR_TYPE, STANDARD_ENDPOINT_DESC_SIZE)
(ENDP0, ENDP1, ENDP2, ENDP3, ENDP4, ENDP5, ENDP6, ENDP7)
(EP_BULK, EP_CONTROL, EP_ISOCHRONOUS, EP_INTERRUPT)
(DEVICE_RECIPIENT, INTERFACE_RECIPIENT, ENDPOINT_RECIPIENT)
(ENDPOINT_RECIPIENT, OTHER_RECIPIENT)
(DEVICE_DESCRIPTOR, CONFIG_DESCRIPTOR, STRING_DESCRIPTOR)
(INTERFACE_DESCRIPTOR, ENDPOINT_DESCRIPTOR)
(REQUEST_TYPE, STANDARD_REQUEST, CLASS_REQUEST, VENDOR_REQUEST)
(USB_UNSUPPORT, USB_SUCCESS)
(USB_EVENT_RESET, USB_EVENT_ADDRESS, USB_EVENT_CONFIG)
(USB_EVENT_SUSPEND, USB_EVENT_WAKEUP, USB_EVENT_STALL)
(USB_SET_INTERFACE, USB_GET_INTERFACE, USB_QUERY_INTERFACE)
(UNCONNECTED, ATTACHED, POWERED, SUSPENDED, ADDRESSED)
(CONFIGURED, USB_Cable_Config): New. Compatible to ST's
USB-FS-Device_Lib.
(struct Descriptor, struct usb_device_method)
(Device_Descriptor, Config_Descriptor, String_Descriptors)
(STM32_USB_IRQ_PRIORITY, bDeviceState, Device_Method)
(usb_lld_init, usb_lld_reset, usb_lld_setup_endpoint)
(usb_lld_set_configuration, usb_lld_current_configuration)
(usb_lld_set_feature, usb_lld_set_data_to_send): New API.
* src/usb_prop.c(#include): Only include usb_lld.h for USB.
(SetEPRxCount_allocated_size): Remove.
(struct line_coding, line_coding, Virtual_Com_Port_Data_Setup)
(Virtual_Com_Port_NoData_Setup): Add from usb-cdc-vport.c.
(gnuk_device_init, gnuk_device_reset, gnuk_setup_with_data)
(gnuk_setup_with_nodata): Follow the API change of USB stack.
(gnuk_setup_endpoints_for_interface, gnuk_get_descriptor)
(gnuk_usb_event, gnuk_interface): New.
(gnuk_device_SetConfiguration, gnuk_device_SetInterface)
(gnuk_device_SetDeviceAddress, gnuk_device_Status_In)
(gnuk_device_Status_Out, gnuk_device_GetDeviceDescriptor)
(gnuk_device_GetConfigDescriptor, gnuk_device_GetStringDescriptor)
(gnuk_device_Get_Interface_Setting, gnuk_clock_frequencies)
(gnuk_data_rates, msc_lun_info, Device_Table)
(User_Standard_Requests): Remove.
(Device_Method): Replace Device_Property.
* src/usb_msc.c (#include): Only include usb_lld.h for USB.
* src/usb_endp.c (#include): Only include usb_lld.h for USB.
(EP5_OUT_Callback): Follow the API change of USB stack.
* src/usb_desc.c (#include): Only include usb_lld.h for USB.
Add usb_conf.h.
(Device_Descriptor, Config_Descriptor): Follow the API change
of USB stack.
(String_Descriptors): New, rename from String_Descriptor.
* src/usb_conf.h (EP_NUM, BTABLE_ADDRESS, IMR_MSK): Remove.
(NUM_STRING_DESC): Add.
* src/usb-icc.c (#include): Only include usb_lld.h for USB.
* src/usb-cdc-vport.c, src/usb_prop.h: Remove.
* src/stmusb.mk, src/vcomport.mk: Remove.
* src/main.c (#include): Only include usb_lld.h for USB.
(main): Remove call to USB_Init.
* src/Makefile.in (include): Remove stmusb.mk, vcomport.mk.
(VCOMSRC) [ENABLE_VCOMPORT]: Add.
(INCDIR): Remove STMUSBINCDIR and VCOMDIR.
* boards/common/hw_config.c (Enter_LowPowerMode)
(Leave_LowPowerMode): Remove.
2012-02-02 05:09:38 +00:00
2012-02-02 Niibe Yutaka <gniibe@fsij.org>
* Version 0.17.
* src/usb_desc.c (gnukStringSerial): Updated.
2012-02-02 05:17:51 +00:00
(gnukConfigDescriptor): Short APDU only.
2012-02-02 05:09:38 +00:00
* tool/gnuk_put_binary.py (cmd_get_response): New.
(cmd_select_openpgp, cmd_get_data): Call cmd_get_response.
2012-02-02 03:18:47 +00:00
2012-01-30 Niibe Yutaka <gniibe@fsij.org>
* src/usb-icc.c (struct ccid): Add chained_cls_ins_p1_p2.
(end_cmd_apdu_head, icc_cmd_apdu_data, icc_handle_data): Add checking
CMD APDU head for command chaining.
2012-01-20 Niibe Yutaka <gniibe@fsij.org>
Short APDU only CCID driver.
* STM32_USB-FS-Device_Driver/src/usb_core.c (DataStageOut)
(DataStageIn): Use usb_lld_to_pmabuf and usb_lld_from_pmabuf.
* src/configure (CERTDO_SUPPORT): Comment fix.
* src/gnuk.h (struct adpu): expected_res_size has type uint16_t.
(MAX_CMD_APDU_DATA_SIZE, MAX_RES_APDU_DATA_SIZE): New.
(MAX_CMD_APDU_SIZE, MAX_RES_APDU_SIZE, USB_BUF_SIZE): Remove.
(icc_state_p): New.
(set_res_sw): Rename from set_res_apdu.
* src/call-rsa.c (rsa_decrypt): Use MAX_RES_APDU_DATA_SIZE.
* src/openpgp.c (set_res_sw): Rename from set_res_apdu.
* src/openpgp.h: Use set_res_sw.
* src/main.c: Handle icc_state_p.
* src/openpgp-do.c (historical_bytes): command chaining but short
APDU only.
(extended_capabilities): Change for short APDU only.
* src/usb-icc.c (USB_BUF_SIZE): Define here (was in gnuk.h).
(struct ep_in, epi_init, struct ep_out, epo_init, endpoint_out)
(endpoint_in, icc_state_p, struct ccid, APDU_STATE_WAIT_COMMAND)
(APDU_STATE_COMMAND_CHAINING, APDU_STATE_COMMAND_RECEIVED)
(APDU_STATE_RESULT, APDU_STATE_RESULT_GET_RESPONSE, ccid_reset)
(ccid_init, CMD_APDU_HEAD_SIZE, apdu_init, notify_tx, no_buf)
(set_sw1sw2, get_sw1sw2, notify_icc, end_icc_rx, end_abdata)
(end_cmd_apdu_head, end_nomore_data, end_cmd_apdu_data)
(nomore_data, INS_GET_RESPONSE, icc_cmd_apdu_data, icc_abdata)
(icc_send_data_block_0x9000, icc_send_data_block_gr, ccid): New.
(icc_data_size, icc_seq, icc_next_p, icc_chain_p, icc_tx_size)
(icc_thread, icc_state, gpg_thread, ICC_RESPONSE_MSG_DATA_SIZE):
Remove.
(EP1_IN_Callback): Rewrite using epi.
(EP2_OUT_Callback): Rewrite using epo.
(icc_prepare_receive): Rewrite using epo and struct ccid.
(ATR): Change ofr short APDU only.
(icc_error, icc_power_on, icc_send_status, icc_power_off)
(icc_send_data_block, icc_send_params, icc_handle_data)
(icc_handle_timeout, USBthread): Rewrite using struct ccid.
* src/usb_desc.c (gnukConfigDescriptor): dwFeatures: Short APDU
level, dwMaxCCIDMessageLength: 271.
* src/usb_lld.c (usb_lld_to_pmabuf, usb_lld_from_pmabuf): New.
* src/usb_lld.h (usb_lld_txcpy, void usb_lld_write) Use
usb_lld_to_pmabuf.
(usb_lld_rxcpy): Use usb_lld_from_pmabuf.
* src/stmusb.mk (usb_mem.c): Remove.
* gnuk_put_binary.py (cmd_select_openpgp): No response APDU data.
(cmd_verify, cmd_write_binary): Send short APDU.
(__main__): Remove RANDOM_NUMBER_BITS support.
Bug fix for CERTDO_SUPPORT.
* src/gnuk.ld.in: Add missing alignment for _data_pool (when no
CERTDO_SUPPORT).
2012-01-19 05:23:01 +00:00
2012-01-19 Niibe Yutaka <gniibe@fsij.org>
* src/usb-icc.c (icc_handle_data): Handle the case when it only
sends 0x90 and 0x00 correctly.
* src/openpgp-do.c (gpg_do_get_data): Fix res_apdu_data_len.
2012-01-18 09:59:16 +00:00
2012-01-18 Niibe Yutaka <gniibe@fsij.org>
Clean up API between application layer and CCID layer.
* tool/gnuk_put_binary.py, gnuk_put_binary_libusb.py: Don't append
0x9000 at the data, any more.
* src/usb-icc.c (icc_data_size, icc_buffer, icc_seq): Make them
internal.
(res_APDU_size, res_APDU_pointer): Removed.
(icc_handle_data, USBthread): Follow new API of struct apdu.
* src/call-rsa.c (rsa_sign, rsa_decrypt): Likewise.
* src/openpgp.c (CLS, INS, P1, P2): New.
(set_res_apdu, cmd_verify, cmd_change_password)
(cmd_reset_user_password, cmd_put_data, cmd_pgp_gakp)
(cmd_read_binary, cmd_select_file, cmd_pso)
(cmd_internal_authenticate, cmd_update_binary, cmd_write_binary)
(process_command_apdu, GPGthread): Follow new API of struct apdu.
* src/openpgp-do.c (gpg_do_get_data, gpg_do_public_key): Follow
new API of struct apdu.
* src/gnuk.h (struct apdu, apdu): New.
(cmd_APDU, icc_data_size, cmd_APDU_size, icc_buffer): Removed.
(res_APDU, res_APDU_size): Use members of struct apdu.
2012-01-16 03:17:45 +00:00
2012-01-16 Niibe Yutaka <gniibe@fsij.org>
2012-01-16 04:24:31 +00:00
Adopt new USB API.
* src/usb_msc.c (usb_start_transmit): Use usb_lld_write.
(EP6_IN_Callback): Use usb_lld_tx_data_len and usb_lld_write.
(usb_start_receive): Use usb_lld_rx_enable.
(EP7_OUT_Callback): Use usb_lld_rx_data_len, usb_lld_rxcpy
and usb_lld_rx_enable
(msc_handle_command): Use usb_lld_stall_rx and usb_lld_stall_tx.
* src/usb_lld.h (usb_lld_stall_tx, usb_lld_stall_rx)
(usb_lld_tx_data_len): New.
* src/main.c (STDOUTthread): Use usb_lld_write.
2012-01-16 03:17:45 +00:00
* src/usb-icc.c (EP1_IN_Callback, icc_error, icc_power_on)
(icc_send_status, icc_send_data_block, icc_send_params): Use
usb_lld_write (was: USB_SIL_Write).
2012-01-16 04:24:31 +00:00
(EP2_OUT_Callback): Use usb_lld_rx_data_len, usb_lld_rxcpy,
2012-01-16 03:17:45 +00:00
and usb_lld_rx_enable (was: USB_SIL_Read and SetEPRxValid).
(icc_prepare_receive): Use usb_lld_rx_enable.
* src/stmusb.mk (STMUSBSRC): Dont' include usb_sil.c.
* src/usb_lld.h (usb_lld_txcpy, usb_lld_tx_enable)
2012-01-16 04:24:31 +00:00
(usb_lld_write, usb_lld_rx_enable, usb_lld_rx_data_len)
2012-01-16 03:17:45 +00:00
(usb_lld_rxcpy): New.
* src/usb_prop.c (SetEPRxCount_allocated_size): Fix the
implementation. (ST's SetEPRxCount is actually meant to
setup allocated size, which is confusing).
(gnuk_device_init): Don't call USB_SIL_Init.
2012-01-10 Niibe Yutaka <gniibe@fsij.org>
* src/openpgp.c (GPGthread): Allow INS_RESET_RETRY_COUNTER and
INS_PUT_DATA for pinentry targets.
2012-01-05 01:14:10 +00:00
2012-01-05 Niibe Yutaka <gniibe@fsij.org>
2012-01-05 06:14:35 +00:00
* src/openpgp.c (cmd_select_file): Check DF name.
2012-01-05 01:14:10 +00:00
* tool/pinpadtest.py: Rename from pinpad-test.py.
2011-12-28 03:27:16 +00:00
2011-12-28 Niibe Yutaka <gniibe@fsij.org>
* src/usb_prop.c (SetEPRxCount_allocated_size): New.
(gnuk_device_reset): Use SetEPRxCount_allocated_size.
* src/usb_msc.c (usb_start_receive): Don't set RxCount register
here.
* STM32_USB-FS-Device_Driver/src/usb_core.c (Standard_ClearFeature)
(Post0_Process): Don't need to set RxCount register.
2011-12-28 03:27:16 +00:00
* src/usb_prop.c (msc_lun_info) [PINPAD_DND_SUPPORT]: ifdef-out.
* src/usb-icc.c (EP2_OUT_Callback): Fix apdu size == 49 bug,
we don't assume host sends ZLP (But accepts ZLP, just in case).
2011-12-22 08:10:41 +00:00
2011-12-22 Niibe Yutaka <gniibe@fsij.org>
* src/openpgp-do.c (extended_capabilities) [CERTDO_SUPPORT]:
conditionalize.
2011-12-21 05:14:28 +00:00
2011-12-21 Niibe Yutaka <gniibe@fsij.org>
* src/openpgp-do.c (gpg_do_get_data) [CERTDO_SUPPORT]: ifdef out.
* src/gnuk.ld.in (.gnuk_ch_certificate): Only valid
when --enable-certdo.
* src/flash.c (flash_check_blank) [CERTDO_SUPPORT]: ifdef out.
(flash_erase_binary) [CERTDO_SUPPORT]: Likewise.
(flash_write_binary) [CERTDO_SUPPORT]: Likewise.
* src/configure (certdo): New.
(--enable-certdo, --disable-certdo): New options.
Remove cheking for /dev/random.
* src/config.h.in (@CERTDO_DEFINE@): New.
2011-12-20 01:39:47 +00:00
2011-12-20 Niibe Yutaka <gniibe@fsij.org>
* src/usb_msc.c (msc_handle_command): SCSI_START_STOP_UNIT command
with stop/eject/close means cancelling pinentry.
* src/pin-dnd.c (pinpad_finish_entry, parse_directory_sector):
Implement "cancel".
(pinpad_getline): Likewise.
(msc_scsi_stop): New.
2011-12-16 07:42:09 +00:00
2011-12-16 Niibe Yutaka <gniibe@fsij.org>
* tool/gnuk_put_binary_libusb.py (gnuk_token.cmd_select_openpgp):
Fix apdu parameter.
* tool/gnuk_put_binary.py (GnukToken.cmd_select_openpgp): Ditto.
* tool/pinpad-test.py: New.
2011-12-14 03:45:20 +00:00
2011-12-14 Niibe Yutaka <gniibe@fsij.org>
2011-12-14 03:50:54 +00:00
* Version 0.16.
* src/usb_desc.c (gnukStringSerial): Updated.
2011-12-14 03:45:20 +00:00
* boards/STM8S_DISCOVERY/board.h, board.c: Fix for PINPAD_SUPPORT.
* boards/STBEE_MINI/board.h, board.c: Likewise.
* boards/STBEE/board.h, board.c: Likewise.
* boards/FST_01/board.c: Likewise.
2011-12-13 Niibe Yutaka <gniibe@fsij.org>
Add pinpad DND support.
* src/Makefile.in (CSRC) [ENABLE_PINPAD]: Add usb_msc.c.
* src/configure (pinpad): Add dnd support.
* src/gnuk.h [PINPAD_DND_SUPPORT]: Add declarations.
* src/main.c (STDOUTthread): Add PUSH packet.
(main) [PINPAD_DND_SUPPORT]: Call msc_init.
* src/usb_conf.h (EP_NUM): Add the case of PINPAD_DND_SUPPORT.
(ENDP6_TXADDR, ENDP7_RXADDR): New.
(ENDP4_TXADDR, ENDP5_RXADDR): Changed for smaller buffer.
* src/usb_desc.c (gnukConfigDescriptor): Add Mass storage device.
* src/usb_msc.c, src/usb_msc.h, src/pin-dnd.c: New.
* src/usb_prop.c: Include "usb_msc.h".
(gnuk_device_reset): Add initialization of ENDP6 and ENDP7.
(gnuk_device_SetInterface): Add initialization of ENDP6 and ENDP7.
(NUM_INTERFACES): Handle cases for PINPAD_DND_SUPPORT.
(msc_lun_info): New.
(gnuk_setup_with_data, gnuk_setup_with_nodata): Handle standard
request for Mass storage device.
* Virtual_COM_Port/usb_desc.h (VIRTUAL_COM_PORT_DATA_SIZE): Since
there isn't enough hardware buffer, smaller value (was: 64).
* src/ac.c (verify_user_0): Add access argument.
(verify_pso_cds, verify_other, verify_admin_0): Follow the change.
* src/openpgp.c (cmd_change_password): Likewise.
2011-12-08 01:56:48 +00:00
2011-12-08 Niibe Yutaka <gniibe@fsij.org>
* src/usb-icc.c: Not include "usb_desc.h".
* src/usb_endp.c (EP5_OUT_Callback): Fix minor bug.
2011-12-07 00:38:48 +00:00
2011-12-07 Niibe Yutaka <gniibe@fsij.org>
2011-12-07 01:16:02 +00:00
* src/usb_desc.c (gnukDeviceDescriptor): Changed bcdUSB = 1.1.
Gnuk device conforms to USB 2.0 full speed device, but when it was
2.0, some OS informs users, "you can connect the device to 2.0
compliant hub so that it can have better bandwidth", which is not
the case for full speed device.
2011-12-07 00:38:48 +00:00
* src/openpgp.c (GPGthread): Handle bConfirmPIN parameter.
* src/usb-icc.c (icc_handle_data): Pass PC_to_RDR_Secure
information to gpg_thread using memory of cmd_APDU.
2011-12-01 09:23:10 +00:00
2011-12-01 Niibe Yutaka <gniibe@fsij.org>
* src/gnuk.h (EV_PINPAD_INPUT_DONE, EV_NOP, EV_CMD_AVAILABLE)
(EV_VERIFY_CMD_AVAILABLE, EV_MODIFY_CMD_AVAILABLE): New.
* src/usb-icc.c (icc_power_off, icc_handle_data): Use EV_NOP,
EV_CMD_AVAILABLE, EV_VERIFY_CMD_AVAILABLE, and EV_MODIFY_CMD_AVAILABLE.
* src/pin-cir.c (cir_timer_interrupt): Use EV_PINPAD_INPUT_DONE.
* src/pin-dial.c (dial_sw_interrupt, pinpad_getline): Ditto.
(EV_SW_PUSH): Remove.
* src/openpgp.h (GPG_FUNCTION_NOT_SUPPORTED): New.
(GPG_CONDITION_NOT_SATISFIED): New.
* src/openpgp.c (cmd_change_password): Use GPG_FUNCTION_NOT_SUPPORTED.
* src/openpgp.c (cmd_verify, cmd_change_password)
(cmd_reset_user_password, cmd_put_data): Remove pinpad handling...
(GPGthread): ... and implement pinpad handling here.
2011-11-29 06:18:25 +00:00
2011-11-29 Niibe Yutaka <gniibe@fsij.org>
* src/openpgp.c (cmd_put_data) [PINPAD_SUPPORT]: Support pinpad
input (for reset code).
2011-11-24 06:40:38 +00:00
2011-11-24 Niibe Yutaka <gniibe@fsij.org>
* Version 0.15.
* src/usb_desc.c (gnukStringSerial): Updated.
2011-11-22 Niibe Yutaka <gniibe@fsij.org>
* tool/dfuse.py (DFU_STM32.download, DFU_STM32.verify): Support
unaligned write and hole.
2011-11-14 05:22:37 +00:00
2011-11-14 Niibe Yutaka <gniibe@fsij.org>
* boards/FST_01/{mcuconf.h,board.h,board.c}: New.
2011-11-01 Niibe Yutaka <gniibe@fsij.org>
2011-11-01 06:01:32 +00:00
* src/pin-dial.c (pinpad_getline): New.
(pin_main): Remove.
2011-11-01 05:57:11 +00:00
* boards/STBEE_MINI/board.h (TIMx): Define.
boards/STBEE/board.h (TIMx): Ditto.
boards/STM8S_DISCOVERY/board.h: Ditto.
* src/pin-cir.c (pinpad_getline): New.
(cir_timer_interrupt, cir_ext_interrupt): Use TIMx.
(cir_key_is_backspace, cir_key_is_enter, pin_main, pindisp):
Remove.
(cir_codetable_dell_mr425, cir_codetable_aquos)
(cir_codetable_regza, cir_codetable_bravia, ch_is_backspace)
(ch_is_enter, find_char_codetable, hex, cir_getchar): New.
(cir_timer_interrupt): Don't filter out ADDRESS.
* src/openpgp.c (get_pinpad_input): Don't invoke thread,
but just call pinpad_getline.
* src/main.c (display_interaction, display_fatal_code)
(display_status_code, led_blink): New.
(main): Call display_* routine.
(fatal): Notify main thread.
* src/usb_prop.c (gnuk_device_SetConfiguration): Notify main
thread.
* src/pin-cir.c (pindisp): Remove.
2011-11-01 02:41:20 +00:00
* boards/FST_01_00: New (for 8MHz FST-01).
2011-11-01 02:39:47 +00:00
* src/ac.c (calc_md): Fix comparison.
* src/call-rsa.c (RSA_SIGNATURE_LENGTH): Use KEY_CONTENT_LEN.
(rsa_sign, rsa_decrypt): Likewise.
(modulus_calc): Don't assume it's 2048-bit.
* src/ac.c (verify_user_0): Fix for non-initialized PW1.
* src/Makefile.in (MCFLAGS): Override MCFLAGS option for newer
GCC of summon-arm-toolchain to add -mfix-cortex-m3-ldrd.
NOTE: This should not be needed (as -mcpu=cortex-m3 defaults
to -mfix-cortex-m3-ldrd for GCC-proper), but it is needed
to select arm-none-eabi/lib/thumb2/libc.a correctly.
2011-10-14 NIIBE Yutaka <gniibe@fsij.org>
* src/gnuk.ld.in (__main_stack_size__): It's 1KB (was 512 byte).
2011-10-07 02:01:21 +00:00
2011-10-07 NIIBE Yutaka <gniibe@fsij.org>
* Version 0.14.
* src/usb_desc.c (gnukStringSerial): Updated.
* src/random.c (random_init): Call neug_prng_reseed.
2011-10-06 07:56:08 +00:00
2011-10-06 NIIBE Yutaka <gniibe@fsij.org>
2011-10-06 08:02:37 +00:00
* src/Makefile.in (random_bits): Remove.
2011-10-06 07:58:20 +00:00
* src/openpgp.c (GPGthread): Remove unused event message.
2011-10-06 07:56:08 +00:00
* src/main.c (main): Call random_init.
* src/gnuk.ld.in (__process_stack_size__): Fix.
(.gnuk_random): Removed.
* src/flash.c (flash_erase_binary, flash_write_binary): Remove
support of random_byte in flash ROM.
* src/neug.c (adccb): Use old API (was: chEvtSignalFlagsI).
(adccb_err): Remove.
(rng_gen, rng): Add the last argument adccb for adcStartConversion:
This is old API of ADC driver.
(adcgrpcfg): Remove callbacks, add CONT and SWSTART: This is old
API of ADC driver.
(adccb): Remove the first argument: This is old API of ADC driver.
(neug_wait_full): New.
* ChibiOS_2.0.8/os/hal/platforms/STM32/adc_lld.h (ADC_SAMPLE_1P5):
Add (from new API).
* src/random.c (random_init): New.
(random_bytes_get, random_bytes_free, get_salt): Use NeuG.
* src/Makefile.in (CSRC): Add neug.c.
* src/neug.c: New. Verbatim copy of NeuG/src/random.c.
* boards/common/mcuconf-common.h (USE_STM32_ADC1): TRUE for NewG RNG.
* src/chconf.h (CH_USE_SEMAPHORES): TRUE as ADC driver requires it.
* src/halconf.h (CH_HAL_USE_ADC); TRUE for NewG RNG.
2011-07-22 06:48:00 +00:00
2011-07-22 NIIBE Yutaka <gniibe@fsij.org>
* boards/OLIMEX_STM32_H103/board.h (BOARD_NAME): Fixed.
* boards/STBEE_MINI/mcuconf.h: Added missing include of
mcuconf-common.h.
2011-07-04 01:05:56 +00:00
2011-07-04 NIIBE Yutaka <gniibe@fsij.org>
2011-07-04 06:57:05 +00:00
* ChibiOS_2.0.8/os/ports/GCC/ARMCMx/chcore_v7m.c
(_port_irq_epilogue, _port_switch_from_isr): Apply a patch of 2.2.6.
2011-07-04 01:05:56 +00:00
* ChibiOS_2.0.8/os/hal/platforms/STM32/adc_lld.h: Apply a patch of
ADC from the branch of ChibiOS_2.0.X.
2011-06-14 23:52:02 +00:00
2011-06-15 NIIBE Yutaka <gniibe@fsij.org>
* Version 0.13.
* src/usb_desc.c (gnukStringSerial): Updated.
2011-06-08 NIIBE Yutaka <gniibe@fsij.org>
* polarssl-0.14.0/include/polarssl/bn_mul.h [__arm__]
(MULADDC_1024_CORE, MULADDC_1024_LOOP): New.
* polarssl-0.14.0/library/bignum.c (mpi_mul_hlp): Use
MULADDC_1024_LOOP.
2011-05-31 01:17:38 +00:00
2011-05-31 NIIBE Yutaka <gniibe@fsij.org>
2011-06-14 23:52:02 +00:00
* polarssl-0.14.0/include/polarssl/bn_mul.h [__arm__]
2011-05-31 01:17:38 +00:00
(MULADDC_HUIT, MULADDC_INIT, MULADDC_CORE, MULADDC_STOP): Tweak.
2011-05-27 02:11:41 +00:00
2011-05-27 NIIBE Yutaka <gniibe@fsij.org>
2011-05-27 07:08:16 +00:00
* tool/gnuk_put_binary.py (main): Confirm Serial ID is written
correctly.
* src/openpgp.c (cmd_write_binary): Fix FILE_EF_SERIAL comparison.
* src/gnuk.ld.in (.gnuk_random, .gnuk_ch_certificate): Put LONG to
have CONTENTS.
2011-05-27 02:11:41 +00:00
* polarssl-0.14.0/include/polarssl/bn_mul.h [__arm__]
(MULADDC_HUIT): New.
2011-05-26 03:04:45 +00:00
2011-05-26 NIIBE Yutaka <gniibe@fsij.org>
* polarssl-0.14.0/include/polarssl/bn_mul.h [__arm__]
(MULADDC_INIT): Add ADDS instruction to clear of carry flag.
(MULADDC_CORE): Tune to 6 instructions and less registers.
(MULADDC_STOP): Add ADC instruction to save carry flag.
2011-05-25 NIIBE Yutaka <gniibe@fsij.org>
* tool/hub_ctrl.py: New. Port of original C implementation.
2011-05-16 01:05:17 +00:00
2011-05-16 NIIBE Yutaka <gniibe@fsij.org>
2011-05-16 01:14:09 +00:00
* src/main.c (main): Call flash_unlock at the beginning.
(device_initialize_once): Don't call flash_unlock here.
* src/flash.c (flash_init): Likewise.
2011-05-16 01:05:17 +00:00
* src/openpgp.c (cmd_select_file): Don't use write_res_apdu.
(set_res_apdu): Rename from write_res_apdu. Just SW1 and SW2.
2011-05-13 02:59:05 +00:00
2011-05-13 NIIBE Yutaka <gniibe@fsij.org>
* Version 0.12.
2011-05-11 23:42:57 +00:00
2011-05-12 NIIBE Yutaka <gniibe@fsij.org>
2011-05-12 09:05:39 +00:00
* src/openpgp.c (cmd_pso, cmd_internal_authenticate)
(cmd_update_binary, cmd_write_binary): Don't check pw locked.
2011-05-12 05:00:02 +00:00
* tool/dfuse.py (DFU_STM32.verify): Add missing colon.
* tool/dfuse.py (get_device): Restrict to STMicro DfuSe.
2011-05-12 02:06:20 +00:00
* tool/gnuk_put_binary.py (main): Add -p option to enter password.
2011-05-12 02:04:14 +00:00
* src/ac.c (verify_user_0): New.
(verify_pso_cds, verify_admin_0): Use verify_user_0.
* src/openpgp.c (cmd_change_password): Use verify_user_0.
2011-05-12 00:26:40 +00:00
* src/random.c (get_salt): Rename from get_random.
(random_bytes_get, random_bytes_free): It's 16-byte.
2011-05-11 23:42:57 +00:00
* src/ac.c (verify_admin_0): Use PW_ERR_PW1 counter when
authenticated by PW1.
2011-05-11 00:27:49 +00:00
2011-05-11 NIIBE Yutaka <gniibe@fsij.org>
2011-05-11 14:33:38 +00:00
* src/ac.c (verify_pso_cds, verify_other): Fail (with no counter
update) if key is not registered yet.
(verify_admin_0): Compare to OPENPGP_CARD_INITIAL_PW3 when empty
PW3 and non-empty PW1 but signing key is not registered yet.
2011-05-11 07:46:21 +00:00
* tool/gnuk_put_binary.py: New implementation by pyscard.
2011-05-11 01:56:36 +00:00
* src/main.c (device_initialize_once): New.
* src/usb_prop.c (gnukStringSerial): Move to...
* src/usb_desc.c (gnukStringSerial): here. Bump version to 0.12.
Fill by 0xff.
* src/usb_prop.c (gnuk_device_init)
(gnuk_device_GetStringDescriptor): Don't use RAM for
gnukStringSerial, use ROM like other string descriptor.
* src/usb_desc.c (String_Descriptor): Add gnukStringSerial.
2011-05-11 00:34:22 +00:00
* src/openpgp-do.c (gpg_get_pw1_lifetime): Make static.
(gpg_do_load_prvkey, gpg_do_write_prvkey): Use kdi.
(gpg_increment_digital_signature_counter): Call gpg_get_pw1_lifetime.
* src/openpgp.c (cmd_pso): Follow the change.
2011-05-11 00:31:16 +00:00
* src/flash.c (keystore_pool): Remove. Use &_keystore_pool.
2011-05-11 00:27:49 +00:00
* src/ac.c (auth_status): Don't assign 0 as it's automatically
cleared.
2011-05-10 00:11:40 +00:00
2011-05-10 NIIBE Yutaka <gniibe@fsij.org>
2011-05-10 00:29:08 +00:00
* src/openpgp-do.c (gpg_pw_locked): Rename from gpg_passwd_locked.
(gpg_pw_get_err_counter): Rename from gpg_get_pw_err_counter.
(gpg_pw_reset_err_counter): Rename from gpg_reset_pw_err_counter.
(gpg_pw_increment_err_counter): Rename from gpg_increment_err_counter.
* src/ac.c, src/openpgp.c, src/gnuk.h: Follow the change.
2011-05-10 00:17:38 +00:00
Bug fixes.
* src/openpgp.c (cmd_reset_user_password, cmd_change_password)
* src/openpgp-do.c (proc_resetting_code): Fix check of return value.
* src/ac.c (ac_fini): Clear keystring_md_pw3.
2011-05-10 00:11:40 +00:00
Prevent observation of PW3 is emptiness by PW3's error counter.
Support verify_admin by PW1 when PW3 is empty.
* src/ac.c (admin_authorized): New.
(verify_admin_0): Set admin_authorized.
* src/openpgp-do.c (proc_resetting_code): Use admin_authorized.
(gpg_do_write_prvkey): Clear dek_encrypted_3 when keystring_admin
is NULL.
(proc_key_import): Checking admin_authorized, set keystring_admin.
* src/openpgp.c (cmd_reset_user_password): Use admin_authorized.
2011-04-18 08:50:04 +00:00
2011-04-18 NIIBE Yutaka <gniibe@fsij.org>
* gnuk.svg: Updated.
2011-04-15 08:50:03 +00:00
2011-04-15 NIIBE Yutaka <gniibe@fsij.org>
* Version 0.11.
* src/usb_prop.c (gnukStringSerial): Updated.
2011-04-10 23:57:54 +00:00
2011-04-11 NIIBE Yutaka <gniibe@fsij.org>
* tool/dfuse.py (DFU_STM32.verify): support data size of non-1-KiB.
2011-02-24 06:54:40 +00:00
2011-02-24 NIIBE Yutaka <gniibe@fsij.org>
* src/usb_prop.c (gnuk_device_SetInterface): Fix argument to
ClearDTOG_TX.
2011-02-10 04:57:23 +00:00
2011-02-10 NIIBE Yutaka <gniibe@fsij.org>
* Version 0.10.
* src/configure, src/Makefile.in (BOARD_DIR): New.
* boards/CQ_STARM/board.mk, boards/OLIMEX_STM32_H103/board.mk:
Removed.
* boards/STBEE/board.mk, boards/STBEE_MINI/board.mk: Removed.
* boards/STM32_PRIMER2/board.mk, boards/STM8S_DISCOVERY/board.mk:
Removed.
* src/Makefile.in (OUTFILES): Don't include random_bits.
2011-02-09 05:06:57 +00:00
2011-02-09 NIIBE Yutaka <gniibe@fsij.org>
* src/usb_prop.c (gnukStringSerial): Updated.
* tool/gnuk_put_binary.py (gnuk_token.__del__): Removed.
Releasing the interface is done in PyUSB.
* tool/dfuse.py (DFU_STM32.__del__): Removed.
* src/openpgp.c (cmd_write_binary): Support random bits and card
holder certificate as well.
* src/openpgp-do.c (do_openpgpcard_aid): Add volatile to prevent
compiler optimization to access AID.
2011-02-08 NIIBE Yutaka <gniibe@fsij.org>
* tool/gnuk_put_binary.py: Renamed (was: gnuk_update_binary.py).
(gnuk_token.cmd_write_binary): New.
(main): Support writing serial number.
* GNUK_SERIAL_NUMBER: Renamed (was: FSIJ_SERIAL_NUMBER).
* src/config.h.in (@SERIAL_DEFINE@): Removed.
* src/gnuk.h (FILEID_SERIAL_NO): New.
* src/openpgp.c (INS_WRITE_BINARY, cmd_write_binary): New.
* src/configure: Remove --with-fixed-serial support.
* src/openpgp-do.c (do_openpgpcard_aid): Remove support of
SERIAL_NUMBER_IN_AID.
* src/flash.c (flash_write_binary): Support FILEID_SERIAL_NO.
2011-02-04 07:43:14 +00:00
2011-02-04 NIIBE Yutaka <gniibe@fsij.org>
2011-02-07 02:57:27 +00:00
* tool/gnuk_update_binary.py: Support updating random bits.
* src/random.c (random_bits_start): Renamed.
(random_bytes_get): Check initial erased state.
* src/Makefile.in (random-data.o): Removed.
* src/gnuk.ld.in (.gnuk_random): Don't have .gnuk_random any more.
* src/flash.c (flash_erase_binary): Support FILEID_RANDOM.
(flash_write_binary): Ditto.
2011-02-04 07:43:14 +00:00
* src/openpgp.c (cmd_reset_user_password): Fix PINPAD_SUPPORT case
with reset code.
2011-02-01 06:25:36 +00:00
2011-02-01 NIIBE Yutaka <gniibe@fsij.org>
* Version 0.9.
* src/openpgp-do.c (extended_capabilities): Change value for card
holder certificate.
* src/usb_prop.c (gnuk_device_SetInterface): New.
2011-01-28 15:00:47 +00:00
2011-01-29 NIIBE Yutaka <gniibe@fsij.org>
* src/usb_prop.c (gnuk_device_Get_Interface_Setting): Handle the
case where we have multiple interfaces.
2011-01-28 08:38:52 +00:00
2011-01-28 NIIBE Yutaka <gniibe@fsij.org>
* tool/gnuk_update_binary.py: New.
* src/openpgp-do.c (gpg_do_get_data): Fix length adding two for
status word at the end and adding four for the tag and the length.
* src/usb-icc.c (icc_handle_data): Fix decrementing res_APDU_size.
(icc_power_off): Status should be the one *after* power off.
* src/openpgp.c (cmd_update_binary): Fix return code.
2011-01-27 01:02:46 +00:00
2011-01-27 NIIBE Yutaka <gniibe@fsij.org>
2011-01-27 09:17:01 +00:00
* src/usb-icc.c (res_APDU_pointer): New.
(icc_handle_data, USBthread): Handle res_APDU_pointer.
* src/openpgp.h (GPG_COMMAND_NOT_ALLOWED): New.
* src/openpgp.c (INS_UPDATE_BINARY, FILE_EF_CH_CERTIFICATE)
(FILE_EF_RANDOM, cmd_update_binary): New.
(process_command_apdu): Initialize res_APDU_pointer.
* src/openpgp-do.c (gpg_do_get_data): Handle GPG_DO_CH_CERTIFICATE.
* src/gnuk.ld.in (.gnuk_ch_certificate): New.
* src/flash.c (flash_check_blank, flash_erase_binary)
(flash_write_binary): New.
* src/openpgp-do.c (gpg_do_table): Exclude GPG_DO_CH_CERTIFICATE.
2011-01-27 06:09:59 +00:00
* src/openpgp.c (cmd_reset_user_password): Add PINPAD_SUPPORT.
2011-01-27 01:02:46 +00:00
* src/gnuk.ld.in: Fix alignment and filling.
2011-01-26 02:30:01 +00:00
2011-01-26 NIIBE Yutaka <gniibe@fsij.org>
* boards/STBEE/mcuconf.h: New.
* boards/STBEE/board.mk: New.
* boards/STBEE/board.h: New.
* boards/STBEE/board.c: New.
* tool/dfuse.py (DFU_STM32.verify): Add double ll_clear_status.
* src/configure (target): Add STBEE.
2011-01-25 01:48:33 +00:00
2011-01-25 NIIBE Yutaka <gniibe@fsij.org>
* src/openpgp.c (cmd_pso): Support DigestInfo by MD5 (for opensc).
2011-01-21 15:54:41 +00:00
2011-01-22 NIIBE Yutaka <gniibe@fsij.org>
* src/openpgp.c (cmd_pgp_gakp): Handle case of non-extended Lc.
(cmd_select_file): Return DF name when FCI is requested.
* src/openpgp-do.c (copy_do): Don't add tag if not requested.
* src/gnuk.h (memmove): Add declaration.
2011-01-21 03:07:51 +00:00
2011-01-21 NIIBE Yutaka <gniibe@fsij.org>
2011-01-21 12:36:16 +00:00
* src/openpgp-do.c (copy_do): Fix off-by-one error.
2011-01-21 03:07:51 +00:00
* src/openpgp.c (get_pinpad_input): Ifdef-out PINPAD_SUPPORT.
2011-01-19 05:36:04 +00:00
2011-01-19 NIIBE Yutaka <gniibe@fsij.org>
2011-01-19 06:44:37 +00:00
* Version 0.8.
* src/pin-cir.c (pin_main): Fix typo, call cir_ext_disable.
* src/usb_prop.c (gnukStringSerial): Updated.
2011-01-19 05:36:04 +00:00
* src/pin-dial.c: New.
* boards/STBEE_MINI/board.c (hwinit1): Add PINPAD_DIAL_SUPPORT.
(dial_sw_disable, dial_sw_enable, EXTI2_IRQHandler): New.
* src/gnuk.h: Add PINPAD_DIAL_SUPPORT.
* src/usb-icc.c (icc_handle_data): Handle PIN modification.
* src/usb_desc.c (gnukConfigDescriptor): bPinSupport = 3 when
PINPAD_DIAL_SUPPORT is enabled.
2011-01-18 NIIBE Yutaka <gniibe@fsij.org>
* src/pin-cir.c (pin_main): Call cir_ext_disable at the end.
2011-01-17 07:40:04 +00:00
2011-01-17 NIIBE Yutaka <gniibe@fsij.org>
2011-01-17 08:32:31 +00:00
* src/gnuk.h (PIN_INPUT_CURRENT, PIN_INPUT_NEW)
(PIN_INPUT_CONFIRM): New.
* src/pin-cir.c (pin_main): New argument MSG_CODE.
* src/openpgp.c (get_pinpad_input): New.
(cmd_verify): Use get_pinpad_input.
(cmd_change_password): Added PINPAD_SUPPORT.
2011-01-17 07:40:04 +00:00
* src/openpgp.c (cmd_nop): Removed.
* src/config.h.in: ifdef-out (not for ASSEMBLER).
2011-01-15 12:49:17 +00:00
2011-01-15 NIIBE Yutaka <gniibe@fsij.org>
2011-01-19 06:44:37 +00:00
* Version 0.7.
2011-01-15 12:49:17 +00:00
* src/usb-icc.c (icc_handle_data): Bug fix: add break for case
ICC_STATE_SEND.
2011-01-14 06:47:15 +00:00
2011-01-14 NIIBE Yutaka <gniibe@fsij.org>
* Version 0.6.
* src/usb_prop.c (gnukStringSerial): Include version number (again).
* boards/STM8S_DISCOVERY/board.c (hwinit1): Initialize TIM3 and
remap TIM3.
(cir_ext_disable, cir_ext_enable, EXTI9_5_IRQHandler)
(TIM3_IRQHandler): New.
* boards/STBEE_MINI/board.h (HAVE_7SEGLED): New.
* boards/STM8S_DISCOVERY/board.h: Include "config.h".
(VAL_GPIOBODR): PB0 (TIM3_CH3) is pull-down for PINPAD_SUPPORT.
* src/pin-cir.c (pindisp): Handle the board with no 7 segment
display.
2011-01-11 03:07:44 +00:00
2011-01-11 NIIBE Yutaka <gniibe@fsij.org>
* src/openpgp-do.c (do_openpgpcard_aid): Fix length of res_p;
2011-01-11 00:16:40 +00:00
2011-01-08 NIIBE Yutaka <gniibe@fsij.org>
* src/usb-icc.c (icc_handle_data): Handle the case of
ICC_STATE_SEND (back again to the implementation of v0.4).
(USBthread): Don't send back larger block (for libccid 1.3.11).
2011-01-07 07:18:47 +00:00
2011-01-07 NIIBE Yutaka <gniibe@fsij.org>
* src/openpgp.c (cmd_read_binary): Call gpg_do_get_data for AID.
* src/openpgp-do.c (gpg_do_get_data): Added new argument WITH_TAG.
* src/usb_prop.c (gnuk_device_init)
(gnuk_device_GetStringDescriptor): gnukStringSerial with unique
chip ID.
* src/openpgp-do.c (do_openpgpcard_aid): New.
(openpgpcard_aid): Removed.
* boards/common/hw_config.c (unique_device_id): New.
2011-01-06 06:50:23 +00:00
2011-01-06 NIIBE Yutaka <gniibe@fsij.org>
2011-01-07 07:18:47 +00:00
* src/config.h.in (PINPAD_MORE_DEFINE): Added.
* src/configure: Requiring bash (for variable substitution), added
PINPAD.
* src/Makefile.in: Support PINPAD.
2011-01-06 06:50:23 +00:00
* src/pin-cir.c (cir_timer_interrupt): Support Sharp protocol.
2011-01-04 12:06:55 +00:00
2011-01-04 NIIBE Yutaka <gniibe@fsij.org>
* src/chconf.h (CH_USE_DYNAMIC): It's TRUE now.
* src/usb_desc.c (gnukConfigDescriptor): Added PINPAD_SUPPORT.
2011-01-04 14:02:03 +00:00
* src/pin-cir.c (cir_timer_interrupt): Added CIR_PERIOD_INHIBIT_CHATTER.
2011-01-04 12:06:55 +00:00
2010-12-29 05:30:49 +00:00
2010-12-29 NIIBE Yutaka <gniibe@fsij.org>
* src/pin-cir.c (cir_timer_interrupt): Support Philips RC-5 protocol.
2010-12-28 11:01:43 +00:00
2010-12-28 NIIBE Yutaka <gniibe@fsij.org>
* src/pin-cir.c (cir_timer_interrupt): Support Philips RC-6 protocol.
2010-12-27 02:57:25 +00:00
2010-12-27 NIIBE Yutaka <gniibe@fsij.org>
* src/pin-cir.c (cir_timer_interrupt): Support Sony protocol.
2010-12-24 06:28:23 +00:00
2010-12-24 NIIBE Yutaka <gniibe@fsij.org>
* src/pin-cir.c: New file.
2010-12-20 08:00:23 +00:00
2010-12-20 NIIBE Yutaka <gniibe@fsij.org>
* src/openpgp.c (GPGthread): Added PINPAD_SUPPORT.
* boards/STBEE_MINI/mcuconf.h: Simplified.
* boards/STBEE_MINI/board.h: Include config.h.
(PINPAD_SUPPORT): Added.
* boards/STBEE_MINI/board.c (hwinit1): Added PINPAD_SUPPORT.
2010-12-15 01:24:39 +00:00
2010-12-15 NIIBE Yutaka <gniibe@fsij.org>
* src/configure (FLASH_SIZE): Without 'k'.
* src/gnuk.ld.in (MEMORY): Append "k" here.
2010-12-15 02:55:57 +00:00
(.gnuk_flash): End point should be aligned too.
2010-12-15 01:24:39 +00:00
* src/config.h.in (@PINPAD_DEFINE@): New.
* src/Makefile.in (@PINPAD_MAKE_OPTION@): New.
* src/configure (PINPAD_MAKE_OPTION, PINPAD_DEFINE): New.
2010-12-14 08:42:38 +00:00
2010-12-14 NIIBE Yutaka <gniibe@fsij.org>
* src/configure (FLASH_PAGE_SIZE): Always set.
2010-12-12 23:51:48 +00:00
2010-12-13 NIIBE Yutaka <gniibe@fsij.org>
* Version 0.5.
* src/usb_desc.c (gnukStringSerial): Updated.
2010-12-10 07:31:25 +00:00
2010-12-10 NIIBE Yutaka <gniibe@fsij.org>
* src/usb-cdc-vport.c (Virtual_Com_Port_Data_Setup)
(Virtual_Com_Port_NoData_Setup): No check for class&interface
request.
* src/usb-icc.c (ATR): Fixed.
* src/usb_desc.c (/* ICC Descriptor*/): bcdCCID = 1.1.
dwDefaultClock = dwMaximumClock = 3571.
dwFeatures 0x00040842.
* src/usb_prop.c (gnuk_clock_frequencies, gnuk_data_rates): New.
(gnuk_nothing_todo): Removed.
(gnuk_setup_with_data, gnuk_setup_with_nodata): New.
(Device_Property): Changed to call gnuk_setup_with_data and
gnuk_setup_with_nodata.
2010-12-09 01:12:54 +00:00
2010-12-09 NIIBE Yutaka <gniibe@fsij.org>
* src/usb-icc.c (icc_power_off): Set icc_data_size = 0 to specify
no command APDU. Signal GPGThread.
(icc_handle_data, USBthread): Don't signal main thread any more.
* src/openpgp.c (GPGthread): Only process the command APDU, if any.
* src/openpgp-do.c (do_tag_to_nr): Don't call fatal.
* src/main.c (fatal_code): New.
(main): Implemented 1-bit LED status display.
(fatal): Added argument CODE.
* src/flash.c (flash_data_pool_allocate): Supply argument FATAL_FLASH.
* src/random.c (random_bytes_get): Supply argument FATAL_RANDOM.
* src/ac.c (auth_status): Added volatile, and remove static.
2010-12-08 05:10:30 +00:00
2010-12-08 NIIBE Yutaka <gniibe@fsij.org>
2010-12-08 06:10:41 +00:00
* src/gnuk.h (AC_OTHER_AUTHORIZED): Renamed (was:
AC_PSO_OTHER_AUTHORIZED).
* src/ac.c (ac_reset_other): Renamed (was: ac_reset_pso_other).
(verify_other): Renamed (was: verify_pso_other).
(ac_reset_admin): New.
* src/openpgp.c (cmd_change_password): Call ac_reset_admin.
2010-12-08 05:10:30 +00:00
* src/main.c (main): Don't create GPGThread here.
* src/usb-icc.c (icc_power_on): But create here, when requested.
(icc_power_off): Terminate GPGThread.
* src/openpgp.c (gpg_init, gpg_fini): New.
(GPGthread): Check chThdShouldTerminate. Call gpg_init and gpg_fini.
2010-12-07 05:34:25 +00:00
2010-12-07 NIIBE Yutaka <gniibe@fsij.org>
USB CCID/ICC implementation changes.
* src/usb_desc.c (dwMaxCCIDMessageLength): Updated.
* src/usb-icc.c (EV_TX_FINISHED): New.
(icc_rcv_data, icc_tx_data): Removed.
(icc_buffer, icc_seq): New.
(icc_next_p, icc_chain_p): New.
(icc_tx_ready): Removed.
(EP1_IN_Callback): Handle multiple transactions.
(icc_prepare_receive): New.
(EP2_OUT_Callback): Handle multiple transactions.
(icc_error, icc_send_status): Handle the case of receive in chain.
(icc_power_on, icc_send_params): Specify it's a single transaction.
(icc_send_data_block_filling_header): New.
(icc_send_data_block): Simplify.
(icc_handle_data): Removed the case of ICC_STATE_SEND.
Handle buffer of multiple transactions.
(USBthread): Don't use sending in chain.
* src/gnuk.h (USB_LL_BUF_SIZE): New.
(USB_BUF_SIZE): Now, it's larger value.
* src/configure: Echo for --enable-debug.
* src/call-rsa.c (rsa_sign): Use temp[] buffer as rsa_pkcs1_sign
writes OUTPUT in early stage.
2010-12-04 04:46:37 +00:00
2010-12-04 NIIBE Yutaka <gniibe@fsij.org>
* src/flash.c (flash_keystore_release): Reset keystore storage.
2010-12-03 08:35:22 +00:00
2010-12-03 NIIBE Yutaka <gniibe@fsij.org>
Keystore management changes.
* src/flash.c (flash_key_alloc): Check FLASH_KEYSTORE_SIZE.
(flash_key_release): Removed.
(flash_keystore_release): New function.
* src/openpgp-do.c (gpg_do_write_prvkey): Make it static.
When there is a key already, return as error.
(proc_key_import): Call flash_keystore_release when all keys removed.
* src/gnuk.ld.in (_keystore_pool): Size of keystore is now 1.5KB.
2010-11-29 23:40:01 +00:00
2010-11-30 NIIBE Yutaka <gniibe@fsij.org>
2010-11-30 05:32:56 +00:00
Flash ROM fixes for STM32F10X_HD.
* src/gnuk.ld.in (.gnuk_flash): Use FLASH_PAGE_SIZE.
* src/configure (FLASH_PAGE_SIZE): Defined for gnuk.ld.
* src/flash.c (FLASH_PAGE_SIZE): New define.
(FLASH_DATA_POOL_SIZE): Use FLASH_PAGE_SIZE.
2010-11-30 04:54:43 +00:00
Import changes of ChibiOS_2.0.8.
* ChibiOS_2.0.8/os/hal/include/pwm.h
* ChibiOS_2.0.8/os/hal/platforms/STM32/pwm_lld.c
* ChibiOS_2.0.8/os/hal/platforms/STM32/pwm_lld.h
* ChibiOS_2.0.8/os/hal/src/pwm.c
* ChibiOS_2.0.8/os/hal/templates/pwm_lld.c
* ChibiOS_2.0.8/os/hal/templates/pwm_lld.h
* ChibiOS_2.0.8/os/kernel/include/ch.h
* ChibiOS_2.0.8/os/kernel/src/chevents.c
* ChibiOS_2.0.8/os/kernel/src/chthreads.c
* ChibiOS_2.0.8/boards/OLIMEX_LPC_P2148/board.h
* ChibiOS_2.0.8/readme.txt
* ChibiOS_2.0.8/test/testdyn.c
2010-12-03 08:35:22 +00:00
* ChibiOS_2.0.8/docs/*/*: Updated.
2010-11-30 04:54:43 +00:00
2010-11-30 01:04:30 +00:00
New private key management.
* src/ac.c (ac_reset_pso_cds, ac_reset_pso_other): Call
gpg_do_clear_prvkey.
(verify_pso_other): load private keys here.
* src/openpgp-do.c (kd): Keydata for Signing, Decryption, and
Authentication.
(gpg_do_load_prvkey, gpg_do_write_prvkey): Use kd[].
(gpg_do_clear_prvkey): New function.
* src/openpgp.c (cmd_pso, cmd_internal_authenticate): Use new API
of rsa_sign and rsa_decrypt.
2010-11-30 03:50:28 +00:00
(cmd_pso): Fixed bug of checking return value of gpg_get_pw1_lifetime.
2010-11-30 01:04:30 +00:00
* src/call-rsa.c (rsa_sign): New argument KD.
(rsa_decrypt): Likewise.
Don't use malloc/free in C library.
2010-11-29 23:40:01 +00:00
* src/stdlib.h (malloc, free): Use chHeapAlloc and chHeapFree.
2010-11-26 00:56:23 +00:00
2010-11-26 NIIBE Yutaka <gniibe@fsij.org>
2010-11-26 07:27:01 +00:00
* boards/STM8S_DISCOVERY/*: New.
* src/configure: STM8S_DISCOVERY only has 64KB flash memory.
2010-11-26 07:24:36 +00:00
* boards/STBEE_MINI/board.h (CPU_WITH_NO_GPIOE): New define.
* ChibiOS_2.0.6/os/hal/platforms/STM32/hal_lld.c: Use it.
* ChibiOS_2.0.6/os/hal/platforms/STM32/pal_lld.c: Likewise.
* ChibiOS_2.0.6/os/hal/platforms/STM32/pal_lld.h: Likewise.
2010-11-29 23:40:01 +00:00
* src/openpgp.c (cmd_pso): DigestInfo by SHA224/SHA384/SHA512 is
supported.
2010-11-26 00:56:23 +00:00
2010-11-22 05:53:37 +00:00
2010-11-22 NIIBE Yutaka <gniibe@fsij.org>
Import changes of ChibiOS_2.0.6.
* ChibiOS_2.0.6/demos/ARM7-AT91SAM7X-LWIP-GCC/chconf.h
* ChibiOS_2.0.6/os/hal/include/can.h
* ChibiOS_2.0.6/os/hal/platforms/AT91SAM7/hal_lld.c
* ChibiOS_2.0.6/os/hal/platforms/AT91SAM7/serial_lld.c
* ChibiOS_2.0.6/os/hal/platforms/LPC214x/serial_lld.c
* ChibiOS_2.0.6/os/hal/platforms/STM32/hal_lld_f103.h
* ChibiOS_2.0.6/os/hal/platforms/STM32/hal_lld_f105_f107.h
* ChibiOS_2.0.6/os/hal/platforms/STM32/pwm_lld.c
* ChibiOS_2.0.6/os/hal/platforms/STM32/serial_lld.h
* ChibiOS_2.0.6/os/hal/platforms/STM32/spi_lld.h
* ChibiOS_2.0.6/os/hal/src/adc.c
* ChibiOS_2.0.6/os/hal/src/spi.c
* ChibiOS_2.0.6/os/kernel/include/ch.h
* ChibiOS_2.0.6/os/kernel/include/chinline.h
* ChibiOS_2.0.6/os/kernel/include/chioch.h
* ChibiOS_2.0.6/os/kernel/include/chstreams.h
* ChibiOS_2.0.6/os/kernel/include/chthreads.h
* ChibiOS_2.0.6/os/kernel/src/chlists.c
* ChibiOS_2.0.6/os/kernel/src/chschd.c
* ChibiOS_2.0.6/os/kernel/src/chthreads.c
* ChibiOS_2.0.6/os/ports/GCC/ARM/rules.mk
* ChibiOS_2.0.6/os/ports/GCC/ARM7/chcore.h
* ChibiOS_2.0.6/os/ports/GCC/ARM7/port.dox
* ChibiOS_2.0.6/os/ports/GCC/ARMCMx/chcore_v6m.c
* ChibiOS_2.0.6/os/ports/GCC/ARMCMx/chcore_v6m.h
* ChibiOS_2.0.6/os/ports/GCC/ARMCMx/chcore_v7m.c
* ChibiOS_2.0.6/os/ports/GCC/ARMCMx/chcore_v7m.h
* ChibiOS_2.0.6/os/ports/GCC/ARMCMx/old/chcore_v7m.h
* ChibiOS_2.0.6/os/ports/GCC/AVR/chcore.h
* ChibiOS_2.0.6/os/ports/GCC/AVR/port.dox
* ChibiOS_2.0.6/os/ports/GCC/MSP430/chcore.c
* ChibiOS_2.0.6/os/ports/GCC/MSP430/chcore.h
* ChibiOS_2.0.6/os/ports/GCC/MSP430/port.dox
* ChibiOS_2.0.6/os/ports/GCC/PPC/chcore.h
* ChibiOS_2.0.6/os/ports/GCC/PPC/port.dox
* ChibiOS_2.0.6/os/ports/RC/STM8/port.dox
* ChibiOS_2.0.6/os/various/memstreams.h
* ChibiOS_2.0.6/readme.txt
* ChibiOS_2.0.6/docs/*/*: Updated
2010-11-19 14:43:12 +00:00
2010-11-14 NIIBE Yutaka <gniibe@fsij.org>
* src/openpgp.c (cmd_pso): DigestInfo by SHA256 is supported.
2010-11-12 14:19:27 +00:00
2010-11-12 NIIBE Yutaka <gniibe@fsij.org>
* src/usb_desc.c (gnukConfigDescriptor): Change dwFeatures.
* src/usb-icc.c (icc_send_params): Always return fixed result.
(icc_handle_data): Support ICC_GET_PARAMS.
2010-11-10 NIIBE Yutaka <gniibe@fsij.org>
* src/usb_desc.c (gnukConfigDescriptor): Fix bmAttributes.
2010-11-09 05:32:41 +00:00
2010-11-09 NIIBE Yutaka <gniibe@fsij.org>
* Version 0.4.
* src/usb_desc.c (gnukStringSerial): Updated.
* ChibiOS_2.0.2/os/hal/platforms/STM32/pal_lld.h (PALConfig):
STBee Mini uses STM32F103CBT6 which expose no GPIO E port.
* ChibiOS_2.0.2/os/hal/platforms/STM32/pal_lld.c (_pal_lld_init):
Likewise.
2010-11-08 00:16:06 +00:00
2010-11-08 NIIBE Yutaka <gniibe@fsij.org>
2010-11-09 05:32:41 +00:00
* tool/dump_mem.py: New tool.
Implement GC for data pool in flash memory.
* src/openpgp-do.c (gpg_write_digital_signature_counter): New.
(gpg_increment_digital_signature_counter): Fix for GC.
(gpg_data_scan): Rename from gpg_do_table_init.
(gpg_data_copy): New function for copying GC.
* src/main.c (main): Call gpg_data_scan with the address which
flash_init returns.
* src/flash.c (flash_erase_page): New function.
(FLASH_DATA_POOL_SIZE): data_pool is 2KiB now.
(flash_data): Put a header (GC generation).
(flash_init): Implement choosing a data pool page.
(flash_data_pool): Removed.
(flash_copying_gc): New function.
(flash_data_pool_allocate): Call flash_copying_gc when full.
(flash_do_write_internal, flash_put_data_internal)
(flash_bool_write_internal, flash_cnt123_write_internal): New
* src/gnuk.ld.in (gnuk_flash): data_pool is 2KiB now.
Bug fixes.
2010-11-08 00:40:31 +00:00
* src/openpgp.c (cmd_change_password, cmd_reset_user_password):
Write to APDU correctly.
* src/flash.c (flash_warning): Make it public.
2010-11-08 00:16:06 +00:00
* src/openpgp-do.c (do_hist_bytes, do_fp_all, do_cafp_all)
(do_kgtime_all, do_ds_count): Fix return value.
2010-11-08 00:24:52 +00:00
(rw_pw_status): Correctly return value.
(proc_resetting_code): Change func proto. to return success/failure.
(proc_key_import): Ditto.
(gpg_do_put_data): Handle return values.
2010-11-08 00:40:31 +00:00
(gpg_do_write_simple): Don't write to APDU.
2010-11-08 00:16:06 +00:00
2010-11-05 NIIBE Yutaka <gniibe@fsij.org>
2010-11-05 09:22:56 +00:00
Bug fixes.
2010-11-05 08:43:01 +00:00
* src/openpgp.c (gpg_change_keystring): Handle
GPG_KEY_FOR_AUTHENTICATION.
2010-11-05 09:22:56 +00:00
* src/openpgp-do.c (gpg_do_write_prvkey): Remove multiple call
of flash_do_release.
2010-11-05 08:43:01 +00:00
2010-11-08 05:06:54 +00:00
Bug fix.
* src/openpgp-do.c (gpg_do_write_prvkey): Don't hardcode 6, but
use strlen.
2010-11-05 08:37:58 +00:00
* src/flash.c, src/gnuk.ld.in: Rename "Flash DO Pool" to "Flash
Data Pool", because it's not only DO.
* src/gnuk.h, src/opengpg-do.c: Cleanup.
Digital Signature Counter implementation improvement.
* src/gnuk.h (NR_DO_DS_COUNT): Removed.
(NR_COUNTER_DS, NR_COUNTER_DS_LSB): New.
* src/openpgp-do.c (do_ds_count_initial_value): Removed.
(gpg_do_increment_digital_signature_counter): Removed.
(digital_signature_counter): New variable.
(do_ds_count, gpg_increment_digital_signature_counter): New functions.
(gpg_do_table): Change the entry for GPG_DO_DS_COUNT as DO_PROC_READ.
(gpg_do_table_init): Handle digital_signature_counter.
* src/flash.c (flash_data_pool_allocate, flash_put_data): New.
Password status implementation improvement.
* src/gnuk.h (PW_STATUS_PW1, PW_STATUS_RC, PW_STATUS_PW3): Removed.
(PW_ERR_PW1, PW_ERR_RC, PW_ERR_PW3): New define.
(NR_COUNTER_123, NR_BOOL_PW1_LIFETIME): New define.
(NR_NONE, NR_EMPTY): New define.
* src/flash.c (flash_bool_clear, flash_bool_write)
(flash_cnt123_get_value, flash_cnt123_increment)
(flash_cnt123_clear): New functions.
* src/openpgp-do.c (do_pw_status_bytes_template): Removed.
(PW_STATUS_BYTES_TEMPLATE, gpg_do_reset_pw_counter): Removed.
(PASSWORD_ERRORS_MAX, PW_LEN_MAX): New define.
(pw1_lifetime_p, pw_err_counter_p): New variables.
(gpg_get_pw1_lifetime): New function.
(gpg_get_pw_err_counter, gpg_passwd_locked, gpg_reset_pw_counter)
(gpg_increment_pw_counter): New functions.
(rw_pw_status): Use pw1_lifetime_p and pw_err_counter_p.
(gpg_do_table_init): Handle NR_COUNTER_123 and NR_BOOL_PW1_LIFETIME.
* src/ac.c (verify_pso_cds, verify_pso_other, verify_admin_0):
Follow the changes.
* src/openpgp.c (cmd_change_password, cmd_reset_user_password)
(cmd_pso, cmd_internal_authenticate): Likewise.
2010-11-04 01:33:20 +00:00
2010-11-04 NIIBE Yutaka <gniibe@fsij.org>
* src/flash.c (flash_warning): New.
2010-11-04 04:57:42 +00:00
(flash_do_pool): Added header for DO pool.
(flash_do_release): Fill zero.
(flash_do_write): Change DO format in flash.
* src/openpgp-do.c (gpg_do_table_init, copy_do_1)
(gpg_do_read_simple): Follow the change of DO format in flash.
2010-11-04 01:33:20 +00:00
* src/openpgp-do.c (DO_CMP_READ): Renamed.
(cmp_ch_data, cmp_app_data, cmp_ss_temp): Likewise.
(with_tag): Removed static global variable.
(do_hist_bytes, do_fp_all, do_cafp_all, do_kgtime_all)
(rw_pw_status, copy_do_1, copy_do, gpg_do_get_data): Added
with_tag argument.
(gpg_do_put_data): length > 255 will be error.
2010-11-03 04:47:28 +00:00
2010-11-03 NIIBE Yutaka <gniibe@fsij.org>
Bug fixes.
* src/ac.c (verify_admin_0): Initialize pwsb earlier.
* src/openpgp-do.c (copy_do_1): Access do_data[0] (was: do_data[1]).
2010-11-02 03:05:18 +00:00
2010-11-02 NIIBE Yutaka <gniibe@fsij.org>
2010-11-03 04:47:28 +00:00
DfuSe support.
2010-11-02 03:05:18 +00:00
* tool/dfuse.py (DFU_STM32.download): Put '#' for each 4-KiB.
Added 0-length write to finish download.
Take intel_hex object as argument.
(DFU_STM32.ll_upload_block): New method.
(DFU_STM32.dfuse_read_memory): New method.
(DFU_STM32.verify): New method.
(get_device): Support DFU_STM32PROTOCOL_0 too (for CQ STARM).
* tool/dfuse.py: Renamed from dfu_stmicroelectronics_extention.py.
2010-11-01 09:14:10 +00:00
2010-11-01 NIIBE Yutaka <gniibe@fsij.org>
* tool/intel_hex.py: New file.
* tool/dfu_stmicroelectronics_extention.py: New file.
2010-10-28 00:53:41 +00:00
2010-10-28 NIIBE Yutaka <gniibe@fsij.org>
* src/gnuk.h (OPENPGP_CARD_INITIAL_PW3): New.
* src/ac.c (verify_admin_0): Use OPENPGP_CARD_INITIAL_PW3.
2010-10-23 02:20:56 +00:00
2010-10-23 NIIBE Yutaka <gniibe@fsij.org>
* Version 0.3.
* src/usb_desc.c (gnukStringSerial): Updated.
2010-10-22 03:56:40 +00:00
2010-10-22 NIIBE Yutaka <gniibe@fsij.org>
2010-10-22 08:18:06 +00:00
* src/gnuk.ld.in (.gnuk_random): Fix description so that
padding with 0xffffffff will be in gnuk.hex.
* src/openpgp.c (file_selection): Change type (was: int).
(FILE_NONE..FILE_EF_SERIAL): Change the values.
2010-10-22 03:56:40 +00:00
* src/configure: Added STBee Mini support.
* boards/STBEE_MINI/mcuconf.h: New.
* boards/STBEE_MINI/board.mk: New.
* boards/STBEE_MINI/board.h: New.
* boards/STBEE_MINI/board.c: New.
* ChibiOS_2.0.2/os/hal/platforms/STM32/hal_lld.c
(pal_default_config): STBee Mini uses STM32F103CBT6 which expose
no GPIO E port.
2010-10-22 00:24:12 +00:00
2010-10-21 NIIBE Yutaka <gniibe@fsij.org>
* boards/common/hw_config.c (Get_SerialNum): Removed.
* src/usb_prop.c (gnuk_device_init): Remove calling Get_SerialNum.
* src/usb_desc.c (gnukStringSerial): Updated.
* boards/CQ_STARM/board.c (set_led): Fix polarity.
2010-10-20 01:14:03 +00:00
2010-10-20 NIIBE Yutaka <gniibe@fsij.org>
2010-10-20 04:34:04 +00:00
* FSIJ_SERIAL_NUMBER: New.
* src/configure (with_fsij): Added FSIJ serial number support.
* src/config.h.in (@FSIJ_DEFINE@, @SERIAL_NUMBER_FOUR_BYTES@): New.
2010-10-20 01:14:03 +00:00
* src/configure: Added CQ STARM target.
* boards/CQ_STARM/mcuconf.h: New.
* boards/CQ_STARM/board.mk: New.
* boards/CQ_STARM/board.h: New.
* boards/CQ_STARM/board.c: New.
2010-10-20 01:00:37 +00:00
2010-10-19 NIIBE Yutaka <gniibe@fsij.org>
* boards/STM32_PRIMER2/board.mk (BOARDSRC): Use common/hw_config.c.
* boards/OLIMEX_STM32_H103/board.mk (BOARDSRC): Likewise.
* boards/common/hw_config.c: Move board specific functions to ...
* boards/STM32_PRIMER2/board.c (USB_Cable_Config, set_led): ... here.
* boards/OLIMEX_STM32_H103/board.c (USB_Cable_Config, set_led): Ditto.
* boards/{OLIMEX_STM32_H103,STM32_PRIMER2}/hw_config.c: Removed.
* boards/common/hw_config.c: New file (was: boards/*/hw_config.c).
* .gitignore: New file.
2010-10-16 NIIBE Yutaka <gniibe@fsij.org>
Implement "INTERNAL AUTHENTICATE" command.
* src/gnuk.h (BY_USER, BY_RESETCODE, BY_ADMIN): New defines.
(NUM_ALL_PRV_KEYS): Now it's 3 (was: 2).
* src/openpgp.c (INS_INTERNAL_AUTHENTICATE): New define.
(cmd_internal_authenticate): New function.
(cmds): Added INS_INTERNAL_AUTHENTICATE.
(cmd_change_password): Use BY_USER.
(cmd_reset_user_password): Use BY_USER, BY_RESETCODE, BY_ADMIN.
(cmd_pso): Load GPG_KEY_FOR_DECRYPTION here.
(cmd_pso): Removed adding status word into res_APDU...
* src/call-rsa.c (rsa_sign): and moved adding status word into
res_APDU here.
* src/ac.c (pw1_keystring): New variable.
(ac_reset_pso_other): Clear pw1_keystring.
(verify_pso_cds): Use BY_USER.
(verify_pso_other): Just check the length of password here, and
defer real check to cmd_pso or cmd_internal_authenticate.
2010-10-14 08:08:09 +00:00
2010-10-14 NIIBE Yutaka <gniibe@fsij.org>
Adding 'configure' support.
* src/configure: New file.
* src/Makefile.in: Renamed from src/Makefile.
* src/config.h: Renamed from src/config.h.
* src/gnuk.ld: Renamed from src/gnuk.ld.
Adding DFU_SUPPORT.
* boards/common/hwinit0.c: New file adding DFU_SUPPORT.
* boards/common/hwinit1.c: New file.
* boards/OLIMEX_STM32_H103/board.c: Include config.h.
Use common/hwinit0.c and common/hwinit1.c.
* boards/STM32_PRIMER2/board.c: Likewise.
2010-09-16 02:03:14 +00:00
2010-09-16 NIIBE Yutaka <gniibe@fsij.org>
* src/usb-icc.c (icc_error): New function.
(icc_handle_data): Call icc_error.
Don't go to STATE_START on errors.
2010-09-13 02:47:21 +00:00
2010-09-13 NIIBE Yutaka <gniibe@fsij.org>
2010-09-10 01:52:07 +00:00
* Version 0.2.
2010-09-13 02:47:21 +00:00
* src/openpgp.c (cmd_select_file): Override data of number_of_bytes.
* src/openpgp-do.c (gpg_do_table_init): Calculate number of byte
which Data Objects consumes.
2010-09-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* src/call-rsa.c (rsa_decrypt): Debug output only when DEBUG.
* boards/STM32_PRIMER2/hw_config.c (USB_Cable_Config): Fix GPIO.
(set_led): Ditto.
* boards/STM32_PRIMER2/board.c (hwinit1): Added LED initialization.
2010-09-11 NIIBE Yutaka <gniibe@fsij.org>
2010-09-10 01:52:07 +00:00
* src/usb-icc.c (ATR): Fixed.
(icc_send_params): New function.
(icc_handle_data): Handle ICC_SET_PARAMS request.
* src/random.c (random_bytes_get, random_bytes_free, get_random):
Clear used random bytes.
* src/flash.c (flash_clear_halfword): New function.
2010-09-09 08:50:34 +00:00
2010-09-10 NIIBE Yutaka <gniibe@fsij.org>
2010-09-10 01:52:07 +00:00
* Version 0.1.
2010-09-09 08:50:34 +00:00
* src/usb_desc.c (gnukStringSerial): Change the value so that
libccid doesn't get confused.
* src/openpgp.c (gpg_change_keystring): Support key for decryption
as well.
(cmd_read_binary): Use openpgpcard_aid.
(cmd_pso): call ac_reset_pso_other.
* src/openpgp-do.c (openpgpcard_aid): Renamed from aid, and exported.
(do_ds_count_initial_value): New const variable.
(num_prv_keys): New variable.
(gpg_do_write_prvkey): Remove contents of keystring only if
++num_prv_keys == NUM_ALL_PRV_KEYS.
(gpg_do_chks_prvkey): Call flash_do_release.
(gpg_do_table_init): Initialize with do_ds_count_initial_value.
Initialize num_prv_keys.
(gpg_do_write_simple): Support removing DO.
(gpg_do_increment_digital_signature_counter): Call flash_do_release.
* src/gnuk.h (NUM_ALL_PRV_KEYS): New definition.
(OPENPGP_CARD_INITIAL_PW1): New definition.
(enum kind_of_key): Rename.
* src/ac.c (ac_reset_pso_cds): New function.
2010-09-09 00:51:09 +00:00
2010-09-09 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* boards/STM32_PRIMER2/{board.c,board.h,board.mk,hw_config.c,mcuconf.h}:
New files.
* boards/OLIMEX_STM32_H103/{mcuconf.h,hw_config.c}: Moved from src.
* src/main.c (main): Use set_led instead of palClearPad directly.
2010-09-08 05:24:12 +00:00
2010-09-08 NIIBE Yutaka <gniibe@fsij.org>
* src/ac.c (calc_md): Make SHA1 variable auto.
* src/debug.c (put_int): New.
* src/gnuk.ld (__process_stack_size__): Removed.
* src/main.c (STDOUTthread): Use Event.
(main): Make LED ON during command execution, blink usually.
* src/openpgp-do.c (encrypt, decrypt): Make AES variables auto.
(gpg_do_table): GPG_DO_ALG_AUT is NULL.
* src/openpgp.c (cmd_pso): Bug fix for extended Lc.
* src/usb-icc.c (icc_power_off): Make LED ON during command
execution.
(USB_ICC_TIMEOUT): Longer value (was: 1000).
* src/usb_desc.c (gnukConfigDescriptor): Fix bcdCCID value.
* src/vcomport.mk (VCOMSRC): Use our own usb_endp.c.
* src/usb_desc.c (gnukConfigDescriptor): ICC Descriptor is
Revision 1.0.
* polarssl-0.14.0/include/polarssl/config.h: Commend out
POLARSSL_SELF_TEST.
* polarssl-0.14.0/library/rsa.c (rsa_private): Don't check input,
so that we don't access ctx->N.
(rsa_pkcs1_decrypt): size of BUF is enough as 256.
* polarssl-0.14.0/library/sha1.c (sha1_file): #if-out to avoid
stdio of libc.
* polarssl-0.14.0/library/bignum.c (mpi_write_hlp)
(mpi_write_string, mpi_read_file, mpi_read_file): #if-out to avoid
stdio of libc.
2010-09-09 08:50:34 +00:00
2010-09-07 NIIBE Yutaka <gniibe@fsij.org>
2010-09-08 05:24:12 +00:00
* gnuk.svg: New file.
2010-09-05 17:31:32 +00:00
2010-09-06 NIIBE Yutaka <gniibe@fsij.org>
* Initial version 0.0.