[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