2015-08-24 342 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

似乎我的過程是正確的,但被實施(關閉一個錯誤)。