On Feb 11, 2011, at 6:55 PM, Douglas E. Engert wrote: > On 2/11/2011 3:24 AM, Martin Paljak wrote: >> On Fri, Feb 4, 2011 at 01:19, Andre Zepezauer >> <andre.zepeza...@student.uni-halle.de> wrote: >> >>> BTW: The main handle in OpenSC is 'sc_pkcs15_card_t' and not >>> 'sc_context_t'. In fact 'sc_context_t' is really unimportant. But >>> sc_pkcs15_card_t holds all the operational state the is required to make >>> things working. Have a look at VENDOR_SPECIFIC, there is only one OpenSC >>> specific field needed. >> >> This is actually a very good idea. >> sc_pkcs15_card_from_handles(hContext, hCard) -> pkcs15_card_t or NULL >> is a sensible thing to expose, in pair with >> sc_pkcs15_card_from_reader(reader_name) > > But the reader-pcsc.c is still out there detecting readers. Given a > reader_name this may work on Mac. Given a handle on Windows to a reader, > one could read the reader name, but if there are multiple readers from the > same vendor with the same name how do you tell them apart? Who > creates the unique name for the readers on the system? > Given a handle do you determine you have found the same reader that > the Microsoft BaseCSP said to use.
reader-pcsc.c must detect readers only when asked to do that. PC/SC subsystem assigns reader names. And two readers from the same manufacturer IIRC get index number appended to the end of the name, like with pcsc-lite ? It makes sense to expose the PKCS#15 layer instead of requiring these two callers (Tokend, BaseCSP) re-implement the "do the tasks that are needed to get either a PKCS#15 card object or error" in two different places. And advertise the "get pkcs15 card object" API to external users. > Is there any PC/SC call to detect if two handles point to the same reader? > > I also think tokend is assuming there are no other smartcard drivers > running? With Windows that may not be the case. The detection code in OPenSC > might have some impact on a card in a reader that is not being controlled > by OpenSC if you allow it to still detect readers. By recommendations, a Tokend is supposed to lock the card to prevent other applications from accessing it (and Apple provides a PKCS#11 interface on top of Tokend as well, and there a "tokend for PKCS#11 drivers" which is in turn also available through the Apple PKCS#11 module....) -- @MartinPaljak.net +3725156495 _______________________________________________ opensc-devel mailing list opensc-devel@lists.opensc-project.org http://www.opensc-project.org/mailman/listinfo/opensc-devel