tests: factor out tests into classes.
[gnuk/gnuk.git] / NEWS
1 Gnuk NEWS - User visible changes
2
3
4 * Major changes in Gnuk 1.2.14
5
6   Released 2019-03-05, by NIIBE Yutaka
7
8 ** Timeout for ACK button support
9 When a user doesn't acknowledge (> 15 seconds), the operation
10 timeouts, and authentication state is cleared.
11
12 ** Upgrade of Chopstx
13 We use Chopstx 1.14.
14
15
16 * Major changes in Gnuk 1.2.13
17
18   Released 2018-12-26, by NIIBE Yutaka
19
20 ** DFU support and its firmware upgrade fix
21 DFU support was not well maintained, and firmware upgrade was not
22 possible for boards with DFU.  Now, at least for Maple Mini, it is
23 tested.  Note that using Gnuk with DFU on a board is only for an
24 experiment, because DFU can access the content of flash ROM.  DFU
25 should be killed by upgrading to normal Gnuk, so that you can have
26 your private keys.
27
28 ** Fix for UIF Data Object
29 When flash ROM is full and coping to new page, UIF DO was not properly
30 copied.  This bug resulted losing the flag for user interaction.  Now,
31 it's properly copied, keeping the setting of the feature.
32
33 ** Upgrade of Chopstx
34 We use Chopstx 1.13.
35
36
37 * Major changes in Gnuk 1.2.12
38
39   Released 2018-11-25, by NIIBE Yutaka
40
41 ** FST-01SZ fixes
42 Fixes for Ack button support and serial number.
43
44
45 * Major changes in Gnuk 1.2.11
46
47   Released 2018-11-12, by NIIBE Yutaka
48
49 ** Experimental ACK button support with FST-01SZ
50 While OpenPGP card specification verison 3 has description for the
51 "user interaction" button and data objects, there were no
52 implementation.  To evaluate the feature, experimental support is
53 added.
54
55 ** Upgrade of Chopstx
56 We use Chopstx 1.12, which comes with ACK button driver and supports
57 FST-01SZ.
58
59
60 * Major changes in Gnuk 1.2.10
61
62   Released 2018-05-10, by NIIBE Yutaka
63
64 ** No inclusion of VID:PID in gnuk-no-vidpid.elf
65 Now, we have new file named gnuk-no-vidpid.elf with no VID:PID.  The
66 file gnuk.elf has the VID:PID, like version 1.2.7 or older.
67
68 ** Upgrade of Chopstx
69 We use Chopstx 1.9, which supports GD32F103.
70
71
72 * Major changes in Gnuk 1.2.9
73
74   Released 2018-04-05, by NIIBE Yutaka
75
76 ** A test suite fix: Clear PW3
77 Until 1.2.8, after running the test suite under "tests", PW3 keystring
78 remained, which affects use of admin-less mode.  New test case is
79 added to clear PW3.
80
81 ** tool/upgrade_by_passwd.py supports KDF-DO auth
82 With KDF-DO, firmware upgrade didn't work.  Now, it's supported.
83
84 ** Add "single-salt" support for KDF-DO
85 With KDF-DO, "admin-less" mode didn't work well.  With new feature of
86 "single-salt" support, we can use "admin-less" mode with KDF-DO.
87
88 ** factory-reset deletes all upgrade public keys
89 By card-edit/factory-reset by GnuPG, it deletes all upgrade public
90 keys, now.
91
92
93 * Major changes in Gnuk 1.2.8
94
95   Released 2018-01-23, by NIIBE Yutaka
96
97 ** No inclusion of VID:PID in gnuk.elf
98
99 Distribution of binary image with VID:PID would violate vendor ID
100 agreement to USB Forum.  Now, we have new file named gnuk-vidpid.elf
101 for flashing.  The file gnuk.elf can be used to generate
102 gnuk-vidpid.elf and we can check if it is reproducible or not.
103
104 ** Passphrase length check
105
106 Now, Gnuk checks length of passphrase if it's too short when
107 changing passphrase.
108
109 ** Remove unused DEK with BY_ADMIN
110
111 For admin-less mode, DEK by OPENPGP_CARD_INITIAL_PW3 remained on flash
112 ROM.  This could be considered a backdoor, if some other person had or
113 kept access to the flash ROM, cheating a user.  Now, the DEK is
114 cleared by zero when the token is set to admin-less mode.
115
116 ** Upgrade of Chopstx
117 We use Chopstx 1.8.
118
119
120 * Major changes in Gnuk 1.2.7
121
122   Released 2017-11-26, by NIIBE Yutaka
123
124 ** reGNUal
125 reGNUal enables CRC module by itself.
126
127 ** Flash update change
128 CRC module is disabled when Gnuk stops.  It's reGNUal which needs to
129 enable CRC module.
130
131 ** Support of USB suspend
132 USB suspend and wakeup event are now handled.
133
134 ** KDF-DO support and KDF by host
135 KDF-DO is now available.  Host can use this feature.
136
137 ** Upgrade of Chopstx
138 We use Chopstx 1.6.
139
140
141 * Major changes in Gnuk 1.2.6
142
143   Released 2017-10-11, by NIIBE Yutaka
144
145 ** Port to GNU/Linux emulation
146 We can "run" Gnuk Token on GNU/Linux by emulation through USBIP.
147
148 ** Upgrade of Chopstx
149 We use Chopstx 1.5.
150
151
152 * Major changes in Gnuk 1.2.5
153
154   Released 2017-08-11, by NIIBE Yutaka
155
156 ** "factory-reset" fix
157 Gnuk's behavior was implemented by referring the gpg implementation.
158 It found that gpg implementation was not good from the viewpoint of
159 the OpenPGP card specification.  GnuPG was fixed to match the OpenPGP
160 card specification already.  Thus, Gnuk is now fixed.
161
162 ** Upgrade of Chopstx
163 We use Chopstx 1.4.
164
165
166 * Major changes in Gnuk 1.2.4
167
168   Released 2017-05-12, by NIIBE Yutaka
169
170 ** Flash ROM security fix
171 The partial content of flash ROM might be exposed when scanning of
172 data object had a problem.  Added boundary check and changed layout of
173 flash ROM.
174
175
176 * Major changes in Gnuk 1.2.3
177
178   Released 2017-02-02, by NIIBE Yutaka
179
180 ** ECC key generation on the device
181 Bug fixed.
182
183 ** Upgrade of Chopstx
184 We use Chopstx 1.3.
185
186
187 * Major changes in Gnuk 1.2.2
188
189   Released 2016-10-15, by NIIBE Yutaka
190
191 ** Change of SELECT FILE behavior 
192 Gnuk used to reply AID upon SELECT FILE command.  Now, to be compatible
193 to original OpenPGP card, it returns nothing but status code of 9000.
194
195 ** Added feature of Factory Reset as compile time option
196 Original OpenPGP card has the feature, and Gnuk is now configurable to
197 support the feature.
198
199 ** Upgrade of Chopstx
200 We use Chopstx 1.2.
201
202
203 * Major changes in Gnuk 1.2.1
204
205   Released 2016-07-11, by NIIBE Yutaka
206
207 ** Upgrade of Chopstx
208 We use Chopstx 1.1.
209
210
211 * Major changes in Gnuk 1.2.0
212
213   Released 2016-05-20, by NIIBE Yutaka
214
215 ** Upgrade of Chopstx
216 We use Chopstx 0.11.
217
218 ** Support authentication status reset by VERIFY command.
219 This feature is described in the OpenPGPcard specification V2.2 and
220 V3.1, which allow user to reset authentication status.
221
222 ** S2K algorithm tweak to defeat "copycat" service of MCU.
223 Even if the existence of some services copying MCU, your private key
224 will not be controled by others, in some cases.
225
226 ** Bug fix for secp256k1 and NIST P-256.
227 Bugs in basic computation were fixed.
228
229 ** Bug fix for bignum routines.
230 Bignum routine update from upstream (failure doesn't occur for our RSA
231 computation, though).  Another fix for mpi_exp_mod.
232
233
234 * Major changes in Gnuk 1.1.9
235
236   Released 2015-09-18, by NIIBE Yutaka
237
238 ** Bug fix for Ed25519 and Curve25519
239 When registering key, wrong operations were not detected correctly.
240 This is fixed.
241
242
243 * Major changes in Gnuk 1.1.8
244
245   Released 2015-09-17, by NIIBE Yutaka
246
247 ** Upgrade of Chopstx
248 We use Chopstx 0.10, which supports Nitrokey-Start.
249
250 ** Card serial number
251 The way to determine a serial number of Gnuk Token for card has been
252 changed.  It uses the 96-bit unique bits of MCU, but the portion for
253 use is changed.
254
255 ** USB Reset handling
256 USB reset lets Gnuk Token restart.  It would not be perfect, when it's
257 during computation of some function, but most parts are protected by
258 Chopstx's feature of cancellation.
259
260
261 * Major changes in Gnuk 1.1.7
262
263   Released 2015-08-05, by NIIBE Yutaka
264
265 ** Upgrade of Chopstx
266 We use Chopstx 0.08, which supports STM32 Nucleo and ST Dongle.
267
268
269 * Major changes in Gnuk 1.1.6
270
271   Released 2015-07-21, by NIIBE Yutaka
272
273 ** USB SerialNumber String
274 The way to determine a serial number of Gnuk Token has been changed.
275 It uses the 96-bit unique bits of MCU, but the portion for use is
276 changed.
277
278 ** Upgrade of Chopstx
279 We use Chopstx 0.07, which supports STM32 Primer2 and CQ STARM, too.
280
281 ** Experimental Curve25519 support.
282
283 Gnuk can support Curve25519 (for decryption).  Note that this is
284 pretty much experimental, and subjects to change.  The low level code
285 is somehow stable, but there are no consensus in higer level.
286 Especially, OID in the key attribute would be changed in future.
287
288 ** No --enable-keygen option
289 It is now standard feature included always.  Note that it doesn't mean
290 this feature is stable now.  It is becoming stable, hopefully.
291
292
293 * Major changes in Gnuk 1.1.5
294
295   Released 2015-06-03, by NIIBE Yutaka
296
297 ** upgrade_by_passwd.py is not so noisy any more.
298 Since it's getting stable, no debug output any more.
299
300 ** Maple mini support.
301 Although its random number generation is not tested, Maple mini
302 support is added.
303
304 ** Windows interoperability fix.
305 1.1.x (0 to 4) didn't work with Windows because of INTERRUPT transfer.
306 It's fixed and it works now.
307
308 ** OpenPGPcard specification v3.0 compatibility.
309 OpenPGPcard specification v3.0 now include NIST curves (and other
310 curves) and ECDSA and ECDH operations are defined.  Gnuk follows
311 this specification.
312
313
314 * Major changes in Gnuk 1.1.4
315
316   Released 2014-12-15, by NIIBE Yutaka
317
318 ** Experimental RSA-4096 support.
319 Although it takes too long (more than 8.7 second), RSA-4096
320 is now implemented.
321
322 ** ECDH support.
323 ECDH is now supported.  You need development branch (master)
324 of GnuPG to use this feature.
325
326 ** ECDSA and EdDSA is not that experimental.
327 You don't need to edit DEFS variable in src/Makefile.
328
329 ** STM8S_DISCOVERY is not supported any more.
330 It's flash ROM size (64KiB) is a bit small to have all features of
331 Gnuk now.  If you manually edit code to limit the size of executable,
332 it still could run Gnuk, though.
333
334 ** configure's default target is now FST-01.
335 Receiving reports from those who complain default target, I
336 reconsidered.  Those who has Olimex STM32 H103 usually has JTAG
337 debugger, while FST-01 users don't.  So, to be safe, the default
338 target is now FST-01, instead of Olimex STM32 H103.
339
340
341 * Major changes in Gnuk 1.1.3
342
343   Released 2014-04-16, by NIIBE Yutaka
344
345 ** Experimental EdDSA support.
346 After configure, you can edit the DEFS variable in src/Makefile, so
347 that Gnuk can support EdDSA with Ed25519 (for authentication).  Note
348 that this is pretty much experimental, and subjects to change.
349
350
351 * Major changes in Gnuk 1.1.2
352
353   Released 2014-03-07, by NIIBE Yutaka
354
355 ** Experimental ECC support for secp256k1.
356 After configure, you can edit the DEFS variable in src/Makefile, so
357 that Gnuk can support ECDSA with NIST P256 (for authentication), and
358 ECDSA with secp256k1 (for signature).  Note that this is pretty much
359 experimental, and subjects to change.
360
361
362 * Major changes in Gnuk 1.1.1
363
364   Released 2013-12-25, by NIIBE Yutaka
365
366 ** Tools and test suite now work with PyUSB 1.0, too.
367 It only worked with PyUSB 0.4.3, but it works with PyUSB 1.0 too.
368
369 ** Improved RSA routine
370 Working memory for RSA computation is taken from stack instead of
371 malloc (mostly).
372
373
374 * Major changes in Gnuk 1.1.0
375
376   Released 2013-12-20, by NIIBE Yutaka
377
378 ** Overriding key import / generation (Incompatible Change)
379 Gnuk supports overriding key import or key generation even if keys are
380 already installed.  Note that it will result password reset of user.
381
382 ** RSA key generation improvement
383 Prime number generation is done by Fouque-Tibouchi method.
384
385 ** Security fix for RSA computation 
386 PolarSSL had a vulnerability against timing attack.  For detail,
387 please see:
388
389   http://www.gniibe.org/memo/development/gnuk/polarssl/polarssl-rsa-blinding
390
391 ** Improved RSA routine
392 RSA computation has been improved using MPI square routine.  Note that
393 you should not adopt this modification for general purpose computer,
394 as this change is weak against the Yarom/Falkner flush+reload cache
395 side-channel attack.
396
397 ** Upgrade of NeuG
398 The true random number generator was upgraded to the one of NeuG 1.0.
399
400 ** Replacement of kernel (thread library)
401 Instead of ChibiOS/RT, we now use Chopstx.
402
403 ** Removal of obsolete features
404 The feature named pin-dial, which is pin input with hardware
405 enhancement (with rotary encoder) is removed.
406
407
408 * Major changes in Gnuk 1.0.4
409
410   Released 2013-03-15, by NIIBE Yutaka
411
412 ** Relocatable reGNUal, really 
413 In 1.0.3, reGNUal was not fully relocatable.  It worked loaded on higher
414 address, but didn't work for lower address.  This was fixed.
415
416
417 * Major changes in Gnuk 1.0.3
418
419   Released 2013-03-14, by NIIBE Yutaka
420
421 ** Relocatable reGNUal
422 The upgrade helper, reGNUal, is now relocatable (other than the first
423 vector table).  It runs well when loaded at different address.  This
424 makes the upgrade procedure more stable.
425
426 ** Compilation by newer GNU Toolchain
427 Now, Gnuk can be compiled with newer GNU Toolchain, specifically GCC
428 4.7.x and GNU Binutils 2.22.  Old versions of Gnuk had problem for
429 ChibiOS_2.0.8/os/ports/GCC/ARMCMx/cmsis/core_cm3.c, which was fixed.
430
431 ** Data object 0x0073
432 Data object 0x0073 is now available.
433
434
435 * Major changes in Gnuk 1.0.2
436
437   Released 2013-02-15, by NIIBE Yutaka
438
439 ** Product string is now "Gnuk Token" (was: "FSIJ USB Token")
440 Since the USB ID Repository suggests not including vendor name
441 in product string, we changed the product string.
442
443 ** New tool (experimental): test/upgrade_by_passwd.py
444 This is the tool to install new firmware to Gnuk Token, provided
445 that it's just shipped from factory (and nothing changed).  It
446 authenticate as admin by factory setting, register a public key
447 for firmware upgrade, and then, does firmware upgrade.
448
449 ** tool/gnuk_upgrade.py supports '-k' option
450 It now supports RSA key on the host PC (not the one on the Token).
451
452 ** New tool: tool/get_raw_public_key.py
453 This is a script to dump raw data of RSA public key, which is useful
454 to register to Gnuk Token as a firmware upgrade key.
455
456 ** New tool: tool/gnuk_remove_keys_libusb.py
457 This tool is libusb version of gnuk_remove_keys.py.  Besides, a bug in
458 gnuk_remove_keys.py was fixed.
459
460 ** CCID protocol fix
461 When time extension is requested by Gnuk Token to host PC, argument
462 field was 0, which was wrong (but it works for most PC/SC
463 implementations and GnuPG internal driver).  Now it's 1, which means
464 1*BWT.
465
466 ** OpenPGP card protocol enhancement
467 Now, VERIFY command accepts empty data and returns remaining trial
468 counts, or 0x9000 (OK) when it's already authenticated.  This is
469 useful for application to synchronize card's authentication status.
470
471
472 * Major changes in Gnuk 1.0.1
473
474   Released 2012-08-03, by NIIBE Yutaka
475
476 ** USB SerialNumber String
477 In 1.0, it has a bug for USB SerialNumber String.  It has been fixed
478 in 1.0.1.
479
480
481 * Major changes in Gnuk 1.0
482
483   Released 2012-07-21, by NIIBE Yutaka
484
485 This is bug fixes only release.
486
487
488 * Major changes in Gnuk 0.21
489
490   Released 2012-07-06, by NIIBE Yutaka
491
492 ** Test suite
493 A functinality test suite is added under test/ directory.
494
495 ** New tool: stlinkv2.py
496 This tool is SWD flash ROM writer with ST-Link/V2.
497
498 ** New tool: usb_strings.py
499 This tool is to dump USB strings, which include revision detail and config
500 options.
501
502 ** Protection improvement (even when internal data is disclosed)
503 Even if PW1 and PW3 is same, content of encrypted DEK is different
504 now.
505
506
507 * Major changes in Gnuk 0.20
508
509   Released 2012-06-19, by NIIBE Yutaka
510
511 ** Key generation feature added
512 Finally, key generation is supported.  Note that it may be very slow.
513 It may take a few minutes (or more) to generate two or three keys,
514 when you are unlucky.
515
516 ** DnD pinentry support is deprecated
517 Once, DnD pinentry was considered a great feature, but it found that
518 it is difficult to remember moves of folders.
519
520 ** gnuk_upgrade.py assumes using another token for authentication
521 Use of another token for authentication is assumed now.  This is
522 incompatible change.  Note that when you upgrade a token of version
523 0.19 to 0.20 (or later), you need gnuk_upgrade.py of version 0.19.
524
525 ** KDF (Key Derivation Function) is now SHA-256
526 Keystring is now computed by SHA-256 (it was SHA1 before).
527
528 ** Protection improvements (even when internal data is disclosed)
529 Three improvements.  (1) Even if PW1 and Reset-code is same, content
530 of encrypted DEK is different now.  (2) DEK is now encrypted and
531 decrypted by keystring in ECB mode (it was just a kind of xor by
532 single block CFB mode).  (3) Key data plus checksum are encrypted in
533 CFB mode with initial vector (it will be able to switch OCB mode
534 easily).
535
536 ** LED display output change
537 LED display output by Gnuk is now more reactive.  It shows status code
538 when it gets GET_STATUS message of CCID.  When you communicate Gnuk by
539 internal CCID driver of GnuPG (instead of PC/SC), and enable
540 'debug-disable-ticker' option in .gnupg/scdaemon.conf, it is more
541 silent now.
542
543
544 * Major changes in Gnuk 0.19
545
546   Released 2012-06-06, by NIIBE Yutaka
547
548 ** Firmware upgrade feature
549 Firmware upgrade is now possible after the public key authentication
550 using EXTERNAL AUTHENTICATE command of ISO 7816.  Firmware upgrade is
551 done together with reGNUal, the firmware upgrade program.
552
553 ** System service blocks at the beginning of flash ROM.
554 Once flash ROM is protected, first 4-KiB cannot be modified.  Gnuk
555 use this area for "system service".  Note that this area will not
556 be able to be modified by firmware upgrade (or by any method).
557
558 ** New tool: gnuk_upgrade.py
559 The tool gnuk_upgrade.py is to do public key authentication using
560 gpg-agent and send reGNUal to Gnuk.  Then, we put new Gnuk binary
561 into the device with reGNUal.
562
563 ** USB strings for revision detail, configure options, and system service.
564 USB strings now have more information.  There are revision detail
565 string, configure options string, system service version string, as
566 well as vendor string and product string.  These strings could be
567 examined to check Gnuk Token.
568
569
570 * Major changes in Gnuk 0.18
571
572   Released 2012-05-15, by NIIBE Yutaka
573
574 ** New mandatory option '--vidpid' for configure
575 You must specify USB vendor ID and product ID for Gnuk.
576 The file GNUK_USB_DEVICE_ID lists valid USB device IDs.
577
578 ** New tool: gnuk_remove_keys.py
579 The tool gnuk_remove_keys.py is to remove all keys in Gnuk Token
580 and reset PW1 and RC (if any).
581
582 ** New USB stack
583 Gnuk used to use USB stack of USB-FS-Device_Lib by ST.  Now, it has
584 original implementation.  Hopefully, size and quality are improved.
585
586
587 * Major changes in Gnuk 0.17
588
589   Released 2012-02-02, by NIIBE Yutaka
590
591 ** USB CCID/ICCD protocol implementation change
592 Gnuk now only supports short APDU level exchange, not supporting
593 extended APDU level exchange.  Thus, Gnuk could be compatible to older
594 host side software implementation.
595
596 ** ISO 7816 SELECT command behavior is somewhat strict now
597 Old implementations do not check DF name for SELECT command.
598 This causes some trouble when Gnuk Token is identified as if it were
599 different card/token.  Now, DF name of OpenPGP card is checked.
600
601 ** USB CCID/ICCD low-level bug is fixed
602 When the size of command APDU data is just 49, the lower level packet
603 size is 64.  This is maximum size of BULK-OUT transfer packet, and
604 caused trouble in the past implementations.  Example is setting url
605 (0x5f50) as: http://www.gniibe.org/adpu-string-size-is-just-49
606 This is because the past implementations expect ZLP (zero length
607 packet).  Now, it has been fixed.  You can use any size of string.
608
609 ** CERT.3 Data Object (0x7f21) is now optional
610 As there's no valid use case for this data object and it does not
611 work as current version of GnuPG, this is now optional feature.
612 You can enable this data object by specifying --enable-certdo at
613 configure time.
614
615 ** With DnD pinentry, user can cancel pin input
616 Now, user can cancel pin input by unmounting device before finishing
617 DnD.
618
619 ** New tool: pinpadtest.py
620 The tool pinpadtest.py is PC/SC test tool for pinentry of pinpad with
621 OpenPGP card v2.
622
623
624 * Major changes in Gnuk 0.16
625
626   Released 2011-12-14, by NIIBE Yutaka
627
628 ** DnD pinentry support is added and it's default to pinentry support
629 DnD pinentry support doesn't require any hardware extension, but
630 emulates mass storage class device of USB.  User inputs pass phrase
631 by "drag and drop"-ing folders using file manager or something.
632
633 ** Bug fix for VERIFY for CHV2
634 With no keys, VERIFY command for CHV2 used to fail even if pass phrase
635 is correct.  It was intentional, because CHV2 verification would be
636 useless with no keys.  But there is a corner case for PRIVATE-DOs,
637 which may requires CHV2 verification.  Even though Gnuk doesn't
638 support any PRIVATE-DOs, it is good to be fixed.
639
640 ** Changed bcdUSB = 1.1
641 Gnuk device conforms to USB 2.0 full speed device, but when it was
642 2.0, some OS informs users, "you can connect the device to 2.0
643 compliant hub so that it can have better bandwidth", which is not
644 the case for full speed device.
645
646
647 * Major changes in Gnuk 0.15
648
649   Released 2011-11-24, by NIIBE Yutaka
650
651 ** New targets: FST_01 and FST_01_00
652 Flying Stone Technology's open hardware, Flying Stone Tiny 01 is
653 supported.
654
655 ** Flash writing tool for "DfuSe" is improved
656 Now, it supports holes and unaligned blocks in hex file.
657
658 ** Experimental PIN-pad support (by TV controller) change
659 Now, Gnuk has codetables for conversion from CIR code to ASCII code.
660 Note that only four controllers (of Dell, Sharp, Sony, and Toshiba)
661 are supported and tested.
662
663 ** It is possible for users to keep using OPENPGP_CARD_INITIAL_PW1
664 With a bug fix of verify_user_0, it's now possible.  Although it's not
665 recommended.
666
667 ** Important bug fix and a workaround
668 In version 0.14, __main_stack_size__ (for interrupt handler) was too
669 small for some cases.  This is fixed in 0.15.
670
671 In src/Makefile.in, added -mfix-cortex-m3-ldrd for correctly linking C
672 library for thumb2.  This is needed for newer summon-arm-toolchain.
673
674
675 * Major changes in Gnuk 0.14
676
677   Released 2011-10-07, by NIIBE Yutaka
678
679 ** Random number generator change
680 NeuG, Gniibe's True RNG implementation for STM32F103, has been
681 integrated to Gnuk.  It is not needed to put random number bytes
682 (generated by host) to Token any more.
683
684
685 * Major changes in Gnuk 0.13
686
687   Released 2011-06-15, by NIIBE Yutaka
688
689 ** Improved RSA routine.
690 About 20% speed improvement.
691
692 ** New tool: hub_ctrl.
693 It is a Python implementation ported from original C implementation.
694 It is useful for development of USB target if you have a good hub.
695 You can power off/on the port to reset Gnuk Token.
696
697
698 * Major changes in Gnuk 0.12
699
700   Released 2011-05-13, by NIIBE Yutaka
701
702 ** Admin-less mode is supported.
703 The OpenPGP card specification assumes existence of a security officer
704 (admin), who has privilege to manage the card.  On the other hand,
705 many use cases of Gnuk are admin == user.
706
707 Thus, Gnuk now supports "admin-less" mode.  In this mode, user can get
708 privilege with the password of PW1.
709
710 At the initialization of the card, Gnuk becomes compatible mode by
711 setting PW3.  Without setting PW3, it becomes "admin-less" mode
712 by setting PW1.
713
714 ** Important two bug fixes.
715 Gnuk (<= 0.11) has a bug which makes possible for attacker to change
716 user password to unknown state without knowing original password (when
717 no keys are loaded yet).  No, attacker could not steal your identity
718 (cannot sign or decrypt), but it would be possible to disturb you.
719
720 Gnuk (<= 0.11) has a bug which makes possible for attacker to guess
721 admin password easily.  When admin password is not set (the default
722 value of factory setting), failure of VERIFY doesn't increment error
723 counter in older versions.  Observing no increment of error counter,
724 attacker could know that admin password is the one of factory setting.
725
726 ** tool/gnuk_put_binary.py now uses pyscard.
727 Instead of PyUSB, it uses Python binding of PC/SC.  PyUSB version is
728 still available as tool/gnuk_put_binary_libusb.py.
729
730 ** Logo for Gnuk is updated.
731
732 ** Gnuk Sticker SVG is available.
733
734
735 * Major changes in Gnuk 0.11
736
737   Released 2011-04-15, by NIIBE Yutaka
738
739 This is bug fixes only release.
740
741
742 * Major changes in Gnuk 0.10
743
744   Released 2011-02-10, by NIIBE Yutaka
745
746 ** The executable can be installed to multiple devices.
747 So far, users of Gnuk should have not shared single executable among
748 multiple devices because the executable includes random bits (or
749 fixed serial number).  Now, random_bits and fixed serial number are
750 configured *after* compilation, we can install single executable image
751 to multiple devices.  Note that we need to configure random_bits for
752 each device.
753
754 ** Removed configure option: --with-fixed-serial
755 It is not compile time option any more.  After installation, we can
756 modify serial number in AID by tool/gnuk_put_binary.py.  Modification
757 is possible only once.  If you don't modify, Gnuk uses unique chip ID
758 of STM32 processor for AID.
759
760
761 * Major changes in Gnuk 0.9
762
763   Released 2011-02-01, by NIIBE Yutaka
764
765 ** Card Holder Certificate is supported (still this is experimental).
766 Gnuk can support card holder certificate now.  Note that GnuPG is not
767 ready yet.  The tool/gnuk_update_binary.py is for writing card holder
768 certificate to Gnuk Token.
769
770 ** Better interoperability to OpenSC.
771 Gnuk is not yet supported by OpenSC, but it could be.  With the
772 changes in Gnuk, it could be relatively easily possible to support
773 Gnuk Token by OpenSC with a few changes to libopensc/card-openpgp.c,
774 and libopensc/pkcs15-openpgp.c.
775
776 ** New board support "STBee"
777 STBee is a board by Strawberry Linux Co., Ltd., and it has
778 STM32F103VET6 on the board.  The chip is High Density CPU with 512KB
779 flash memory and many I/O.  If you want to connect sensor, display,
780 etc., this board would be a good candidate.
781
782 ** Experimental PIN-pad modification(unblock) support is added.
783 PIN-pad modification(unblock) is supported.
784
785
786 * Major changes in Gnuk 0.8
787
788   Released 2011-01-19, by NIIBE Yutaka
789
790 ** Experimental PIN-pad modification support is added.
791 PIN input using rotally encoder and push switch is tested with STBee
792 Mini.  By this hardware, PIN-pad modification is supported.
793
794
795 * Major changes in Gnuk 0.7
796
797   Released 2011-01-15, by NIIBE Yutaka
798
799 ** Bug fix only.
800 In version 0.6, a severe bug was introduced in usb-icc.c when adding a
801 work around for libccid 1.3.11.  The fix is one-liner, but it is worth
802 to release newer version.
803
804
805 * Major changes in Gnuk 0.6
806
807   Released 2011-01-14, by NIIBE Yutaka
808
809 ** Experimental PIN-pad support is added.
810 Local PIN-pad input is suppored for boards which have input hardware.
811 PIN input using consumer IR receive module is tested with STBee Mini
812 and STM8S Discovery.
813
814 ** USB device serial number is virtually unique now.
815 STM32F103 has 96-bit unique chip identifier.  We take advantage of
816 this, Gnuk Token has virtually unique USB serial number.
817
818 ** Card serial number is determined at run time by chip identifier.
819 Until version 0.5, card serial number was compile time option.  If we
820 used same binary for different devices, card serial number was same.
821 Now, we use STM32F103's 96-bit unique chip identifier for card serial
822 number (when you don't use --with-fixed-serial option).
823
824 ** More improved USB-CCID/ICCD implementation.
825 The changes in 0.5 was not that good for libccid 1.3.11, which has
826 small buffer (only 262-byte APDU).  Workaround for libccid 1.3.11 is
827 implemented.
828
829
830 * Major changes in Gnuk 0.5
831
832   Released 2010-12-13, by NIIBE Yutaka
833
834 ** LED blink
835 LED blink now shows status output of the card.  It shows the status of
836 CHV3, CHV2, and CHV1 when GPG is accessing the card.
837
838 ** New board support "STM8S Discovery"
839 ST-Link part (with STM32F103C8T6) of STM8S Discovery board is now supported.
840
841 ** Digital signing for SHA224/SHA256/SHA384/SHA512 digestInfo is now possible.
842
843 ** Fixes for password management
844 Now, you can allow the token to do digital signing multiple times with
845 single authentication.  You can use "forcesig" subcommand in card-edit
846 of GnuPG to enable the feature.
847
848 ** Key management changes
849 If you remove all keys, it is possible to import keys again.
850
851 ** More improved USB-CCID/ICCD implementation.
852 Gnuk works better with GPG's in-stock protocol stack.  You can do
853 digital signing (not decryption, key import, or get_public_key in
854 GPG2).  For decryption, key import and get_public_key, changes are
855 needed for GPG (scd/ccid-driver.c) to support the case of extended
856 APDU.  In short, you can sign with Gnuk by GPG.
857
858 ** Windows support.
859 Gnuk Token could run with GPG4WIN on MS Windows.  GPG4WIN runs with
860 "usbccid" driver and "winscard" driver.
861
862
863 * Major changes in Gnuk 0.4
864
865   Released 2010-11-09, by NIIBE Yutaka
866
867 ** New board support "STBee Mini".
868
869 ** Flash writing tool for "DfuSe" is included now.
870
871 ** Since Flash GC is now implemented, it can be used longer.
872
873
874 * Major changes in Gnuk 0.3
875
876   Released 2010-10-23, by NIIBE Yutaka
877
878 ** Now we have 'configure' script to select target.
879
880 ** Support system with DFU (Device Firmware Upgrade) downloader.
881
882 ** New board support "CQ STARM".
883
884 ** Improved USB-ICCD implementation.  Works fine with GPG's protocol stack.
885
886
887 * Major changes in Gnuk 0.2
888
889   Released 2010-09-13, by NIIBE Yutaka
890
891 ** With DEBUG=1, timeout is more than 3 seconds.
892
893 ** Flash ROM entries for random numbers are cleared after use. 
894
895 ** Board support "STM32 Primer 2" now works.
896  
897
898 * Major changes in Gnuk 0.1
899
900   Released 2010-09-10, by NIIBE Yutaka
901
902 ** Enabled force_chv1 (in the pw_status_bytes), so that the decipher works.
903
904 ** Support both of key for digital signing and key for decryption.
905
906 ** Decipher is supported.
907
908 ** New board support "STM32 Primer 2" is added by Kaz Kojima.
909
910 ** LED behavior is meaningful now.  "ON" during execution.
911
912 ** Fixed bcdCCID revision number.
913
914 ** Logo.
915
916
917 * Major changes in Gnuk 0.0
918
919   Released 2010-09-06, by NIIBE Yutaka
920
921 ** This is initial release.  Only it supports digital signing.
922
923
924 # Local Variables:
925 # mode: outline
926 # End: