[SmartcardServices-Users] PCSC framework 32/64-bit issue

Martin Centner mcentner at egiz.gv.at
Thu Sep 10 01:33:14 PDT 2009


I just wanted to give some more information about the issue.

These are the log messages produced by pcscd when the simple Java  
application is running in 32-bit mode ...

/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg_srv.c:217:SHMProcessEventsServer() Common channel packet  
arrival
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg_srv.c:226:SHMProcessEventsServer()  
SHMProcessCommonChannelRequest detects: 7
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
pcscdaemon.c:256:SVCServiceRunLoop() A new context thread creation is  
requested: 7
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_svc.c:178:ContextThread() Thread is started: 7
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:119:SHMClientReadMessage() SHMClientReadMessage:  
Issuing read for 48 bytes (header)
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:500:SHMMessageReceive() SHMMessageReceive errno:  
0x00000000: no error
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:501:SHMMessageReceive() SHMMessageReceive retval:  
0x00000000, bytes read: 48
<== SHMMessageReceive:
12 34 56 78 00 00 00 3C 00 00 00 F8 00 00 01 F5 00 00 00 14 00 00 00  
F8 4A A8 B5 76 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  
00 00
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:122:SHMClientReadMessage() SHMClientReadMessage: read  
message header error: 0x00000000 [0x00000000]
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:148:SHMClientReadMessage() SHMClientReadMessage:  
Issuing read for 12 bytes
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:500:SHMMessageReceive() SHMMessageReceive errno:  
0x00000000: no error
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:501:SHMMessageReceive() SHMMessageReceive retval:  
0x00000000, bytes read: 12
<== SHMMessageReceive:
00 00 00 03 00 00 00 00 09 34 91 38
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:153:SHMClientReadMessage() SHMClientReadMessage: read  
message body error: 0x00000000 [0x00000000]
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg_srv.c:293:SHMProcessEventsContext() correctly processed  
client: 7
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_svc.c:242:ContextThread() Client is protocol version 3:0
==> SHMMessageSend:
12 34 56 78 00 00 00 3C 00 00 00 F8 00 00 01 F5 00 00 00 14 00 00 00  
F8 4A A8 B5 76 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  
00 00 00 00 00 03 00 00 00 00 00 00 00 00
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:119:SHMClientReadMessage() SHMClientReadMessage:  
Issuing read for 48 bytes (header)
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:500:SHMMessageReceive() SHMMessageReceive errno:  
0x00000000: no error
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:501:SHMMessageReceive() SHMMessageReceive retval:  
0x00000000, bytes read: 48
<== SHMMessageReceive:
12 34 56 78 00 00 00 3C 00 00 00 F1 00 00 01 F5 00 00 00 14 00 00 00  
01 4A A8 B5 76 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  
00 00
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:122:SHMClientReadMessage() SHMClientReadMessage: read  
message header error: 0x00000000 [0x00000000]
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:148:SHMClientReadMessage() SHMClientReadMessage:  
Issuing read for 12 bytes
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:500:SHMMessageReceive() SHMMessageReceive errno:  
0x00000000: no error
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:501:SHMMessageReceive() SHMMessageReceive retval:  
0x00000000, bytes read: 12
<== SHMMessageReceive:
00 00 00 00 00 00 00 00 00 00 00 00
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:153:SHMClientReadMessage() SHMClientReadMessage: read  
message body error: 0x00000000 [0x00000000]
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg_srv.c:293:SHMProcessEventsContext() correctly processed  
client: 7
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard.c:199:SCardEstablishContext() Establishing Context: 17002257  
[0x01036F11]
==> SHMMessageSend:
12 34 56 78 00 00 00 3C 00 00 00 F1 00 00 01 F5 00 00 00 14 00 00 00  
01 4A A8 B5 76 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  
00 00 00 00 00 00 01 03 6F 11 00 00 00 00
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:119:SHMClientReadMessage() SHMClientReadMessage:  
Issuing read for 48 bytes (header)
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:461:SHMMessageReceive() SHMMessageReceive: peer  
closed the socket
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:500:SHMMessageReceive() SHMMessageReceive errno:  
0x00000000: no error
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:501:SHMMessageReceive() SHMMessageReceive retval:  
0xFFFFFFFF, bytes read: 0
<== SHMMessageReceive:

/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:122:SHMClientReadMessage() SHMClientReadMessage: read  
message header error: 0xFFFFFFFF [0xFFFFFFFF]
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg_srv.c:282:SHMProcessEventsContext() Client has  
disappeared: 7
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_svc.c:199:ContextThread() Client die: 7
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard.c:210:SCardReleaseContext() Releasing Context: 17002257

... and these when running in 64-bit mode ....

/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg_srv.c:217:SHMProcessEventsServer() Common channel packet  
arrival
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg_srv.c:226:SHMProcessEventsServer()  
SHMProcessCommonChannelRequest detects: 7
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
pcscdaemon.c:256:SVCServiceRunLoop() A new context thread creation is  
requested: 7
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_svc.c:178:ContextThread() Thread is started: 7
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:119:SHMClientReadMessage() SHMClientReadMessage:  
Issuing read for 48 bytes (header)
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:500:SHMMessageReceive() SHMMessageReceive errno:  
0x00000000: no error
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:501:SHMMessageReceive() SHMMessageReceive retval:  
0x00000000, bytes read: 48
<== SHMMessageReceive:
12 34 56 78 00 00 00 3C 00 00 00 F8 00 00 01 F5 00 00 00 14 00 00 00  
F8 4A A8 B5 A6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  
00 00
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:122:SHMClientReadMessage() SHMClientReadMessage: read  
message header error: 0x00000000 [0x00000000]
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:148:SHMClientReadMessage() SHMClientReadMessage:  
Issuing read for 12 bytes
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:500:SHMMessageReceive() SHMMessageReceive errno:  
0x00000000: no error
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:501:SHMMessageReceive() SHMMessageReceive retval:  
0x00000000, bytes read: 12
<== SHMMessageReceive:
00 00 00 03 00 00 00 00 00 26 25 41
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:153:SHMClientReadMessage() SHMClientReadMessage: read  
message body error: 0x00000000 [0x00000000]
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg_srv.c:293:SHMProcessEventsContext() correctly processed  
client: 7
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_svc.c:242:ContextThread() Client is protocol version 3:0
==> SHMMessageSend:
12 34 56 78 00 00 00 3C 00 00 00 F8 00 00 01 F5 00 00 00 14 00 00 00  
F8 4A A8 B5 A6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  
00 00 00 00 00 03 00 00 00 00 00 00 00 00
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:119:SHMClientReadMessage() SHMClientReadMessage:  
Issuing read for 48 bytes (header)
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:500:SHMMessageReceive() SHMMessageReceive errno:  
0x00000000: no error
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:501:SHMMessageReceive() SHMMessageReceive retval:  
0x00000000, bytes read: 48
<== SHMMessageReceive:
12 34 56 78 00 00 00 3C 00 00 00 F1 00 00 01 F5 00 00 00 14 00 00 00  
01 4A A8 B5 A6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  
00 00
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:122:SHMClientReadMessage() SHMClientReadMessage: read  
message header error: 0x00000000 [0x00000000]
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:148:SHMClientReadMessage() SHMClientReadMessage:  
Issuing read for 12 bytes
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:500:SHMMessageReceive() SHMMessageReceive errno:  
0x00000000: no error
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:501:SHMMessageReceive() SHMMessageReceive retval:  
0x00000000, bytes read: 12
<== SHMMessageReceive:
00 00 00 00 00 00 00 00 00 00 00 00
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:153:SHMClientReadMessage() SHMClientReadMessage: read  
message body error: 0x00000000 [0x00000000]
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg_srv.c:293:SHMProcessEventsContext() correctly processed  
client: 7
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard.c:199:SCardEstablishContext() Establishing Context: 16995192  
[0x01035378]
==> SHMMessageSend:
12 34 56 78 00 00 00 3C 00 00 00 F1 00 00 01 F5 00 00 00 14 00 00 00  
01 4A A8 B5 A6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  
00 00 00 00 00 00 01 03 53 78 00 00 00 00
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:119:SHMClientReadMessage() SHMClientReadMessage:  
Issuing read for 48 bytes (header)
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:461:SHMMessageReceive() SHMMessageReceive: peer  
closed the socket
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:500:SHMMessageReceive() SHMMessageReceive errno:  
0x00000000: no error
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:501:SHMMessageReceive() SHMMessageReceive retval:  
0xFFFFFFFF, bytes read: 0
<== SHMMessageReceive:

/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg.cpp:122:SHMClientReadMessage() SHMClientReadMessage: read  
message header error: 0xFFFFFFFF [0xFFFFFFFF]
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_msg_srv.c:282:SHMProcessEventsContext() Client has  
disappeared: 7
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard_svc.c:199:ContextThread() Client die: 7
/SourceCache/SmartCardServices/SmartCardServices-36160/src/PCSC/ 
winscard.c:210:SCardReleaseContext() Releasing Context: 16995192

... in 32-bit mode the inserted card is found in 64-bit mode it says  
that there is no card present.

Unfortunately I don't know how to read the the messages sent between  
pcsc client and deamon.

Regards,
Martin

On 09.09.2009, at 15:04, Martin Centner wrote:
> 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
> <main.c>
> linking to the pcsc-lite library showed that it works fine when run  
> in 32-bit and 64-bit mode.
>
> Running this very simple Java program attached
> <JavaSmartCardIOTest.jar>
> shows different results when running in 32-bit and 64-bit mode. In  
> 32-bit mode it finds all connected card terminals and is able to  
> connect to inserted cards. In 64-bit mode it fails to list the card  
> terminals and/or fails to connect to the inserted card.
>
> Any ideas?
>
> Thanks a lot,
> Martin
>
>
>
> _______________________________________________
> SmartcardServices-Users mailing list
> SmartcardServices-Users at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/smartcardservices-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/smartcardservices-users/attachments/20090910/36062cfe/attachment-0001.html>


More information about the SmartcardServices-Users mailing list