2

我正在向0x80小程序发送没有 CMAC(CLA 字节 =)的 APDU。我正在使用 SCP02 i55。SecureChannel.encryptData()我需要使用该功能加密数据。我不想手动加密它,我需要 Global Platform 加密数据,然后我将使用正确的会话密钥对其进行解密(我确信它们是经过精心计算的)。

我正在使用以下代码来加密 APDU 缓冲区。

byte buffer = apdu.getBuffer();
buffer[0] = 20;
short lc = chan.encryptData(buffer, (short) 0, (short) 1);
apdu.setOutgoingAndSend((short) 0, lc);

这会引发一个安全状态不满足异常 ( 0x6982),我期望响应 APDU 带有加密 20。

我做错了什么?

4

1 回答 1

0

您忘记包装状态字节。从标准:

小程序负责在响应数据的末尾附加预期的状态字节,以便它们受到安全消息的保护;

于 2012-10-03T21:46:46.493 回答