我想在我的Java卡上签名一些数据(MESSAGE字节数组),然后在响应APDU中返回签名。我没有行 apdu.sendBytes(BAS,sSignLen),我的代码工作正常(或至少我认为它会返回9000),但当我取消注释它时,我得到一个未知错误( 0xC000002B(未知错误。))。
当我尝试在响应APDU中发送其他数据时,它可以正常运行。
EXPOSE
这是我的代码。我做错了什么或错过了什么?谢谢!
apdu.setIncomingAndReceive();
Util.arrayCopyNonAtomic(MESSAGE, (short) 0, buffer, (short) 0, (short) MESSAGE.length);
apdu.setOutgoingAndSend((short) 0, (short) MESSAGE.length);
答案 0 :(得分:2)
可能signLen
大于Ne值(在JavaCard规范中错误地称为Le
)。顺便说一句,您也滥用Le
值来表示(short) MESSAGE.length
。 Ne表示预期要发送回的最大字节数。