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