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