java 卡 2.2.1 中的 Setoutgoinglength 出现未知错误 (6c 15)
Unknown Error (6c 15) with Setoutgoinglength in java card 2.2.1
我为 java 卡 2.2.1 编写了代码,并在 JCIDE 上对其进行了测试。
我在方法 Setoutgoinglength()
中遇到错误
public void getoutput(APDU apdu)
{
byte [] buffer = apdu.getBuffer();
byte hello[] = {'H','E','L','L','O',' ','W','O','R','L','D',' ', 'J','A','V','A',' ','C','A','R','D'};
short le = apdu.setOutgoing();
short totalBytes = (short) hello.length;
Util.arrayCopyNonAtomic(hello, (short)0, buffer, (short)0, (short)totalBytes);
apdu.setOutgoingLength(totalBytes);
apdu.sendBytes((short) 0, (short) hello.length);}
6CXX
表示你的Le不等于正确的响应数据长度(XX等于正确的响应数据长度)。 6C15
具体表示要使用的正确Le应该是0x15
.
发生的事情是你的Le字段是0x00
(它实际上被卡解释为十进制形式的256)但是你使用了totalBytes
,它的值为0x15
, 作为 apdu.setOutgoingLength()
的参数,它不等于 256.
要发送的正确 APDU 是 00 40 00 00 15
我为 java 卡 2.2.1 编写了代码,并在 JCIDE 上对其进行了测试。 我在方法 Setoutgoinglength()
中遇到错误 public void getoutput(APDU apdu)
{
byte [] buffer = apdu.getBuffer();
byte hello[] = {'H','E','L','L','O',' ','W','O','R','L','D',' ', 'J','A','V','A',' ','C','A','R','D'};
short le = apdu.setOutgoing();
short totalBytes = (short) hello.length;
Util.arrayCopyNonAtomic(hello, (short)0, buffer, (short)0, (short)totalBytes);
apdu.setOutgoingLength(totalBytes);
apdu.sendBytes((short) 0, (short) hello.length);}
6CXX
表示你的Le不等于正确的响应数据长度(XX等于正确的响应数据长度)。 6C15
具体表示要使用的正确Le应该是0x15
.
发生的事情是你的Le字段是0x00
(它实际上被卡解释为十进制形式的256)但是你使用了totalBytes
,它的值为0x15
, 作为 apdu.setOutgoingLength()
的参数,它不等于 256.
要发送的正确 APDU 是 00 40 00 00 15