diff options
author | NIIBE Yutaka <[email protected]> | 2011-01-13 07:38:31 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2011-03-02 15:52:27 +0000 |
commit | 682da55aa985afcbae3b16686ad96bb77ad87adf (patch) | |
tree | b787dbb39b1f26ad80a5419ee5bdf3b342ba8c71 /common/estream.c | |
parent | Fix usage of SHA-2 algorithm with OpenPGP cards. (diff) | |
download | gnupg-682da55aa985afcbae3b16686ad96bb77ad87adf.tar.gz gnupg-682da55aa985afcbae3b16686ad96bb77ad87adf.zip |
fix wLangId in ccid-driver.c
This is not a part of pin pad support series of mine.
As I found the bug while I am preparing the patches, I report this.
As CCID protocol is little endian, wLangId of US English = 0x0409
is represented as two bytes of 0x09 then 0x04.
It is really confusing that the code like following is floating
around:
pin_verify -> wLangId = HOST_TO_CCID_16(0x0904);
But, it is 0x0409 (not 0x0904). It is defined in the documentation:
http://www.usb.org/developers/docs/USB_LANGIDs.pdf
and origin of this table is Microsoft. We can see it at:
http://msdn.microsoft.com/en-us/library/bb165625%28VS.80%29.aspx
Yes, it would be better not to hard-code 0x0409. It would be better
to try current locale of the user, or to use the first entry of string
descriptor. I don't have time to implement such a thing...
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions