Page 1 of 1

How to know Le in APDU command ?

Posted: Mon Sep 04, 2017 3:53 am
by Anenl
We can use apdu.setIncomeandReceive to get the byte number we received, and compared with Lc to make sure if the APDU command is incorrect or correct.If I send Le in my APDU, it must be one byte of Data field.

And I found there is not a ISO7816,OFFSET_LE, so how can the card get the Le?
In java card API specification I found

Code: Select all

short le = apdu.setOutgoing();

How can this command get the Le ?

Re: How to know Le in APDU command ?

Posted: Tue Sep 05, 2017 5:36 am
by mabel
It is managed by the CAD. In case of T=1, you can get the Le value directly. even there you can't be sure, because it also could be Lc.

But in case of T=0 it is different, as the CAD sends only the header at the beginning. Then you need to evaluate Lc and optionally get the data with setIncomingAndReceive(). The Le is kept in the CAD and can be retrieved only via setOutgoing().