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