The statment by Thomas Schaeck is clearly not representing what ISO is 
     defining as an APDU (He refers clearly only to the transport layer).
     To our understanding the Card Terminal driver must hide this 
     implementation totaly from the Card Service. It is anyhow unclear who 
     is talking in T=0 to whom. The communication between card and terminal 
     may be in T=0 but the Terminal will talk with the Host in T=1 (in this 
     case the Terminal may already handle the 61 XX by itself) or 
     viceversa.
     
     The nice feature of the OpenCard Framework is that you can write Card 
     Services which will work without having to deal with implementatiomn 
     details. The APDUs (C-APDU and R-APDU) are protocol independent and 
     the mapping of TPDUs to APDUs for T=0 is defined in ISO/IEC 7816-3 and 
     7816-4:
     To our understanding a good card terminal driver should also perform 
     the re-issuing of commands in T=0 case 2 when the card responds with 
     6C xx. This is not mandatory as of ISO but should be for OpenCard to 
     quarantee protocol independence.
     
     The statement by Schaeck that this behaviour is needed to handle 
     wrongly programmed T=1 cards is totally ununderstandable. The Terminal 
     Driver should know in which protocol he is talking to the Terminal and 
     behaive accordingly (Ignore 61 XX in case of T=1). 
     Also we feel that the OpenCard Framework should be a user interface to 
     talk to SmartCards from JAVA and is not needed nor usable as a debug 
     tool to develop and test transport protocol implementations on 
     SmartCards.
     
     If the philosophy of OpenCard is not to be a transparent API layer for 
     communication with a SmartCard we feel that it is unusable and should 
     be replaced.
     
     Regards
     Dr. Martin Merck
     Giesecke & Devrient GmbH


____________________________ Antwort-Abtrennung ________________________________
Betreff: Re: [OCF] Card Terminal behaviour when SW1=0x6c
Autor:  MIME:[EMAIL PROTECTED] bei INTERNET
Datum:    14.04.99 10:12


     
     
Recently, there was some discussion about how to handle the T=0 protocol in 
OpenCard, or to be more exact, how to handle T=0 Case 4. This is the case 
where the card indicates that its result has to be obtained by sending a 
subsequent GetResponse command. The return code indicating this case is 
0x61 XX, where XX is the length of the response to be retreived.
     
When designing the OpenCard Framework, we defined the card terminal layer 
role in communication with cards as follows: The card terminal layer 
transparently sends command APDUs to smart cards and returns the response 
APDUs. It does not interpret or modify the transmitted APDUs in any way.
     
It is important to have such a transparent communication path. Only some 
examples: How would a card applet programmer be able to test how a T=0 card 
reacts if a wrong GetResponse command is sent to the card after obtaining 
61 XX if the card terminal driver handles this automatically ? What if 
someone wrote an Applet for a T=1 JavaCard that returns 61 XX due to a 
programming error ?
     
All interpretation of APDUs is the task of the card service layer. Card 
services have the responsibility of handling the application protocol 
required by the card - even if the application protocol has a special case 
due to the missing support for two way flow in T=0.
     
Best Regards,
     
Thomas
     
Thomas Schaeck
IBM Pervasive Computing Division - Smart Card Solutions
E-mail: [EMAIL PROTECTED]       Tel.: ++49-7031-16-3479       Fax.: 
++49-7031-16-4888
Address: IBM Deutschland Entwicklung GmbH, Schoenaicher Str. 220, 71032 
Boeblingen, Germany
     
     
     
[EMAIL PROTECTED] on 14.04.99 05:24:43
     
Please respond to [EMAIL PROTECTED]
     
To:   [EMAIL PROTECTED]
cc:   [EMAIL PROTECTED] (bcc: Thomas Schaeck/Germany/IBM) 
Subject:  Re: [OCF] Card Terminal behaviour when SW1=0x6c
     
     
     
     
     
     
In einer eMail vom 13.04.99 17:15:10 MEZ, schreiben Sie:
     
<< Thema:  [OCF] Card Terminal behaviour when SW1=0x6c >>
     
     
Hi,
     
