|
Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com |
From: Ludovic Rousseau (ludovic.rousseau
gmail.com)
Date: Mon Jun 07 2010 - 08:03:24 CDT
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
2010/6/4 Ludovic Rousseau <ludovic.rousseau
gmail.com>:
> 2010/6/4 Martin Paljak <martin
paljak.pri.ee>:
>> Hello,
>>
>> On Jun 4, 2010, at 16:39 , Ludovic Rousseau wrote:
>>
>>> As usual, report any bug. Thanks
>>
>>> 4 June 2010
>>> - SCardControl(): do not check for card events since we are talking to
>>> the reader not the card. A smart card removal should not make
>>> SCardControl() fail with SCARD_W_REMOVED_CARD
>> I'm not sure but I recall a similar comment before.
>>
>>
>> Will SCardControl result in a SCARD_E_NOT_TRANSACTED if the card is removed?
>
> If the driver reports an error yes (should be).
I checked with a GemPC pinpad and my sample program ccid/examples/scardcontrol
If I removed the card when the pin is asked on the pinpad I get:
00000034 -> 000000 69 21 00 00 00 00 24 00 00 00 01 00 82 04 00 00 04
08 04 03 02 03 04 09 00 00 00 00 40 0D 00 24 00 00 08 30 30 30 30 30
30 30 30
card removed here
02088569 <- 000000 80 00 00 00 00 00 24 82 01 00
00000025 commands.c:1347:CCID_Receive() Time extension requested: 0x01
03010730 <- 000000 80 00 00 00 00 00 24 42 FE 00
00000029 commands.c:1318:CCID_Receive Card absent or mute
00000013 Control RxBuffer:
00000013 ifdwrapper.c:644:IFDControl() Card not transacted: 612
When the card is removed the driver gets a "Time extension request"
and an error message is displayed on the pinpad reader.
After 1 or 2 seconds the error message disappears and the error "Card
absent or mute" is returned to the driver.
The application then gets a Transaction failed. (0x80100016) error.
So yes, the application gets a SCARD_E_NOT_TRANSACTED if the reader
reports an error when the card is removed.
>> I don't know what the reference implementation does (Windows) but for IOCTL-s that are known to talk to the card eventually (PIN entry related) I'd expect SCardControl to behave somewhat like SCardTransmit (which means giving card state related status codes)
>
> Good point. I will have to check.
SCardControl() does not know what commands are for the reader only and
what commands involve the card.
I do not see how I could return a SCARD_W_REMOVED_CARD instead of
SCARD_E_NOT_TRANSACTED.
Bye
--
Dr. Ludovic Rousseau
_______________________________________________
Muscle mailing list
Muscle
lists.musclecard.com
http://lists.drizzle.com/mailman/listinfo/muscle
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]