token: send Ne only on last in a chain
This commit is contained in:
@@ -221,14 +221,18 @@ public class OpenPgpCommandApduFactory {
|
|||||||
|
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
byte[] data = apdu.getData();
|
byte[] data = apdu.getData();
|
||||||
int ne = Math.min(apdu.getNe(), MAX_APDU_NE);
|
|
||||||
while (offset < data.length) {
|
while (offset < data.length) {
|
||||||
int curLen = Math.min(MAX_APDU_NC, data.length - offset);
|
int curLen = Math.min(MAX_APDU_NC, data.length - offset);
|
||||||
boolean last = offset + curLen >= data.length;
|
boolean last = offset + curLen >= data.length;
|
||||||
int cla = apdu.getCLA() + (last ? 0 : MASK_CLA_CHAINING);
|
int cla = apdu.getCLA() + (last ? 0 : MASK_CLA_CHAINING);
|
||||||
|
|
||||||
CommandApdu cmd =
|
CommandApdu cmd;
|
||||||
CommandApdu.create(cla, apdu.getINS(), apdu.getP1(), apdu.getP2(), data, offset, curLen, ne);
|
if (last) {
|
||||||
|
int ne = Math.min(apdu.getNe(), MAX_APDU_NE);
|
||||||
|
cmd = CommandApdu.create(cla, apdu.getINS(), apdu.getP1(), apdu.getP2(), data, offset, curLen, ne);
|
||||||
|
} else {
|
||||||
|
cmd = CommandApdu.create(cla, apdu.getINS(), apdu.getP1(), apdu.getP2(), data, offset, curLen);
|
||||||
|
}
|
||||||
result.add(cmd);
|
result.add(cmd);
|
||||||
|
|
||||||
offset += curLen;
|
offset += curLen;
|
||||||
|
|||||||
Reference in New Issue
Block a user