Hi!

I'm wondering if anybody on this list has an idea what the reason for the strange behavior of the Java smartcard I/O API in 64-bit mode described below might be.

Java smartcard I/O is shipped with Java SE 6.0 and above. It uses a JNI library to communicate with PCSC-Lite (a part of the SmartcardServices framework as far as I understand). When Java is running in 32-bit mode the communication between Java and pcscd seems to works fine. However, when Java is running in 64-bit mode (which is the default in Snow Leopard) the communication seems to fail somewhere between pcscd and the Java smartcard I/O.

pcscd is switched to 32-bit mode as soon as a card terminal with a 32-bit driver is connected. When Java is running in 64-bit mode the JNI library libj2pcsc and pcsc-lite are also loaded in their 64-bit versions. Thus, the 33/64-bit transition takes place between pcscd and the pcsc-lite library. So I first thought, it might be a general issue of the pcsc-lite library and pcsc-deamon in a mixed 32/64-bit environment. However, testing with this very simple C program attached