17aeb84922500842067316e94423b99fc5fb4a37
[gnuk/gnuk.git] / NEWS
1 Gnuk NEWS - User visible changes
2
3 * Major changes in Gnuk 0.19
4
5   Released 2012-06-06, by NIIBE Yutaka
6
7 ** Firmware upgrade feature
8 Firmware upgrade is now possible after the public key authentication
9 using EXTERNAL AUTHENTICATE command of ISO 7816.  Firmware upgrade is
10 done together with reGNUal, the firmware upgrade program.
11
12 ** System service blocks at the beginning of flash ROM.
13 Once flash ROM is protected, first 4-KiB cannot be modified.  Gnuk
14 use this area for "system service".  Note that this area will not
15 be able to be modified by firmware upgrade (or by any method).
16
17 ** New tool: gnuk_upgrade.py
18 The tool gnuk_upgrade.py is to do public key authentication using
19 gpg-agent and send reGNUal to Gnuk.  Then, we put new Gnuk binary
20 into the device with reGNUal.
21
22 ** USB strings for revision detail, configure options, and system service.
23 USB strings now have more information.  There are revision detail
24 string, configure options string, system service version string, as
25 well as vendor string and product string.  These strings could be
26 examined to check Gnuk Token.
27
28
29 * Major changes in Gnuk 0.18
30
31   Released 2012-05-15, by NIIBE Yutaka
32
33 ** New mandatory option '--vidpid' for configure
34 You must specify USB vendor ID and product ID for Gnuk.
35 The file GNUK_USB_DEVICE_ID lists valid USB device IDs.
36
37 ** New tool: gnuk_remove_keys.py
38 The tool gnuk_remove_keys.py is to remove all keys in Gnuk Token
39 and reset PW1 and RC (if any).
40
41 ** New USB stack
42 Gnuk used to use USB stack of USB-FS-Device_Lib by ST.  Now, it has
43 original implementation.  Hopefully, size and quality are improved.
44
45
46 * Major changes in Gnuk 0.17
47
48   Released 2012-02-02, by NIIBE Yutaka
49
50 ** USB CCID/ICCD protocol implementation change
51 Gnuk now only supports short APDU level exchange, not supporting
52 extended APDU level exchange.  Thus, Gnuk could be compatible to older
53 host side software implementation.
54
55 ** ISO 7816 SELECT command behavior is somewhat strict now
56 Old implementations do not check DF name for SELECT command.
57 This causes some trouble when Gnuk Token is identified as if it were
58 different card/token.  Now, DF name of OpenPGP card is checked.
59
60 ** USB CCID/ICCD low-level bug is fixed
61 When the size of command APDU data is just 49, the lower level packet
62 size is 64.  This is maximum size of BULK-OUT transfer packet, and
63 caused trouble in the past implementations.  Example is setting url
64 (0x5f50) as: http://www.gniibe.org/adpu-string-size-is-just-49
65 This is because the past implementations expect ZLP (zero length
66 packet).  Now, it has been fixed.  You can use any size of string.
67
68 ** CERT.3 Data Object (0x7f21) is now optional
69 As there's no valid use case for this data object and it does not
70 work as current version of GnuPG, this is now optional feature.
71 You can enable this data object by specifying --enable-certdo at
72 configure time.
73
74 ** With DnD pinentry, user can cancel pin input
75 Now, user can cancel pin input by unmounting device before finishing
76 DnD.
77
78 ** New tool: pinpadtest.py
79 The tool pinpadtest.py is PC/SC test tool for pinentry of pinpad with
80 OpenPGP card v2.
81
82
83 * Major changes in Gnuk 0.16
84
85   Released 2011-12-14, by NIIBE Yutaka
86
87 ** DnD pinentry support is added and it's default to pinentry support
88 DnD pinentry support doesn't require any hardware extension, but
89 emulates mass storage class device of USB.  User inputs pass phrase
90 by "drag and drop"-ing folders using file manager or something.
91
92 ** Bug fix for VERIFY for CHV2
93 With no keys, VERIFY command for CHV2 used to fail even if pass phrase
94 is correct.  It was intentional, because CHV2 verification would be
95 useless with no keys.  But there is a corner case for PRIVATE-DOs,
96 which may requires CHV2 verification.  Even though Gnuk doesn't
97 support any PRIVATE-DOs, it is good to be fixed.
98
99 ** Changed bcdUSB = 1.1
100 Gnuk device conforms to USB 2.0 full speed device, but when it was
101 2.0, some OS informs users, "you can connect the device to 2.0
102 compliant hub so that it can have better bandwidth", which is not
103 the case for full speed device.
104
105
106 * Major changes in Gnuk 0.15
107
108   Released 2011-11-24, by NIIBE Yutaka
109
110 ** New targets: FST_01 and FST_01_00
111 Flying Stone Technology's open hardware, Flying Stone Tiny 01 is
112 supported.
113
114 ** Flash writing tool for "DfuSe" is improved
115 Now, it supports holes and unaligned blocks in hex file.
116
117 ** Experimental PIN-pad support (by TV controller) change
118 Now, Gnuk has codetables for conversion from CIR code to ASCII code.
119 Note that only four controllers (of Dell, Sharp, Sony, and Toshiba)
120 are supported and tested.
121
122 ** It is possible for users to keep using OPENPGP_CARD_INITIAL_PW1
123 With a bug fix of verify_user_0, it's now possible.  Although it's not
124 recommended.
125
126 ** Important bug fix and a workaround
127 In version 0.14, __main_stack_size__ (for interrupt handler) was too
128 small for some cases.  This is fixed in 0.15.
129
130 In src/Makefile.in, added -mfix-cortex-m3-ldrd for correctly linking C
131 library for thumb2.  This is needed for newer summon-arm-toolchain.
132
133
134 * Major changes in Gnuk 0.14
135
136   Released 2011-10-07, by NIIBE Yutaka
137
138 ** Random number generator change
139 NeuG, Gniibe's True RNG implementation for STM32F103, has been
140 integrated to Gnuk.  It is not needed to put random number bytes
141 (generated by host) to Token any more.
142
143
144 * Major changes in Gnuk 0.13
145
146   Released 2011-06-15, by NIIBE Yutaka
147
148 ** Improved RSA routine.
149 About 20% speed improvement.
150
151 ** New tool: hub_ctrl.
152 It is a Python implementation ported from original C implementation.
153 It is useful for development of USB target if you have a good hub.
154 You can power off/on the port to reset Gnuk Token.
155
156
157 * Major changes in Gnuk 0.12
158
159   Released 2011-05-13, by NIIBE Yutaka
160
161 ** Admin-less mode is supported.
162 The OpenPGP card specification assumes existence of a security officer
163 (admin), who has privilege to manage the card.  On the other hand,
164 many use cases of Gnuk are admin == user.
165
166 Thus, Gnuk now supports "admin-less" mode.  In this mode, user can get
167 privilege with the password of PW1.
168
169 At the initialization of the card, Gnuk becomes compatible mode by
170 setting PW3.  Without setting PW3, it becomes "admin-less" mode
171 by setting PW1.
172
173 ** Important two bug fixes.
174 Gnuk (<= 0.11) has a bug which makes possible for attacker to change
175 user password to unknown state without knowing original password (when
176 no keys are loaded yet).  No, attacker could not steal your identity
177 (cannot sign or decrypt), but it would be possible to disturb you.
178
179 Gnuk (<= 0.11) has a bug which makes possible for attacker to guess
180 admin password easily.  When admin password is not set (the default
181 value of factory setting), failure of VERIFY doesn't increment error
182 counter in older versions.  Observing no increment of error counter,
183 attacker could know that admin password is the one of factory setting.
184
185 ** tool/gnuk_put_binary.py now uses pyscard.
186 Instead of PyUSB, it uses Python binding of PC/SC.  PyUSB version is
187 still available as tool/gnuk_put_binary_libusb.py.
188
189 ** Logo for Gnuk is updated.
190
191 ** Gnuk Sticker SVG is available.
192
193
194 * Major changes in Gnuk 0.11
195
196   Released 2011-04-15, by NIIBE Yutaka
197
198 This is bug fixes only release.
199
200
201 * Major changes in Gnuk 0.10
202
203   Released 2011-02-10, by NIIBE Yutaka
204
205 ** The executable can be installed to multiple devices.
206 So far, users of Gnuk should have not shared single executable among
207 multiple devices because the executable includes random bits (or
208 fixed serial number).  Now, random_bits and fixed serial number are
209 configured *after* compilation, we can install single executable image
210 to multiple devices.  Note that we need to configure random_bits for
211 each device.
212
213 ** Removed configure option: --with-fixed-serial
214 It is not compile time option any more.  After installation, we can
215 modify serial number in AID by tool/gnuk_put_binary.py.  Modification
216 is possible only once.  If you don't modify, Gnuk uses unique chip ID
217 of STM32 processor for AID.
218
219
220 * Major changes in Gnuk 0.9
221
222   Released 2011-02-01, by NIIBE Yutaka
223
224 ** Card Holder Certificate is supported (still this is experimental).
225 Gnuk can support card holder certificate now.  Note that GnuPG is not
226 ready yet.  The tool/gnuk_update_binary.py is for writing card holder
227 certificate to Gnuk Token.
228
229 ** Better interoperability to OpenSC.
230 Gnuk is not yet supported by OpenSC, but it could be.  With the
231 changes in Gnuk, it could be relatively easily possible to support
232 Gnuk Token by OpenSC with a few changes to libopensc/card-openpgp.c,
233 and libopensc/pkcs15-openpgp.c.
234
235 ** New board support "STBee"
236 STBee is a board by Strawberry Linux Co., Ltd., and it has
237 STM32F103VET6 on the board.  The chip is High Density CPU with 512KB
238 flash memory and many I/O.  If you want to connect sensor, display,
239 etc., this board would be a good candidate.
240
241 ** Experimental PIN-pad modification(unblock) support is added.
242 PIN-pad modification(unblock) is supported.
243
244
245 * Major changes in Gnuk 0.8
246
247   Released 2011-01-19, by NIIBE Yutaka
248
249 ** Experimental PIN-pad modification support is added.
250 PIN input using rotally encoder and push switch is tested with STBee
251 Mini.  By this hardware, PIN-pad modification is supported.
252
253
254 * Major changes in Gnuk 0.7
255
256   Released 2011-01-15, by NIIBE Yutaka
257
258 ** Bug fix only.
259 In version 0.6, a severe bug was introduced in usb-icc.c when adding a
260 work around for libccid 1.3.11.  The fix is one-liner, but it is worth
261 to release newer version.
262
263
264 * Major changes in Gnuk 0.6
265
266   Released 2011-01-14, by NIIBE Yutaka
267
268 ** Experimental PIN-pad support is added.
269 Local PIN-pad input is suppored for boards which have input hardware.
270 PIN input using consumer IR receive module is tested with STBee Mini
271 and STM8S Discovery.
272
273 ** USB device serial number is virtually unique now.
274 STM32F103 has 96-bit unique chip identifier.  We take advantage of
275 this, Gnuk Token has virtually unique USB serial number.
276
277 ** Card serial number is determined at run time by chip identifier.
278 Until version 0.5, card serial number was compile time option.  If we
279 used same binary for different devices, card serial number was same.
280 Now, we use STM32F103's 96-bit unique chip identifier for card serial
281 number (when you don't use --with-fixed-serial option).
282
283 ** More improved USB-CCID/ICCD implementation.
284 The changes in 0.5 was not that good for libccid 1.3.11, which has
285 small buffer (only 262-byte APDU).  Workaround for libccid 1.3.11 is
286 implemented.
287
288
289 * Major changes in Gnuk 0.5
290
291   Released 2010-12-13, by NIIBE Yutaka
292
293 ** LED blink
294 LED blink now shows status output of the card.  It shows the status of
295 CHV3, CHV2, and CHV1 when GPG is accessing the card.
296
297 ** New board support "STM8S Discovery"
298 ST-Link part (with STM32F103C8T6) of STM8S Discovery board is now supported.
299
300 ** Digital signing for SHA224/SHA256/SHA384/SHA512 digestInfo is now possible.
301
302 ** Fixes for password management
303 Now, you can allow the token to do digital signing multiple times with
304 single authentication.  You can use "forcesig" subcommand in card-edit
305 of GnuPG to enable the feature.
306
307 ** Key management changes
308 If you remove all keys, it is possible to import keys again.
309
310 ** More improved USB-CCID/ICCD implementation.
311 Gnuk works better with GPG's in-stock protocol stack.  You can do
312 digital signing (not decryption, key import, or get_public_key in
313 GPG2).  For decryption, key import and get_public_key, changes are
314 needed for GPG (scd/ccid-driver.c) to support the case of extended
315 APDU.  In short, you can sign with Gnuk by GPG.
316
317 ** Windows support.
318 Gnuk Token could run with GPG4WIN on MS Windows.  GPG4WIN runs with
319 "usbccid" driver and "winscard" driver.
320
321
322 * Major changes in Gnuk 0.4
323
324   Released 2010-11-09, by NIIBE Yutaka
325
326 ** New board support "STBee Mini".
327
328 ** Flash writing tool for "DfuSe" is included now.
329
330 ** Since Flash GC is now implemented, it can be used longer.
331
332
333 * Major changes in Gnuk 0.3
334
335   Released 2010-10-23, by NIIBE Yutaka
336
337 ** Now we have 'configure' script to select target.
338
339 ** Support system with DFU (Device Firmware Upgrade) downloader.
340
341 ** New board support "CQ STARM".
342
343 ** Improved USB-ICCD implementation.  Works fine with GPG's protocol stack.
344
345
346 * Major changes in Gnuk 0.2
347
348   Released 2010-09-13, by NIIBE Yutaka
349
350 ** With DEBUG=1, timeout is more than 3 seconds.
351
352 ** Flash ROM entries for random numbers are cleared after use. 
353
354 ** Board support "STM32 Primer 2" now works.
355  
356
357 * Major changes in Gnuk 0.1
358
359   Released 2010-09-10, by NIIBE Yutaka
360
361 ** Enabled force_chv1 (in the pw_status_bytes), so that the decipher works.
362
363 ** Support both of key for digital signing and key for decryption.
364
365 ** Decipher is supported.
366
367 ** New board support "STM32 Primer 2" is added by Kaz Kojima.
368
369 ** LED behavior is meaningful now.  "ON" during execution.
370
371 ** Fixed bcdCCID revision number.
372
373 ** Logo.
374
375
376 * Major changes in Gnuk 0.0
377
378   Released 2010-09-06, by NIIBE Yutaka
379
380 ** This is initial release.  Only it supports digital signing.
381
382 Local Variables:
383 mode: outline
384 End: