Follow this url:www.linuxnet.com

The $ is 'bit and', I can't type it on my phone.

On 7/2/10, Sébastien Lorquet <[email protected]> wrote:
> Not sure, but I'd say no. Just compare INS and the procedure byte, nothing
> else. What does "$" stands for?
>
> On Fri, Jul 2, 2010 at 2:55 PM, Wayne <[email protected]> wrote:
>
>> Hi sebastien,
>> I found a linux driver with source for a cowitoco reader device. What
>> it did is the same to your way.
>> And I found another problem, it judge the ACK PB in this way:
>> if ( (Response[0] $ 0x0E ) == ( INS $ 0x0E ))...
>> Is it corect?
>>
>> BR
>> Wayne
>>
>> On 7/2/10, Sébastien Lorquet <[email protected]> wrote:
>> > Hi,
>> >
>> > For an outgoing command, when data is to be sent from the card to the
>> host,
>> > the card answers a ACK byte (equals to INS), then the actual data bytes.
>> >
>> > So after sending the 5 bytes header CLA INS P1 P2 P3, you just have to
>> read
>> > one byte from the card: if it is 0x60, then wait. If it the INS you
>> > sent,
>> > then read the GET RESPONSE data. Else, that's a SW1 (6X,9X) or an error.
>> >
>> > A consequence is that INS=$6x and INS=$9x are forbidden.
>> >
>> > At least that's my understanding. Anyone, please correct me if I'm
>> > wrong.
>> >
>> > Regards
>> > Sebastien
>> >
>> > PS: quoting ISO7816-3:
>> >
>> > After transmitting the header as a string of five characters, the
>> interface
>> > device shall wait for a character
>> > conveying a procedure byte. There are three types of procedure bytes,
>> > see
>> > Table 11.
>> >
>> > 􀁿 If the value is '60', it is a NULL byte. It requests no action on
>> > data
>> > transfer. The interface device shall wait
>> > for a character conveying a procedure byte.
>> >
>> > 􀁿 If the value is '6X' or '9X', except for '60', it is a SW1 byte. It
>> > requests no action on data transfer. The
>> > interface device shall wait for a character conveying a SW2 byte. There
>> is
>> > no restriction on SW2 value.
>> > NOTE ISO/IEC 7816-4 enforces '60' as invalid value of SW1, as well as
>> > any
>> > value different from '9X' and '6X'.
>> >
>> > 􀁿 If the value is the value of INS, apart from the values '6X' and
>> > '9X',
>> it
>> > is an ACK byte. All remaining data
>> > bytes if any bytes remain, denoted Di to Dn, shall be transferred
>> > subsequently. Then the interface device
>> > shall wait for a character conveying a procedure byte.
>> >
>> > NOTA: this is the case you're requesting. It implies that you MUST know
>> the
>> > direction of the transfer, incoming or outgoing.
>> >
>> > 􀁿 If the value is the exclusive-or of 'FF' with the value of INS, apart
>> > from the values '6X' and '9X', it is an
>> > ACK byte. Only the next data byte if it exists, denoted Di, shall be
>> > transferred. Then the interface device
>> > shall wait for a character conveying a procedure byte.
>> >
>> > NOTA: AFAIK this is not used / supported in modern cards.
>> >
>> > 􀁿 Any other value is invalid.
>> >
>> >
>> > On Fri, Jul 2, 2010 at 4:31 AM, Wayne <[email protected]> wrote:
>> >
>> >> Hi there,
>> >> Sorry to disturb you.
>> >>
>> >> I'm comfused to a problem in the ISO7816-3, as regard to T=0 protocol.
>> >> It said, a card can response a "60" as NULL procedure byte to extend
>> >> waiting time.
>> >> And when the should have valid data to send back, such as response to
>> "GET
>> >> RESPONSE" command,
>> >> how the interface distinguished the NULL PB form narmal data in the
>> >> response, which is followed by SW1,SW2.
>> >>
>> >> Any comment is appreciated.
>> >> Thanks.
>> >>
>> >> B.R.
>> >> Wayne
>> >>
>> >> _______________________________________________
>> >> Muscle mailing list
>> >> [email protected]
>> >> http://lists.drizzle.com/mailman/listinfo/muscle
>> >>
>> >>
>> >
>>
>> _______________________________________________
>> Muscle mailing list
>> [email protected]
>> http://lists.drizzle.com/mailman/listinfo/muscle
>>
>

_______________________________________________
Muscle mailing list
[email protected]
http://lists.drizzle.com/mailman/listinfo/muscle

Reply via email to