请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F28377D Thread 中讨论的其他器件:C2000WARE
工具与软件:
尊敬的 E2E:
在 C2000Ware_5_03_00_00中的 AES CMAC 实现中如何使用填充、我感觉有点困惑。 我似乎与 RFC4493中发布的 AES-CMAC 测试向量1或3不匹配。 这两个测试向量的输入数据都不是128位的倍数。 我的理解是、AES-CMAC 的填充在 RFC4493中被指定为128位边界的0x80..00。 我如何修改以下内容以匹配测试向量情况1?
TEST(TEST_aes, TEST_rfc4493_case1) { uint16_t key[16U] = { 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c }; uint16_t msg[16] = { 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; uint16_t exp_cmac[16] = { 0xbb, 0x1d, 0x69, 0x29, 0xe9, 0x59, 0x37, 0x28, 0x7f, 0xa3, 0x7d, 0x12, 0x9b, 0x75, 0x67, 0x46 }; uint16_t *cmac = AES_performCMAC(msg, 1U, key, AES_128); for(uint16_t idx = 0; idx < 16U; idx++) { TEST_ASSERT_EQUAL(exp_cmac[idx], cmac[idx]); } }
谢谢!
挪亚