On 01/07/07, Geoff Elgey <[EMAIL PROTECTED]> wrote:
G'day,
Hello,
I wanted to test some PKCS#11 libraries that talk to a Common Access Card (CAC) via PC/SC. So I wrote my own implementation of the PC/SC interface, whose basic function was to emulate the CAC APDU handling in the SCardTransmit() function. So the APDUs that would normally be routed by PC/SC to the card are now handled in software instead. This seems to work fine, but the PKCS#11 libraries in question expect to load libpcsclite.so.1, and I had to perform some load-library path trickery to get my libpcsclite.so.1 implementation to load instead of the system-installed libpcsclite.so.1 But I am wondering if I can achieve the same thing (a CAC emulator) by writing an ifd-handler for pcsclite (like the ccid and e-gate handlers), rather than writing my own PC/SC implementation. This way, the PKCS#11 libraries can still load the libpcsclite.so.1 that they expect to load, but I would be configuring pcsclite to use the cac-emulator ifd-handler instead of the ccid ifd-handler. Is this possible? I had a brief look at the ifd-handler API and it there's discussion about USB devices. Is the ifd-handler API (and the pcsclite code that calls it) just meant for USB devices? Or is it sufficiently high-level enough that I can write a ifd-handler that represents a reader and card implemented purely in software?
I think the easiest way would be to emulate a serial smart card reader. The main difference is that pcscd will load the driver during start up and will not use a polling mechanism like for USB devices. The ifdhandler API is described in [1]. And the serial reader configuration is at [2]. It should be easy to simulate a card insertion/removal in the IFDHICCPresence() function. You can start with the PC/SC Driver Developers Kit from [3]. bye, [1] http://pcsclite.alioth.debian.org/ifdhandler-3/ [2] http://pcsclite.alioth.debian.org/ifdhandler-3/node8.html [3] http://musclecard.com/sourcedrivers.html -- Dr. Ludovic Rousseau _______________________________________________ Muscle mailing list [email protected] http://lists.drizzle.com/mailman/listinfo/muscle
