在响应APDU - Java Card中发送签名数据

时间:2015-05-08 14:46:27

标签: digital-signature smartcard javacard apdu ecdsa

我想在我的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);

1 个答案:

答案 0 :(得分:2)

可能signLen大于Ne值(在JavaCard规范中错误地称为Le)。顺便说一句,您也滥用Le值来表示(short) MESSAGE.length。 Ne表示预期要发送回的最大字节数。