无法从Javacard发送128字节数据,但在使用sendBytesLong()时可以发送127字节作为对APDU命令的响应

时间:2017-04-06 09:37:38

标签: applet javacard apdu

使用apdu.sendBytesLong()函数以APDU命令的形式从javacard发送数据时,我能够发送127字节数据作为响应,但128字节数据给出错误代码6f00(SW_UNKNOWN)。 为什么会发生这种情况,任何人都可以在不将数据分成两个apdu命令的情况下提出建议。

le = apdu.setOutgoing();
            if(le != 128)
                ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
apdu.setOutgoingLength((byte)le);
apdu.sendBytesLong(mod_PkAIKR,(short)0, le);

其中mod_PkAIKR是一个128字节的字节数组。

谢谢

1 个答案:

答案 0 :(得分:0)

更改 apdu.setOutgoingLength((byte)le);apdu.setOutgoingLength(le);

  1. api apdu.setOutgoing()的参数类型很短,不需要转换类型。
  2. 如果将 le 转换为 byte ,则参数值将为nagative。 (byte) 128的值为-128