Only send response apdu if sw != 0.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
parent
2aff75a3ec
commit
c5095dfec6
1 changed files with 15 additions and 13 deletions
28
src/apdu.c
28
src/apdu.c
|
|
@ -169,18 +169,20 @@ void apdu_finish() {
|
|||
}
|
||||
|
||||
size_t apdu_next() {
|
||||
if (apdu.rlen <= apdu.ne)
|
||||
return apdu.rlen + 2;
|
||||
else {
|
||||
rdata_gr = apdu.rdata+apdu.ne;
|
||||
rdata_bk = *(uint16_t *)rdata_gr;
|
||||
rdata_gr[0] = 0x61;
|
||||
if (apdu.rlen - apdu.ne >= 256)
|
||||
rdata_gr[1] = 0;
|
||||
else
|
||||
rdata_gr[1] = apdu.rlen - apdu.ne;
|
||||
apdu.rlen -= apdu.ne;
|
||||
if (apdu.sw != 0) {
|
||||
if (apdu.rlen <= apdu.ne)
|
||||
return apdu.rlen + 2;
|
||||
else {
|
||||
rdata_gr = apdu.rdata+apdu.ne;
|
||||
rdata_bk = *(uint16_t *)rdata_gr;
|
||||
rdata_gr[0] = 0x61;
|
||||
if (apdu.rlen - apdu.ne >= 256)
|
||||
rdata_gr[1] = 0;
|
||||
else
|
||||
rdata_gr[1] = apdu.rlen - apdu.ne;
|
||||
apdu.rlen -= apdu.ne;
|
||||
}
|
||||
return apdu.ne + 2;
|
||||
}
|
||||
return apdu.ne + 2;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue