fix relocation of R2
[gnuk/gnuk.git] / ChangeLog
1 2013-12-11  Niibe Yutaka  <gniibe@fsij.org>
2
3         * regnual/sys.c (entry): Fix relocation calculation.
4
5 2013-11-27  Niibe Yutaka  <gniibe@fsij.org>
6
7         * src/stm32f103.h (AFIO_MAPR_SWJ_CFG_DISABLE): New.
8         * src/sys.c: Likewise.
9
10 2013-11-26  Niibe Yutaka  <gniibe@fsij.org>
11
12         * src/usb_desc.c (hid_report_desc): New.
13         (ICC_TOTAL_LENGTH): Update.
14         (HID_TOTAL_LENGTH, HID_NUM_INTERFACES): New.
15         (W_TOTAL_LENGTH, NUM_INTERFACES): Update.
16         (gnukConfigDescriptor): Add IN2 interrupt endpoint descriptor.
17         Add HID interface descriptor.
18         (usb_cb_get_descriptor): Handle HID.
19
20         * src/usb_ctrl.c (NUM_INTERFACES, MSC_INTERFACE_NO): Add 1.
21         (USB_HID_REQ_*, HID_LED_STATUS_NUMLOCK): New.
22         (gnuk_setup_endpoints_for_interface): Add ENDP2 interrupt
23         endpoint.
24         (usb_cb_setup): Handle HID requests.
25         (usb_cb_ctrl_write_finish): Likewise.
26
27         * src/usb-icc.c (ccid_card_change_signal): New.
28         (ccid_thread): Handle card change.
29         (icc_error, icc_send_status): Handle ICC_STATE_NOCARD state.
30         (icc_handle_data): Add the case of ICC_STATE_NOCARD.
31         (EP2_IN_Callback): New.
32
33 2013-11-26  Niibe Yutaka  <gniibe@fsij.org>
34
35         * src/pin-dial.c: Remove.
36         * src/configure: Remove pin-dial suppot.
37
38 2013-11-25  Niibe Yutaka  <gniibe@fsij.org>
39
40         * src/Makefile.in (HEXOUTPUT_MAKE_OPTION): New.
41         * src/configure (HEXOUTPUT_MAKE_OPTION): New.
42         * src/main.c: Include board.h.
43         * src/stm32f103.h (EXTI0_IRQ, EXTI1_IRQ): New.
44
45 2013-11-18  Niibe Yutaka  <gniibe@fsij.org>
46
47         * regnual/sys.c (entry): Bug fix of clearing BSS.
48
49         * src/usb_stm32f103.c: Update from NeuG.
50         (usb_handle_transfer): Add argument ISTR_VALUE.
51
52         * src/openpgp.c (card_thread): Add noinline attribute.
53
54         * src/usb-icc.c (ccid_thread): Join the OpenPGP thread.
55         Add noinline attribute.
56
57 2013-11-15  Niibe Yutaka  <gniibe@fsij.org>
58
59         * src/configure (options): Add --enable-sys1-compat.
60
61 2013-11-12  Niibe Yutaka  <gniibe@fsij.org>
62
63         * chopstx: Upgrade to 0.03.
64
65         * src/usb_desc.c (usb_initial_feature): Remove.
66         (USB_SELF_POWERED): Move to ...
67         * src/usb_conf.h (USB_SELF_POWERED): ... here.
68         * src/usb_ctrl.c (usb_cb_device_reset, usb_intr): Follow the
69         change.
70
71 2013-11-11  Niibe Yutaka  <gniibe@fsij.org>
72
73         * src/adc_stm32f103.c (adc_wait_completion): Update from NeuG 1.0.
74
75 2013-11-03  Niibe Yutaka  <gniibe@fsij.org>
76
77         * regnual/regnual.c (usb_cb_get_descriptor): Update to new API.
78
79         * src/usb_lld.h (usb_initial_feature): Remove.
80
81         * chopstx: Update to 0.01.
82         * src/pin-cir.c: Chatter fix to 200ms.
83         * src/main.c: Fix bDeviceState.
84
85 2013-11-02  Niibe Yutaka  <gniibe@fsij.org>
86
87         * src/usb_lld.h, src/usb_stm32f103.c (std_get_descriptor): Change
88         the API of usb_cb_get_descriptor.
89         * src/usb_desc.c: Follow the change.
90         * src/usb_conf.h: Modify for CCID INT and HID usage.
91
92 2013-11-02  Niibe Yutaka  <gniibe@fsij.org>
93
94         * src/pin-cir.c: Port to Chopstx.
95
96         * chopstx: Update.
97         * src/configure (TIM_SIZE, EXT_SIZE): New.
98         * src/gnuk.ld.in (__process6_stack_size__)
99         (__process7_stack_size__): New.
100         * src/main.c (main): Call cir_init.
101         * src/openpgp.c (openpgp_card_thread): Rename from GPGthread.
102         * src/usb-icc.c (icc_power_on): Follow the change.
103
104 2013-11-01  Niibe Yutaka  <gniibe@fsij.org>
105
106         * src/sys.c: Update from Chopstx.
107         * src/usb_lld.h: Remove interrupt definition.
108         * src/stm32f103.h: Add AFIO, EXTI, and TIMER constants.
109
110 2013-10-31  Niibe Yutaka  <gniibe@fsij.org>
111
112         * src/main.c (main): Call msc_init before USB interrupt thread.
113         * src/gnuk.h, src/usb-msc.h, src/usb-msc.c, src/pin-dnd.c: Port to
114         Chipstx.
115         * src/openpgp.c (get_pinpad_input): Follow the change.
116         * src/usb_ctrl.c (gnuk_setup_endpoints_for_interface): Don't stall
117         RX of ENDP6.
118
119 2013-10-24  Niibe Yutaka  <gniibe@fsij.org>
120
121         * src/Makefile.in (DEFS): Add -DCHX_PRIO_MAIN=5 for LED blink.
122         * src/main.c (PRIO_CCID): It's now 3 (was: 2).
123
124 2013-10-24  Niibe Yutaka  <gniibe@fsij.org>
125
126         * src/gnuk.ld.in (.gnuk_flash): Three pages for three keys.
127         * src/flash.c (FLASH_KEYSTORE_SIZE): Likewise.
128         (flash_keystore_release): Remove.
129         (flash_key_fill_zero_as_released)
130         (flash_check_all_other_keys_released, flash_key_release): New.
131         (flash_init, flash_key_alloc): New method to handle free space.
132         * src/openpgp-do.c (fetch_four_bytes): New.
133         (gpg_do_load_prvkey, gpg_do_delete_prvkey, gpg_do_public_key): Use
134         fetch_four_bytes.
135         (gpg_do_delete_prvkey): Call flash_key_release.
136
137 2013-10-23  Niibe Yutaka  <gniibe@fsij.org>
138
139         * test/features/010_setup_passphrase.feature
140         * test/features/030_key_registration.feature
141         * test/features/040_passphrase_change.feature
142         * test/features/410_setup_passphrase.feature
143         * test/features/430_key_registration.feature
144         * test/features/201_keygen.feature
145         * test/features/601_keygen.feature: Modified to support new way of
146         pass phrase reset by key import / key generation.
147
148         * test/features/201_keygen.feature
149         * test/features/601_keygen.feature
150         * test/features/202_setup_passphrase.feature
151         * test/features/602_setup_passphrase.feature: Rename to change
152         order of execution.
153
154 2013-10-23  Niibe Yutaka  <gniibe@fsij.org>
155
156         * src/openpgp-do.c (gpg_do_write_prvkey): Bug fix of adding
157         num_prv_keys.
158
159 2013-10-22  Niibe Yutaka  <gniibe@fsij.org>
160
161         * src/openpgp-do.c (gpg_do_write_prvkey): Bug fix.
162
163 2013-10-15  Niibe Yutaka  <gniibe@fsij.org>
164
165         * src/openpgp.c (cmd_change_password, cmd_reset_user_password): It
166         is now error to change User's pass phrase with no keys.
167
168         * src/openpgp-do.c (proc_resetting_code): Likewise for resetting
169         code.
170         (gpg_do_delete_prvkey): New.
171         (gpg_do_write_prvkey): Make sure to delete the key before writing.
172         User's pass phrase is always the one of factory setting.
173         (gpg_do_chks_prvkey): Support removing the key.
174         (proc_key_import): Use gpg_do_delete_prvkey.
175         (gpg_do_keygen): Use factory setting pass phrase.
176
177 2013-10-11  Niibe Yutaka  <gniibe@fsij.org>
178
179         * src/ac.c (verify_user_0, verify_admin_00): Fix conditions.
180
181         * src/openpgp-do.c (gpg_do_write_prvkey): Delete keystring
182         information from data object of NR_DO_KEYSTRING_PW3.
183         Fix conditions.
184         (gpg_do_keygen): Likewise.
185
186         * src/openpgp.c (cmd_reset_user_password): Likewise.
187
188 2013-10-10  Niibe Yutaka  <gniibe@fsij.org>
189
190         * src/gnuk.h (S2K_ITER): Remove.  It's determined at compile time.
191
192         * src/openpgp-do.c (proc_resetting_code, gpg_do_write_prvkey)
193         (proc_key_import): Remove "iteration" field.
194
195         * src/openpgp.c (cmd_change_password): Likewise.
196
197 2013-10-10  Niibe Yutaka  <gniibe@fsij.org>
198
199         * src/openpgp-do.c (gpg_do_write_prvkey): Access of data object
200         considering garbage collection.
201
202         * src/openpgp.c (cmd_change_password): Call gpg_do_write_simple
203         after accessing the data object (it may cause garbage collection).
204
205 2013-10-10  Niibe Yutaka  <gniibe@fsij.org>
206
207         * polarssl/library/bignum.c (mpi_montred): Constant time for
208         carry propagation.  Bug fix for carry propagation.
209         (mpi_exp_mod): Bug fix.  Shrink the size of RR as same as X.
210
211 2013-10-09  Niibe Yutaka  <gniibe@fsij.org>
212
213         * src/ac.c (verify_user_0, verify_admin_00, verify_admin_0): Add a
214         flag to save into keystring_md_pw3.  Add SALT handling.
215         (decode_iterate_count, calc_md, gpg_set_pw3): Remove.
216
217         * src/openpgp-do.c (proc_resetting_code, gpg_do_write_prvkey)
218         (gpg_do_keygen): Add SALT handling.
219         * src/openpgp.c (cmd_change_password, cmd_reset_user_password)
220         (s2k): Ditto.
221         * src/random.c (random_get_salt): Rename from get_salt.
222
223 2013-10-09  Niibe Yutaka  <gniibe@fsij.org>
224
225         * src/openpgp-do.c (gpg_do_write_prvkey): Remove information (but
226         pass phrase length) for admin from keystring data object.
227         (proc_key_import): Recover admin keystring to DO when key deletion.
228
229 2013-10-09  Niibe Yutaka  <gniibe@fsij.org>
230
231         * src/ac.c (verify_user_0, verify_admin_00): Handle PW_LEN_MASK.
232         * src/openpgp-do.c (proc_resetting_code, gpg_do_write_prvkey):
233         Likewise.
234
235         * src/openpgp.c (cmd_change_password, cmd_reset_user_password):
236         Handle PW_LEN_KEYSTRING_BIT.
237
238 2013-10-09  Niibe Yutaka  <gniibe@fsij.org>
239
240         * src/ac.c (verify_admin_00): New.  Add authentication by loading
241         signature key.
242         (verify_admin_0): Use verify_admin_00.
243
244         * src/openpgp.c (cmd_change_password): Admin keystring handling as
245         same as user's.
246
247 2013-10-08  Niibe Yutaka  <gniibe@fsij.org>
248
249         * src/openpgp.c (modify_binary): Allow odd size of certificate.
250
251         * polarssl/library/rsa.c: Update from PolarSSL 1.2.10.
252         * polarssl/include/polarssl/rsa.h: Ditto.
253
254 2013-10-07  Niibe Yutaka  <gniibe@fsij.org>
255
256         * polarssl/library/bignum.c (mpi_sub_hlp): Return CARRY.
257         (mpi_sub_abs): Carry propagatoin is done here.
258         (mpi_mul_hlp_mm): Remove.
259         (mpi_mul_hlp): Return CARRY, computation in constant time.
260         (mpi_mul_mpi): Change the order of computation not to propagate
261         carry.
262         (mpi_montmul): Minimum zero-ing of D and reduce usage of temporary
263         memory, by one word.  Use carry of mpi_mul_hlp.  Use
264         NEED_SUBTRACTION against timing attack.
265         (mpi_exp_mod): Minimum usage of temporary memory.
266
267 2013-10-06  Niibe Yutaka  <gniibe@fsij.org>
268
269         * polarssl/library/bignum.c (mpi_mul_hlp_mm): New.  Handle
270         extra-carry in constant time to mitigate timing attack.
271         (mpi_montmul): Use mpi_mul_hlp_mm.
272         * src/call-rsa.c (rsa_sign, rsa_decrypt, rsa_verify): Don't
273         use RSA blinding.
274
275 2013-10-05  Niibe Yutaka  <gniibe@fsij.org>
276
277         * polarssl/include/polarssl/aes.h: Update from PolarSSL 1.2.9.
278         * polarssl/include/polarssl/bignum.h: Ditto.
279         * polarssl/include/polarssl/config.h: Ditto.
280         * polarssl/include/polarssl/rsa.h: Ditto.
281         * polarssl/library/aes.c, polarssl/library/bignum.c: Ditto.
282         * polarssl/library/rsa.c: Ditto.  Fix rsa_free.
283         * src/call-rsa.c (rsa_sign, modulus_calc, rsa_decrypt)
284         (rsa_verify): Follow changes of PolarSSL 1.2.9 with RSA blinding.
285         Better error checking.
286
287 2013-10-04  Niibe Yutaka  <gniibe@fsij.org>
288
289         * src/main.c (gnuk_malloc): Update ->neighbor field of a chunk on
290         the free list.
291         (gnuk_free): Access free list after getting the lock.
292
293 2013-10-01  Niibe Yutaka  <gniibe@fsij.org>
294
295         * src/random.c (random_gen): Bug fix for INDEXed copy.
296
297         * src/call-rsa.c (rsa_genkey): Call neug_flush and prng_seed.
298         * polarssl/library/bignum.c (small_prime): More constants.
299         (prng_seed, jkiss, mpi_fill_pseudo_random): New.
300         (mpi_is_prime): Use mpi_fill_pseudo_random.
301
302 2013-09-30  Niibe Yutaka  <gniibe@fsij.org>
303
304         * polarssl/library/bignum.c (mpi_is_prime): Enable trial divisions
305         by small integers.
306         Add Fermat primality test.
307         (mpi_gen_prime): Limit random value so that two MSBs of result will
308         be 0x11.
309
310 2013-09-27  Niibe Yutaka  <gniibe@fsij.org>
311
312         * polarssl/include/polarssl/bignum.h (mpi_is_prime): ifdef-out.
313         * polarssl/library/bignum.c (mpi_is_prime): It's now internal
314         function, assuming we already know its coprime to small primes.
315         (M): New constant MPI.  Multiply primes 2*...*691.
316         (MAX_A): New constant MPI.  2^1024 / M - 1.
317         (mpi_gen_prime): Specialize for 1024-bit, using Fouque-Tibouchi
318         method.
319
320 2013-09-25  Niibe Yutaka  <gniibe@fsij.org>
321
322         * src/sha256.h, src/adc.h
323         * src/neug.c, src/adc_stm32f103.c: Update from NeuG 0.11.
324
325         * chopstx: Upgrade to new Chopstx 0.00.
326
327         * VERSION: New file.
328
329         * src/configure (SERIALNO, SERIALNO_STR_LEN_DEFINE): New.
330         (REVISION): Use the file VERSION if it doesn't have .git.
331         Thanks to Sumedha Widyadharma for the bug report.
332
333         * src/config.h.in (SERIALNO_STR_LEN_DEFINE): New.
334         * src/main.c (ID_OFFSET): Use SERIALNO_STR_LEN.
335         * src/usb_desc.c (gnukStringSerial): Remove.  It's now
336         generated in usb-strings.c.inc.
337
338         * src/ec_p256.c (compute_kP): Fix for impossible cases.
339         (point_is_on_the_curve): New.
340         (coefficient_a, coefficient_b): New.
341
342 2013-09-20  Niibe Yutaka  <gniibe@fsij.org>
343
344         * src/call-ec_p256.c (ecdsa_compute_public): Handle possible
345         error (where key_data is the order).
346
347         * src/ec_p256.c (compute_kG, compute_kP): Handle errors.
348
349         * src/jpc.c (jpc_to_ac): Return -1 on error.
350         (jpc_add_ac_signed): Handle the case where A=inf.
351
352         * src/modp256.c (modp256_inv): Handle error case.
353
354         * src/bn.c (bn256_cmp): New.
355
356 2013-07-19  Niibe Yutaka  <gniibe@fsij.org>
357
358         * src/gnuk.ld.in: Layout change following NeuG.
359         (_end): Add alignment of 16.
360
361         * src/neug.c, src/adc.h, src/adc_stm32f103.c: Update from NeuG.
362
363         * src/main.c [DFU_SUPPORT] (main): Fix calling
364         flash_erase_all_and_exec.
365
366         * src/openpgp-do.c (gpg_do_write_prvkey, gpg_do_keygen): Fix
367         allocated memory handling.  Clean up before free.
368         * src/call-rsa.c (modulus_calc, rsa_genkey): Fix removing const.
369         * src/call-ec_p256.c (ecdsa_compute_public): Likewise.
370
371 2013-07-18  Niibe Yutaka  <gniibe@fsij.org>
372
373         Port to Chopstx.
374         * src/Makefile.in: Change for Chopstx.
375         * src/configure: Likewise.
376         * src/gnuk.h, src/gnuk.ld.in: Likewise.
377         * src/ac.c: Include stdint.h and string.h, not ch.h.
378         * src/call-rsa.c, src/debug.c, src/flash.c: Likewise.
379         * src/call-ec_p256.c, src/usb_desc.c
380         * src/openpgp-do.c, src/random.c: Likewise.
381         * src/openpgp.c: Likewise.  Use eventflag of Chopstx.
382         * src/usb-icc.c: Likewise.
383         * src/usb_ctrl.c: Update for Chopstx.
384         * src/debug.h: New.
385         * src/stdlib.h: Use gnuk_malloc and gnuk_free for malloc/free.
386         * src/config.h.in: Move FLASH_PAGE_SIZE in board.h.
387         * polarssl/library/aes.c (FT0, FT1, FT2): Export (for sys 2.0).
388         * src/main.c (struct stdout, _write, EP3_IN_Callback)
389         (EP5_OUT_Callback): Rewrite for Chopstx.  No independent thread
390         any more.
391         (display_fatal_code, emit_led, display_status_code, led_blink):
392         Use primitives of Chopstx.
393         (main): Changes for Chopstx.
394         (gnuk_malloc_init, sbrk, gnuk_malloc, gnuk_free): New.
395
396 2013-06-20  Niibe Yutaka  <gniibe@fsij.org>
397
398         * src/sys.c, src/sys.h, src/neug.c, src/adc.h
399         * src/adc_stm32f103.c, src/usb_stm32f103.c: Update from NeuG 0.10.
400         * src/stm32f103.h: New.  From NeuG 0.10.
401
402 2013-06-18  Niibe Yutaka  <gniibe@fsij.org>
403
404         * src/openpgp-do.c (gpg_do_write_prvkey, proc_key_import, gpg_do_table)
405         (gpg_do_public_key) [RSA_AUTH]: Conditional compilation for RSA/ECDSA.
406         * src/openpgp.c (cmd_internal_authenticate) [RSA_AUTH]: Likewise.
407
408         * src/modp256.c (p256): Add const qualifier.
409
410 2013-03-19  Niibe Yutaka  <gniibe@fsij.org>
411
412         * src/random.c (random_gen): New (was: random_byte).
413
414         * src/call-rsa.c (rsa_sign): Follow change of API.
415         (rsa_genkey): Use random_gen.
416         (modulus_calc, rsa_decrypt, rsa_verify): Follow change of API.
417         * src/openpgp-do.c (encrypt, decrypt): Likewise.
418
419         * polarssl/include/polarssl/aes.h: Updated from PolarSSL 1.2.6.
420         * polarssl/library/aes.c: Ditto.
421         * polarssl/include/polarssl/rsa.h: Ditto.
422         * polarssl/library/rsa.c: Ditto.
423         * polarssl/include/polarssl/bignum.h: Ditto.
424         * polarssl/library/bignum.c: Ditto.
425         * polarssl: Move from polarssl-0.14.0, and needed files only.
426
427 2013-03-15  Niibe Yutaka  <gniibe@fsij.org>
428
429         * regnual/regnual.ld (.bss): Put at RAM1.  This makes reGNUal can
430         be loaded on the lower address.
431
432         * regnual/sys.c (entry): Don't change SP.  Put alignment.
433
434         * regnual/regnual.c (usb_cb_get_descriptor): Fix adding break.
435
436 2013-03-14  Niibe Yutaka  <gniibe@fsij.org>
437
438         * tool/stlinkv2.py (stlinkv2.start): Call write_debug_reg to run
439         the core again.
440
441 2013-03-12  Niibe Yutaka  <gniibe@fsij.org>
442
443         * src/gnuk.ld.in (__process_stack_size__): Increase (was: 0x200).
444
445         * tool/stlinkv2.py (stlinkv2.exit_from_debug_swd)
446         (stlinkv2.exit_from_debug_swim): New.
447         (stlinkv2.start): Call exit_from_debug_swd or
448         exit_from_debug_swim.
449
450 2013-03-09  Niibe Yutaka  <gniibe@fsij.org>
451
452         * src/openpgp-do.c (gpg_do_public_key): Add OID for ECDSA.
453         (gpg_do_write_prvkey): Add PUBKEY_LEN for ECDSA.
454
455         * src/flash.c (flash_key_write): Argument change for ECDSA key.
456
457         * src/main.c (calculate_regnual_entry_address): New.
458         (main): Use calculate_regnual_entry_address for entry point.
459
460         * src/openpgp-do.c (gpg_do_write_prvkey): Coerce KDI.DATA to
461         uint8_t *.
462
463         * src/usb_stm32f103.c (handle_setup0): Fix selecting handler.
464
465 2013-03-08  Niibe Yutaka  <gniibe@fsij.org>
466
467         Relocatable reGNUal.
468
469         * regnual/regnual.ld (MEMORY): 0x1400 was the value of Gnuk 1.0.1.
470         Keep this value.
471         (.text): Include .text.entry next to the .vectors.
472         (.got): New.
473
474         * regnual/sys.c (entry): Now, it's at .text.entry section.
475         Do relocations.
476         Don't use absolute values which causes relocations, but
477         access at GOT.
478
479         * regnual/Makefile (CFLAGS): Add -fpie.
480
481 2013-03-07  Niibe Yutaka  <gniibe@fsij.org>
482
483         Follow the USB stack change.
484
485         * regnual/regnual.c (usb_cb_device_reset): Rename from
486         regnual_device_reset.
487         (mem): Change type to uint32_t.
488         (mem_info): Removed.
489         (fetch): Avoid pointer punning.
490         (usb_cb_ctrl_write_finish): Rename from regnual_ctrl_write_finish.
491         (usb_cb_setup): Rename from regnual_setup.
492         (usb_cb_get_descriptor): Rename from regnual_get_descriptor.
493         (usb_cb_handle_event): Rename regnual_usb_event.
494         (usb_cb_interface): Rename regnual_interface.
495         (Device_Method): Remove.
496         (usb_cb_get_descriptor): Not use struct Descriptor.
497
498 2013-03-06  Niibe Yutaka  <gniibe@fsij.org>
499
500         USB stack implementation improvement.
501
502         * src/usb_stm32f103.c (Device_Method, method_p): Remove.
503         (usb_interrupt_handler): Call usb_cb_device_reset.
504         (std_get_descriptor): Call usb_cb_get_descriptor.
505         (std_set_configuration): Call usb_cb_handle_event.
506         (std_get_status, std_get_interface, std_set_interface): Call
507         usb_cb_interface.
508         (handle_setup0): Call usb_cb_setup.
509         (handle_in0): Call usb_cb_handle_event and
510         usb_cb_ctrl_write_finish.
511         (request_handler): Remove.
512         (handle_setup0): Call std_* directly, not indirectly by
513         request_handler.
514         (ep_intr_handler_IN, ep_intr_handler_OUT): Remove.
515         (usb_handle_transfer): Call EP*_Callback directly, not indirectly
516         by ep_intr_handler_IN, ep_intr_handler_OUT.
517
518         * src/usb_lld.h (struct usb_device_method, Device_Method): Remove.
519         (usb_cb_device_reset, usb_cb_ctrl_write_finish)
520         (usb_cb_setup, usb_cb_get_descriptor, usb_cb_handle_event)
521         (usb_cb_interface): Define callbacks.
522         (usb_initial_feature): New.
523         (struct Descriptor): Move to ...
524         * src/usb_desc.c: ... here.
525         (usb_initial_feature): New.
526         (usb_cb_get_descriptor): Rename from gnuk_get_descriptor and move
527         from usb_ctrl.c.
528
529         * src/usb_ctrl.c (usb_cb_device_reset): Rename from
530         gnuk_device_reset.
531         (usb_cb_setup): Rename from gnuk_setup.
532         (usb_cb_ctrl_write_finish): Rename from gnuk_ctrl_write_finish.
533         (usb_cb_event): Rename from gnuk_usb_event.
534         (usb_cb_interface): Rename from gnuk_interface.
535         (Device_Method): Remove.
536
537         * src/main.c (main): Use usb_initial_feature.
538
539 2013-02-27  Niibe Yutaka  <gniibe@fsij.org>
540
541         * src/usb-icc.c (set_sw1sw2): Arguments are C and CHUNK_LEN.
542         Fix reporting remaining bytes.
543         (icc_send_data_block_gr): Follow the arguments change of
544         set_sw1sw2.
545
546 2013-02-26  Niibe Yutaka  <gniibe@fsij.org>
547
548         * regnual/regnual.ld (MEMORY): Fix start address.
549
550         * src/random.c (random_fini): New.
551         * src/main.c (main): Call random_fini.
552
553 2013-02-25  Niibe Yutaka  <gniibe@fsij.org>
554
555         * src/configure: Correct typo in help text.
556
557         * src/gnuk.h (struct key_data_internal): Use uint32_t.
558         * src/openpgp-do.c (do_openpgpcard_aid): Fix calculation of VID.
559         (compute_key_data_checksum): Don't use type-punning pointer.
560         (gpg_do_write_prvkey): Use coercing to char *.
561
562 2013-02-22  Niibe Yutaka  <gniibe@fsij.org>
563
564         * src/openpgp-do.c (gpg_do_public_key): Add header of EC point.
565
566         * src/openpgp-do.c (GPG_DO_DISCRETIONARY, cmp_discretionary): New.
567         (cmp_app_data): Change to factor out GPG_DO_DISCRETIONARY.
568         (gpg_do_table): Add GPG_DO_DISCRETIONARY.
569
570 2013-02-21  Niibe Yutaka  <gniibe@fsij.org>
571
572         * src/gnuk.ld.in (MEMORY): Fix adding FLASH_SIZE unit.
573
574         * src/call-ec_p256.c (ecdsa_sign): Fix secret key access.
575
576 2013-02-20  Niibe Yutaka  <gniibe@fsij.org>
577
578         * src/openpgp.c (cmd_internal_authenticate): Support ECDSA for
579         authentication.
580
581         * src/openpgp-do.c (algorithm_attr_ecdsa): New.
582         (algorithm_attr_rsa): Rename (was: algorithm_attr).
583         (gpg_do_table): Change for GPG_DO_ALG_AUT.
584         (gpg_do_write_prvkey): Support ECDSA key for authentication.
585         (proc_key_import): Likewise.
586         (gpg_do_public_key): Likewise.
587
588         * src/call-ec_p256.c: New.
589         * src/Makefile.in: Add call-ec_p256.c.
590         * src/call-rsa.c (modulus_free): Remove.
591
592 2013-02-19  Niibe Yutaka  <gniibe@fsij.org>
593
594         * regnual/regnual.ld (MEMORY): Fix address of regnual.
595
596         * regnual/Makefile (MCFLAGS): Remove -mfix-cortex-m3-ldrd.
597         (CFLAGS): Add output to .lst.
598         * src/Makefile.in (MCFLAGS): Remove.
599
600         * src/sha256.c: Update from NeuG 0.05.
601
602         * ChibiOS_2.0.8: Remove.
603
604 2013-02-18  Niibe Yutaka  <gniibe@fsij.org>
605
606         Changes for new ChibiOS/RT.
607         * src/main.c: Include adc.h.
608         (main): Call halInit, adc_init, and chSysInit (change for
609         ChibiOS/RT 2.4.x).
610         * src/random.h: New.
611         * src/ac.c, src/bn.c, src/call-rsa.c, src/main.c: Include random.h.
612         * src/openpgp.c, src/openpgp-do.c: Likewise.
613         * src/configure, src/gnuk.ld.in: Add MEMORY_SIZE.
614         * src/ec_p256.c: Fix call of bn256_add_uint.
615         * boards/STM8S_DISCOVERY/*: Update for ChibiOS/RT 2.4.x.
616         * boards/CQ_STARM/*: Likewise.
617         * boards/FST_01_00/*: Likewise.
618         * boards/OLIMEX_STM32_H103/*: Likewise.
619         * boards/STBEE/*: Likewise.
620         * boards/STBEE_MINI/*: Likewise.
621         * boards/STM32_PRIMER2/*: Likewise.
622
623         Merge ec_p256 branch.
624         * src/Makefile.in: Add ECC files.
625         * src/bn.h, src/bn.c: New.
626         * src/jpc-ac.h, src/jpc.c: New.
627         * src/ec_p256.h, src/ec_p256.c, src/ecc-cdh.c: New.
628         * src/mod.h, src/mod.c, src/modp256.h, src/modp256.c: New.
629
630 2013-02-17  Niibe Yutaka  <gniibe@fsij.org>
631
632         * chibios: New submodule for ChibioS/RT 2.4.x.
633         * boards/FST_01/*: Update for ChibiOS/RT 2.4.x.
634         * boards/common/mcuconf-common.h: Ditto.
635
636         * src/chconf.h, src/halconf.h, src/Makefile.in, src/gnuk.ld.in:
637         Update for ChibiOS/RT 2.4.x.
638
639         * src/main.c, src/openpgp.c, src/usb-icc.c: Follow the change of
640         ChibiOS/RT 2.4.x.
641         * boards/common/board-common.c: Rename from hwinit.c.
642         * src/usb_stm32f103.c: Rename from usb_lld.c.
643
644         * src/neug.h, src/neug.c: Update NeuG 0.05.
645         * src/adc_stm32f103.c, src/adc.h: New from NeuG 0.05.
646
647         * src/random.c: Follow the change of NeuG 0.05.