2010-10-21 NIIBE Yutaka * 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 NIIBE Yutaka * FSIJ_SERIAL_NUMBER: New. * src/configure (with_fsij): Added FSIJ serial number support. * src/config.h.in (@FSIJ_DEFINE@, @SERIAL_NUMBER_FOUR_BYTES@): New. * 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-19 NIIBE Yutaka * 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 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 NIIBE Yutaka 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 NIIBE Yutaka * 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 NIIBE Yutaka * Version 0.2. * 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 * 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 * 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-10 NIIBE Yutaka * Version 0.1. * 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 Kaz Kojima * 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 NIIBE Yutaka * 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-07 NIIBE Yutaka * gnuk.svg: New file. 2010-09-06 NIIBE Yutaka * Initial version 0.0.