Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email email@example.com
From: Ludovic Rousseau (ludovic.rousseaugmail.com)
Date: Tue Sep 14 2010 - 04:30:17 CDT
2010/8/13 Douglas E. Engert <deengertanl.gov>:
> Two weeks ago, I reported problems with using pin pad readers on big
> endian machines. During the mail exchanges it was pointed out that the
> PCSC standards have changed and are not clear on how the uint16_t and
> uint32_t values in the PIN_VERIFY_STRUCTURE and PIN_MODIFY_STRUCTURE
> should be passed.
> In addition the OpenSC defined its own version of the reader.h and did
> not define the HOST_TO_CCID_16 and HOST_TO_CCID_32 correctly.
> Attached is a patch against ccid-1.3.13 src/command.c that will test
> the ulDataLength to see if it is big endian, on a big endian machine.
> If so, it will swap the bytes in the 3 fields to be little endian.
> Thus if the fields are passed in in either little or big endian
> the fields will be converted to little endian, ready for the pin pad
> reader, and the code will work on any machine.
> This was tested on a Solaris 10 sparc system with an Omnikey 3821
> reader, using ccid-1.3.3 and pcsc-lite-1.6.1, and OpenSC-svn.
> I can't test against ccid-1.4 as it is now using libusb-1.0, and this
> is not supported on Solaris. It looks like the code change should
> still work with ccid-1.4.
Patch applied in revision 5252
Dr. Ludovic Rousseau
Muscle mailing list