我将一个没有CMAC (CLA字节= 0x80)的APDU发送到applet。我用的是SCP02 i55。我需要用SecureChannel.encryptData()函数加密数据。我不想手动加密它,我需要Global加密数据,在我用正确的会话密钥解密数据之后(我肯定它们是计算良好的)。
我使用以下代码加密APDU缓冲区。
byte buffer = apdu.getBuffer();
buffer[0] = 20;
short lc = chan.encryptData(buffer, (short) 0, (short) 1);
apdu.setOutgoingAndSend((short) 0, lc);这会引发一个安全状态不满意异常(0x6982),其中我期望使用加密的20响应APDU。
我做错什么了?
发布于 2012-10-03 21:46:46
您忘记包装状态字节。从标准:
applet负责在响应数据的末尾追加预期的状态字节,以便通过安全消息传递来保护它们;
https://stackoverflow.com/questions/12139436
复制相似问题