[Muscle] SELECT, GET RESPONSE, and pcsc-lite

Sylvain Ferey s.ferey at wanadoo.fr
Mon Feb 11 02:00:32 PST 2008


At 09:00 11/02/2008 +0100, you wrote:

>PC/SC does not correctly manage case 4 APDU. pcsc-lite and the driver
>will not send a GET RESPONSE by them self.


the PC/SC layer is not supposed to send such GET RESPOSNE by itself!


>You should not use case 4 APDU but use a case 3 SELECT (so without Le)
>and a case 2 GET RESPONSE.

do you mean when using pcsclite ?
of course MS PC/SC accept a case 4 command & do transmit the Le parameter, 
note that Le can will required by the card - some of them will return an 
error if it is not provided.


> > The corresponding question is how the applet should handle SELECT: does 
> it return response data and 9000 in all cases, or only if an Le is 
> present in the APDU, or does the applet need to recognize when to return 
> 61xx for SELECT and also handle a GET RESPONSE command APDU?

your applet shall return a response - a FCI - if the command request it, 
meaning P2 not set to 0x0C, you will simply process it using 
APDU.setOutgoingAndSend(), the JCRE will manage the protocol itself: under 
T=1 protocol, it will send the response, under T=0 protocol, it will keep 
theat response, send a 61xxh status, handle the next incoming Get Response 
command.

Sylvain.





More information about the Muscle mailing list