This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3220S-LAUNCHXL:重复尝试对同一缓冲区签名会导致错误

Guru**** 2534020 points
Other Parts Discussed in Thread: CC3220S

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1097369/cc3220s-launchxl-repeated-attempts-to-sign-the-same-buffer-cause-error

部件号: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代码中的某些打印代码,并在每次迭代时重新初始化所有缓冲区。 有什么想法?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Alex:

    您正在使用哪个SDK版本?