On Feb 11, 2008 2:57 AM, Geoff Elgey <[EMAIL PROTECTED]> wrote: > G'day,
Hello, > I am investigating writing a card applet, and using pcsc-lite to communicate > to the card. > > My understanding of the calling stack is as follows: > > application -> pcsc-lite -> ccid -> reader -> card -> applet Exact. > I am interested in how to handle the ISO7816-4 SELECT command. > > For T0 protocol, it seems that the application will send a SELECT command and > get back a 61xx response. The application then sends a GET RESPONSE command > to fetch the SELECT response data and get back a 9000 response. > > For T1 protocol, it seems that the SELECT command will return the response > data and a 9000 response to the application. > > I understand that ISO7816-4 Annex A mentions that a case 4 command APDU (such > as a SELECT with Le present) should be split up into 2 x command APDU by the > "transmission system" when T0 protocol is used, but I am wondering what > constitutes the "transmission system" in this context. Is it pcsc-lite? The > ccid driver? Within the reader? PC/SC does not correctly manage case 4 APDU. pcsc-lite and the driver will not send a GET RESPONSE by them self. You should not use case 4 APDU but use a case 3 SELECT (so without Le) and a case 2 GET RESPONSE. > 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? This should be managed automatically by the JVM inside the card. But I am not a Java Card expert. > In short, I'm trying to figure out what stuff I need to handle in the applet > and what stuff is already handled for me by pcsc-lite, ccid, the reader, the > card manager, etc. Good luck -- Dr. Ludovic Rousseau _______________________________________________ Muscle mailing list [email protected] http://lists.drizzle.com/mailman/listinfo/muscle
