Version 0.17 of Gnuk has been released.
From this release, Gnuk only supports short APDU level exchange. Because of this, it changed ATR string and CCID interface descriptor in USB Configuration Descriptor was changed.
USB CCID/ICCD protocol implementation change
Gnuk now only supports short APDU level exchange, not support. extended APDU level exchange. Thus, Gnuk could be compatible to older host side software implementation.
ISO 7816 SELECT command behavior is somewhat strict now
Old implementations do not check DF name for SELECT command. This causes some trouble when Gnuk Token is identified as if it were different card/token. Now, DF name of OpenPGP card is checked.
USB CCID/ICCD low-level bug is fixed
When the size of command APDU data is just 49, the lower level packet size is 64. This is maximum size of BULK-OUT transfer packet, and caused trouble in the past implementations. Example is setting url (0x5f50) as: http://www.gniibe.org/adpu-string-size-is-just-49 This is because the past implementations expect ZLP (zero length packet). Now, it has been fixed. You can use any size of string.
CERT.3 Data Object (0x7f21) is now optional
As there's no valid use case for this data object and it does not work as current version of GnuPG, this is now optional feature. You can enable this data object by specifying --enable-certdo at configure time.
With DnD pinentry, user can cancel pin input
Now, user can cancel pin input by unmounting device before finishing DnD.
New tool: pinpadtest.py
The tool pinpadtest.py is PC/SC test tool for pinentry of pinpad with OpenPGP card v2.
Version 0.16 of Gnuk has been released.
In this release, I add "DnDpinentry" feature, which is quite experimental. We can use GUI of a file manager and drag and drop folders for pinentry. You need pinpad support of GnuPG to use this, though (which is currently only available in the master branch of git.gnupg.org).
DnD pinentry support is added and it's default to pinentry support
DnD pinentry support doesn't require any hardware extension, but emulates mass storage class device of USB. User inputs pass phrase by "drag and drop"-ing folders using file manager or something.
Bug fix for VERIFY for CHV2
With no keys, VERIFY command for CHV2 used to fail even if pass phrase is correct. It was intentional, because CHV2 verification would be useless with no keys. But there is a corner case for PRIVATE-DOs, which may requires CHV2 verification. Even though Gnuk doesn't support any PRIVATE-DOs, it is good to be fixed.
Changed bcdUSB = 1.1
Gnuk device conforms to USB 2.0 full speed device, but when it was 2.0, some OS informs users, "you can connect the device to 2.0 compliant hub so that it can have better bandwidth", which is not the case for full speed device.
Version 0.15 of Gnuk has been released.
Now, we support Flying Stone Tiny 01.
It includes some bug fixes and workaround too.
New targets: FST_01 and FST_01_00
Flying Stone Technology's open hardware, Flying Stone Tiny 01 is supported.
Flash writing tool for "DfuSe" is improved
Now, it support holes and unaligned blocks in hex file.
Experimental PIN-pad support (by TV controller) change
Now, Gnuk has codetables for conversion from CIR code to ASCII code. Note that only four controllers (of Dell, Sharp, Sony, and Toshiba) are supported and tested.
It is possible for users to keep using OPENPGP_CARD_INITIAL_PW1
With a bug fix of verify_user_0, it's now possible. Although it's not recommended.
Important bug fix and a workaround
In version 0.14, __main_stack_size__ (for interrupt handler) was too small for some cases. This is fixed in 0.15.
In src/Makefile.in, added -mfix-cortex-m3-ldrd for correctly linking C library for thumb2. This is needed for newer summon-arm-toolchain.
Version 0.14 of Gnuk has been released.
It includes some bug fix (for stack usage), and a improvement for random bytes handling. We don't need to care about random bytes any more, as it is generated on the device.
Random number generator change
NeuG, Gniibe's True RNG implementation for STM32F103, has been integrated to Gnuk. It is not needed to put random number bytes (generated by host) to Token any more.
Niibe revised the design of Flying Stone Tiny (FST-01) for STM32F103TB, which is small enough.
It was not under consideration before, as he thought QFN soldering were very difficult. But now (for him), QFN soldering is not the thing to be avoided.
The photo is the one, it's built by DIY reflow soldering and hand soldering.
Please vote for FST-01 at the site: http://www.seeedstudio.com/wish/?p=783
