您好!
我在 AM3359中按照 AM335x ARM Cortex-A8加密附录"技术参考手册"实现了 AES-GCM 解密算法、并在 tivaware_c_serial_2_1_4_178/examples/boards/dk-tm4c129x/AES_GCM_Decrde 中给出的示例。
IM 运行 AES_GCM_Decrypt.c 文件中给定的测试、但未使用 DMA。 解密似乎效果不错、但标签计算仅在关闭和打开 Sitara 后有效一次。 AESTagRead 函数的每两次运行都会返回错误值。
下面是 AESTagRead 函数:
void
AESTagRead(uint32_t ui32Base, uint32_t *pui32TagData)
{
//
// Check the arguments.
//
ASSERT(ui32Base == AES_BASE);
//
// Wait for the output context to be ready.
//
while((AES_CTRL_SVCTXTRDY & (HWREG(ui32Base + AES_O_CTRL))) == 0)
{
}
//
// Read the tag data.
//
pui32TagData[0] = HWREG((ui32Base + AES_O_TAG_OUT_0));
pui32TagData[1] = HWREG((ui32Base + AES_O_TAG_OUT_1));
pui32TagData[2] = HWREG((ui32Base + AES_O_TAG_OUT_2));
pui32TagData[3] = HWREG((ui32Base + AES_O_TAG_OUT_3));
}
您是否知道硬件启动后仅正确计算一次标签的原因? 此致