2
votes

I'm currently discovering the smart card world and there are some things that I don't understand. I'm developing a driver that talks to my smart card reader (USB) using the CCID protocol (I succeeded in having basic communications).

But then if I want to talk to my card using ISO/IEC 7816-4 specification, I will keep using the CCID protocol and in the PC_to_RDR_XfrBlock() request, in the data part (abData at offset 10 cf $6.1.4 page 30 specification of CCID) I will directly send my ISO/IEC 7816 command as READ_BINARY, WRITE_BINARY, SELECT ... And the smartcard reader will answer me using RDR_to_PC_DataBlock() ($6.2.1 page 49).

This question is OS independent, and not using any existing drivers or OS library.

Am I right?

1
To prevent future disappointment: ISO 7816-4 is a standard not a specification; this especially means, that you can't rely of practically any feature to be really implemented from the token or card in question.guidot

1 Answers

4
votes

I found my answer by analysing trames with wireshark. It seems to work as I described it.

Here are somes links that will help user that tries to do the same.

To setup usb capture : https://wiki.wireshark.org/CaptureSetup/USB

To enable iso 7816 frames analysis in wireshark (inside ccid packets): https://ask.wireshark.org/questions/32594/iso-7816-example-capture