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