On 2/11/2011 11:43 AM, Martin Paljak wrote: > > 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 ? >
OK then it would be possible to use the BaseCSP provided handle to get the reader name, then use the reader name to get a new handle to the same reader. That would be a completely different approach for cardmod then what we have been talking about in other e-mails. The question is which is a better way to do this? Are there any subtle differences in not using the handles provided by the BaseCSP? There might be, and that is why I have been leaning to using the BaseCSP handles. What do other CSPs or mini-drivers do? > 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....) > > > -- Douglas E. Engert <deeng...@anl.gov> Argonne National Laboratory 9700 South Cass Avenue Argonne, Illinois 60439 (630) 252-5444 _______________________________________________ opensc-devel mailing list opensc-devel@lists.opensc-project.org http://www.opensc-project.org/mailman/listinfo/opensc-devel