Thanks,
 Now the main issue with Solaris is a lack of libusb-1.0. I started to
look at this, and it is not trivial.


On 9/14/2010 4:30 AM, Ludovic Rousseau wrote:
2010/8/13 Douglas E. Engert<deeng...@anl.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
http://lists.alioth.debian.org/pipermail/pcsclite-cvs-commit/2010-September/004804.html

Thanks.


--

 Douglas E. Engert  <deeng...@anl.gov>
 Argonne National Laboratory
 9700 South Cass Avenue
 Argonne, Illinois  60439
 (630) 252-5444
_______________________________________________
Muscle mailing list
Muscle@lists.musclecard.com
http://lists.drizzle.com/mailman/listinfo/muscle

Reply via email to