您好!
我在 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)); }
您是否知道硬件启动后仅正确计算一次标签的原因? 此致