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

Reply via email to