请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:CC3220S-LAUNCHXL 主题中讨论的其他部件:CC3220S
我是一名教育工作者,致力于创建基于CC3220S Launchpad的实验室。 学生将对设备内置加密工具的计时进行一些分析。
我注意到,多次尝试对同一缓冲区签名(我们正在这样做是为了获得一致的计时值)通常会在第一次签名后导致错误代码(-2001)。 但是,我还没有看到第一个失败。
我从SimpleLink Academy调用ecdsaVerifyDigest()函数,这里: https://dev.ti.com/tirex/explore/node?node=AEXjVaoT2bagxJxkb2dJ0g__fc2e6sr__LATEST
下面是我用来调用它的代码片段:
uint32_t d1, d2, del;
char testString[512];
uint8_t result[256];
uint16_t resultLen = 256;
int i, j;
for (i = 0; i < 512; i++)
testString[i] = i % 256;
UART_PRINT("Signing\n\r");
ret = 0;
memset(result, 0, 256);
d1 = Timestamp_get32();
for (i = 0; i < num_iterations; i++)
{
ret = ecdsaSignBuffer((uint8_t*) testString, 512, result, &resultLen);
if (ret != 0)
UART_PRINT("Failed on iteration %d with error %d\r\n", i, ret);
UART_PRINT("Signature len: %d\r\n", resultLen);
}
d2 = Timestamp_get32();
到目前为止,我已经尝试了几种方法。 即,增加所有缓冲区的大小,删除crypto_utils代码中的某些打印代码,并在每次迭代时重新初始化所有缓冲区。 有什么想法?