in my eyes, the transport layer of the CardTerminal implementation 
- i.e. the clases that manage the exchange of APDUs according to an
ISO-7816 protocol T=x - is responsible for handling the '0x6C 0xLe' case, 
where 0xLe gives the correct number of bytes generated by a card command.
     
A CardServivce (running somewhere between OSI presentation and application 
layer) should be isolated as much as possible from protocol specific tasks. 
In general, it must work with every card 'understanding' the command APDUs 
transmitted, whether speaking T=0 or T=1.
     
Best regards.
     
---------------------------------------------------------------------- 
Markus A. Stulle - Schlei�heimer Stra�e 70          [EMAIL PROTECTED]
                   D-80797 Muenchen - Germany
                   Tel./FAX: (+89) 520 59 001, GSM: (+171) 213 - 70 84 
                   GSM-FAX: (+171) 214 - 84 74, GSM-Data: - 86 74 
                   AOL-FAX: (+40) 36 03 - 02 00 16
    'Java Madman'  Current Java version is:  Java 2
                   Available at:  http://java.sun.com/products/jdk/1.2
-----------+===+------------------------------------------------------
   > press |ESC| key once to abort program or twice to continue! <
-----------+===+------------------------------------------------------
     
Visit the OpenCard Framework's WWW site at http://www.opencard.org/ for 
access to documentation, code, presentations, and OCF announcements. 
--------------------------------------------------------------------------- 
--
To unsubscribe from the OCF Mailing list, send a mail to 
"[EMAIL PROTECTED]" with the word "unsubscribe" in the BODY of 
the
message.
     
     
{\rtf1\ansi \deff0\deflang1024{\fonttbl{\f0\froman Tms Rmn;}{\f1\froman Symbol;}{\f2\fswiss Helv;}}
{\colortbl;\red0\green0\blue127;\red0\green127\blue0;\red0\green127\blue127;\red127\green0\blue0;
\red127\green0\blue127;\red127\green127\blue0;\red127\green127\blue127;;\red0\green0\blue255;
\red0\green255\blue0;\red0\green255\blue255;\red255\green0\blue0;\red255\green0\blue255;
\red255\green255\blue0;\red255\green255\blue255;}\paperw12240\paperh15840\margl1800\margr1800\margt1440\margb1440
\gutter0 \defformat\sectd \pard\plain {\plain \f0 \cb7 \cf0 \cb1 \cf7      \
\cb1 \cf7      \cb1 \cf14 The statment by Thomas Schaeck is clearly not representing what ISO is \
\cb1 \cf7      \cb1 \cf14 defining as an APDU (He refers clearly only to the transport layer).\
\cb1 \cf7      \cb1 \cf14 To our understanding the Card Terminal driver must hide this \
\cb1 \cf7      \cb1 \cf14 implementation totaly from the Card Service. It is anyhow unclear who \
\cb1 \cf7      \cb1 \cf14 is talking in T=0 to whom. The communication between card and terminal \
\cb1 \cf7      \cb1 \cf14 may be in T=0 but the Terminal will talk with the Host in T=1 (in this \
\cb1 \cf7      \cb1 \cf14 case the Terminal may already handle the 61 XX by itself) or \
\cb1 \cf7      \cb1 \cf14 viceversa.\
\cb1 \cf7      \
\cb1 \cf7      \cb1 \cf14 The nice feature of the OpenCard Framework is that you can write Card \
\cb1 \cf7      \cb1 \cf14 Services which will work without having to deal with implementatiomn \
\cb1 \cf7      \cb1 \cf14 details. The APDUs (C-APDU and R-APDU) are protocol independent and \
\cb1 \cf7      \cb1 \cf14 the mapping of TPDUs to APDUs for T=0 is defined in ISO/IEC 7816-3 and \
\cb1 \cf7      \cb1 \cf14 7816-4:\
\cb1 \cf7      \cb1 \cf14 To our understanding a good card terminal driver should also perform \
\cb1 \cf7      \cb1 \cf14 the re-issuing of commands in T=0 case 2 when the card responds with \cb1 \cf7 \
61 \cb1 \cf14 XX if the card terminal driver handles this automatically ? What if \
\cb1 \cf7 someo\cb1 \cf14 ne wrote an Applet for a T=1 Jav\cb1 \cf7 aCard\cb1 \cf7  that\cb1 \cf14  returns 61 XX due to a \
programming error ?\
     \
All interpr\cb1 \cf7 etati\cb1 \cf14 on of APDUs is the task of the card service layer. Card \
services have\cb1 \cf7  the \cb1 \cf14 responsibility of handling the application protocol \
required by the c\cb1 \cf7 ard -\cb1 \cf14  even if the application protocol has a special cas\cb1 \cf7 e \
d\cb1 \cf14 ue to the missing support for two way flow in T=0.\
     \
Best Regards\cb1 \cf7 ,\
  \cb1 \cf14    \
Thomas\
     \
Thomas Schaeck\
IBM Pervasive Computing Division \cb1 \cf7 - Sma\cb1 \cf14 rt Card Solutions\
E-mail: [EMAIL PROTECTED]       Tel.: ++49-\cb1 \cf7 7031-\cb1 \cf14 16-3479    \cb1 \cf7    Fa\cb1 \cf7 x.: \
\cb1 \cf14 ++49-7031-16-4888\
Address: IBM Deutschland Entwicklung GmbH, Schoenaic\cb1 \cf7 her S\cb1 \cf14 tr. 220, 71032 \
Boeblingen, Germany\
     \
     \
     \
MarkStulle@\cb1 \cf7 aol.c\cb1 \cf14 om on 14.04.\cb1 \cf7 99 05\cb1 \cf7 :24:4\cb1 \cf14 3\
    \cb1 \cf7  \
Pl\cb1 \cf14 ease respond to \cb1 \cf7 MarkS\cb1 \cf14 [EMAIL PROTECTED]\
     \
To\cb1 \cf7 :   [EMAIL PROTECTED]\
cc:   [EMAIL PROTECTED] (bcc: Thomas Schaeck\cb1 \cf7 /Germany/IBM) \
Subject:  Re: [OCF] Card Terminal behavi\cb1 \cf7 our when SW1=0x6c\
     \
     \
     \
    \cb1 \cf7  \
     \
     \
In eine\cb1 \cf7 r eMa\cb1 \cf7 il vo\cb1 \cf7 m 13.04.99 17:15:10 MEZ, schreiben Sie:\
     \
<< Thema:  [OCF] Card Termin\cb1 \cf7 al behaviour when SW1=0x6c >>\
     \
     \
Hi,\
     \
in my eyes, the t\cb1 \cf7 ransport layer of the CardTerminal implementation \
- i.e. the clases tha\cb1 \cf7 t manage the exchange of APDUs according to an\
ISO-7816 protocol T=x - \cb1 \cf7 is responsible for handling the '0x6C 0xLe' case, \
where 0xLe g\cb1 \cf7 ives \cb1 \cf7 the correct number of bytes generated by a card command.\
     \
A CardSer\cb1 \cf7 vivce (running somewhere between OSI presentation and application \
l\cb1 \cf7 ayer) should be isolated as much as possible from protocol specific tasks.\cb1 \cf7  \
In general, it must work with every card 'understanding' the command \cb1 \cf7 APDUs\cb1 \cf7  \
transmitted, whether speaking T=0 or T=1.\
     \
Best regards.\
     \
\cb1 \cf7 ---------------------------------------------------------------------- \
Mar\cb1 \cf7 kus A. Stulle - Schlei\'e1heimer Stra\'e1e 70          [EMAIL PROTECTED]\
     \cb1 \cf7               D-80797 Muenchen - Germany\
                   Tel./FAX: \cb1 \cf7 (+89) 520 59 001, GSM: (+171) 213 - 70 84 \
                   GSM-FAX:\cb1 \cf7  (+171) 214 - 84 74\cb1 \cf7 , GSM\cb1 \cf7 -Data: - 86 74 \
                   AOL-FAX: (+40) 36 03 - 02 00 16\
   \cb1 \cf7  'Java Madman'  Current Java version is:  Java 2\
                   A\cb1 \cf7 vailable at:  http://java.sun.com/products/jdk/1.2\
-----------+===+-------\cb1 \cf7 -----------------------------------------------\
  \cb1 \cf7  > pr\cb1 \cf7 ess |ESC| key\cb1 \cf7  once\cb1 \cf7  to ab\cb1 \cf7 ort p\cb1 \cf7 rogram or twic\cb1 \cf7 e to continue! <\
-----------+===+---------------------\cb1 \cf7 ---------------------------------\
     \
Visit the OpenCard Framewor\cb1 \cf7 k's WWW site at h\cb1 \cf7 ttp://www.opencard.org/ for \
access to documentation, code, presentatio\cb1 \cf7 ns, and OCF announc\cb1 \cf7 ement\cb1 \cf7 s. \
\cb1 \cf7 -----\cb1 \cf7 ---------------------------------------\cb1 \cf7 -----\cb1 \cf7 -------------------------- \
--\
To \cb1 \cf7 unsub\cb1 \cf7 scribe from the OCF Mailing\cb1 \cf7  list, send a mail to \
"[EMAIL PROTECTED]" with the wo\cb1 \cf7 rd "unsubscribe" in the BODY of \
the\
message.\
     \
 \cb1 \cf7     \
\cb1 \cf7 o abo\cb1 \cf7 rt pr\cb1 \cf7 ogram\cb1 \cf7  or t\cb1 \cf7 wice \cb1 \cf7 to continue! <\
-----------+===+------------------------\cb1 \cf7 -----\cb1 \cf7 -------------------------\
     \
Visit the OpenCard Fram\cb1 \cf7 ework\cb1 \cf7 's WW\cb1 \cf7 W s\cb1 \cf7 ite a\cb1 \cf7 t http://www.opencard.org/ for \
access to documentation, code, pre\cb1 \cf7 sentations, and OCF announcements. \
------------------------------\cb1 \cf7 --------------------------------------------- \
--\
To unsubscribe from th\cb1 \cf7 e OCF Mailing list, send a mail to \
"[EMAIL PROTECTED]" with\cb1 \cf7  the \cb1 \cf7 word "unsubscribe" in the BODY of \
the\
message.\
     \
     \
o abort pr\cb1 \cf7 ogram or twice to continue! <\
-----------+===+-----------------------------\cb1 \cf7 -------------------------\
     \
Visit the OpenCard Framework's WWW site a\cb1 \cf7 t http://www.opencard.org/ for \
access t\cb1 \cf7 o doc\cb1 \cf7 umentation, c\cb1 \cf7 ode, \cb1 \cf7 presentations, and OCF announcements. \
-------------------------------\cb1 \cf7 -------------------------------------------- \
--\
To unsubscribe from\cb1 \cf7  the OCF Mailing li\cb1 \cf7 st, send a mail to \
"open\cb1 \cf7 card-request@openca\cb1 \cf7 rd.org" with the word "unsubscribe" in the BODY of \
\cb1 \cf7 the\
message.\
    \cb1 \cf7  \
     \
o abort program or twice to continue!\cb1 \cf7  <\
-----------+===\cb1 \cf7 +------------------------------\cb1 \cf7 ----\cb1 \cf7 --------------------\
     \
Visit the OpenCard\cb1 \cf7  Framework's WWW si\cb1 \cf7 te at http://www.opencard.org/ for \
access to docu\cb1 \cf7 mentation, code, presentations, and OCF announcements. \
-------------\cb1 \cf7 ---\cb1 \cf7 ----------------------------------------------------------- \
-\cb1 \cf7 -\
To unsubscribe from the OCF Mailing list, send a mail to \
"opencar\cb1 \cf7 d-req\cb1 \cf7 [EMAIL PROTECTED]" with the word "unsubscribe" in the BODY of \
the\
mes\cb1 \cf7 sage.\
     \
     \
o abort program or twice to continue! <\
-------\cb1 \cf7 ----+===+------------------------------------------------------\
     \
Visi\cb1 \cf7 t \cb1 \cf7 the OpenCard Framework's WWW site at http://www.opencard.\cb1 \cf7 org/ for \
access to documentation, code, presentations, and OCF announceme\cb1 \cf7 nts\cb1 \cf7 . \
----\cb1 \cf7 -----\cb1 \cf7 -----\par }}m

Reply via email to