2015-08-24 142 views
0

我在Arduino上实施OSDP协议的加密部分时遇到了问题。 http://www.siaonline.org/SiteAssets/SIAStore/Standards/OSDP_V2%201_5_2014.pdf实施OSDP加密问题

我已经成功完成了谈判部分并通过解密数据并与明文进行比较来验证RMAC-I响应。我卡在的部分是数据包的加密。根据规范,我使用RMAC-I响应作为aes128 CBC的ICV,并使用S-MAC2密钥对数据包进行加密。
我的POLL分组(十六进制)如下:
53 01 0E 00 0C 02 15 60
这被填充
53 01 0E 00 0C 02 15 60 80 00 00 00 00 00 00 00
这得到用ICV加密,然后用S-MAC2加密作为密钥。
第一个4个字节的结果被存储在该数据包并发送
53 01 0E 00 0C 02 15 60 91 86 B9 3D 4A 29
不幸的是读者拒绝一个NAK 06
我是轮询指令假设我的MAC值没有被正确计算,因为我已经将我的数据包与HID DTK工具进行了比较(显然MAC和CRC值是唯一的区别)。有人可以验证我的过程吗?

回答

0

似乎我的过程是正确的,但被实施(关闭一个错误)。