2010/8/13 Douglas E. Engert <[email protected]>: > 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 http://lists.alioth.debian.org/pipermail/pcsclite-cvs-commit/2010-September/004804.html Thanks. -- Dr. Ludovic Rousseau _______________________________________________ Muscle mailing list [email protected] http://lists.drizzle.com/mailman/listinfo/muscle
