2012/6/12 s.ferey <s.ferey@wana...>:
> Le 11/06/2012 17:12, Frank Peters a écrit :
>> Am 11.06.2012 14:11, schrieb s.ferey:
>>> however yes a specific service, or the definition of a new constant for
>>> the SCardGetStatusChange function (afaik only 11 over 32 bits of the
>>> dwCurrentState field are used), or a tag for the SCardGetAttrib
>>> function, could be an easy& efficient way to know if the communication
>>> is over-the-air or not.
>> sorry, I missed the start of this discussion. Isn't it possible to use
>> SCardGetAttrib with Tags 0121 or 0122 (default and max clock,
>> respectively, special result of 13560 for contactless) or with 0150
>> (mech. characteristics, bitfield, 00000008 means contactless)? (see
>> PC/SC pt 3, section 188.8.131.52)
> Hi Frank,
> Thank for feedback, and thank for drawing my attention to this point.
> Your proposal sounds relevant and effective, unfortunately it dramatically
> depends on the drivers (thus providers), for instance the driver for an
> omnikey 5021-CL (fw 1.73) gives the following values:
> Default Clock (121h) 0xC0120000
> Max Clock (122h) 0x401F0000
> Mech. Charact. (150h) 0x00000000
My CCID driver do not implement SCARD_ATTR_DEFAULT_CLK,
SCARD_ATTR_MAX_CLK or SCARD_ATTR_CHARACTERISTICS.
I think using SCARD_ATTR_CHARACTERISTICS would be the best solution to
identify a contactless reader from a PC/SC application.
> so no magic 13.56, and the mechanical characteristics (defined since at
> least PC/SC 2.01.04 June 2005) still doesn't provide any info.
> so to rewrite my point: a comprehensive (not new) implementation of
> SCardGetReaderCapabilities (not SCardGetAttrib) will be definitively nice.
What is SCardGetReaderCapabilities? Where is it specified?
> btw I have to note that with less than 3 exchanges we success to turn this
> technical challenge into a basic compliance issue :)
Compliance to what?
Note that PC/SC documents do not specify the API used/implemented by Microsoft.
PC/SC v2 part 5 version 2.01.01 page 24 talks about
GetReaderCapabilities(). Microsoft implemented it as SCardGetAttrib().
pcsc-lite also implements it as SCardGetAttrib() to be compatible with