Thread 中讨论的其他器件:CC3200
您好!
我尝试使用加密函数/API、例如:
CryptoCC32XX_init、CryptoCC32XX_open、CryptoCC32XX_encrypt, CryptoCC32XX_decrypt
用于 AES 加密。
起初、CryptoCC32XX_encrypt/decrypt 调用失败。
在使用调试时、结果发现文件"CryptoCC32XX.c"的函数"CryptoCC32XX_aesProcess"中有一个循环。
"CryptoCC32XX_context_READY_MAX_COUNTER"的值为1000。
/*等待上下文输入标志、该标志将在中断处理程序中设置。 *
while ((!g_bAESReadyFlag)&&(计数> 0))
{
计数--;
}
如果(计数= 0)
{
返回加密 CC32XX_STATUS_ERROR;
}
上下文中断未在这些1000次迭代中产生、因此函数返回失败。
我们决定尝试将此循环设置为无限循环(通过注释掉"count --"语句)。
然而、Tera 术语在某种程度上变得没有响应。
我们必须重新启动我们的 PC。
重新启动后、循环变为无限循环使我们能够成功加密。
稍后、我想查看是否可以使用"count"值来检测中断、从而使加密成功、而不是无限循环。 我尝试了100000和10000个循环。 工作正常。 然后、即使值为1000、也会获得上下文、即加密成功。
以下是我的问题:
- PC 重新启动是否可以通过某种方式解决问题? 也就是说、在上述循环中无需更改、只是由于 CCS 和/或 PC 需要重新启动而出现错误行为?
- 此循环的重要性是什么? 为什么我们等待上下文可用、这是什么 AES 上下文?
- 什么/谁/何时提供此上下文? 加密功能需要它做什么?
- 将该环路作为有限环路与无限环路相比、有哪些优缺点?
- 如果我想将其用于发送加密数据、此循环会引入不可预测性。 因为如果此循环失败,加密将失败,并且此失败可能随时发生。 可能会传输未加密的数据。 我如何应对这种不可预测性?
注:
我也观察到以下有关该循环的信息:
CC3200 "AES"示例中有一个相应的函数"AESCLRHT"。
此函数将此循环作为无限循环。 而在 CC3220中、该循环具有有限数量的迭代。
--
此致、
Neeraj Sallh