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.

[参考译文] LAUNCHCC3235MOD:通过证书刷新器件进行 TLS1.3身份验证。

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1246824/launchcc3235mod-tls1-3-authentication-by-certificate-crushes-device

器件型号:LAUNCHCC3235MOD
主题中讨论的其他器件:CC3235SF

我使用的原型基于 mqtt_client_over_tls_1_3_CC3235SF_LAUNCHXL_tirtos7_ticlang  添加了示例。 所用 SDK 为  simplelink_cc32xx_sdk_7_10_00_13 。 原型设计使用了 https://test.mosquitto.org/ 公有代理。  成功获得 TLS 1.3至 端口上的端口公共代理的连接 8883 : mqtt,加密,未经身份验证。 在下一步中、我尝试通过 PMBus 适配器 8884 :需要 mqtt,加密,客户端证书。 从而开始出现问题。 在调试过程中发现连接失败," 0x7780 SSL -收到来自我们的对等器件的致命警报消息 "错误代码。 启用跟踪给了我一个理由:警报消息是 116 。 意味着服务器等待证书用完。 正在尝试找出、为什么证书不发送到服务器、Rebuilder mbedtls  来获取调试符号并找到、该库没有设置自己的证书。 发现、证书应设置为  mbedtls_ssl_conf_own_cert (&pTlssock->ssl.conf、&pTlssock->srvcert、&pTlssock->pkey)  停止。 设置证书后,设备将被粉碎。 出现以下错误:  

Cortex_M4_0: Can't Run Target CPU: (Error -1268 @ 0x1090001) Device is locked up in Hard Fault or in NMI. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 9.11.0.00128) 
Cortex_M4_0: Can't Run Target CPU: (Error -1268 @ 0x1090001) Device is locked up in Hard Fault or in NMI. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 9.11.0.00128) 

其他一些调试会产生以下故障点:  

这是以下函数的第八次调用:  

psa_status_t mbedtls_psa_external_get_random( mbedtls_psa_external_random_context_t *context,
                                                uint8_t *output,
                                                size_t output_size,
                                                size_t *output_length)
{
    int status;
    unsigned short length;
    length = (unsigned short)output_size;
    status = sl_NetUtilGet(SL_NETUTIL_TRUE_RANDOM,0,output,&(length));
    if (status==0)
    {
        *output_length = output_size;
    }
    return status;
}

在这里、我们可以找到失败前的实际调用堆栈:  
  
和内核寄存器状态以及:  


应如何执行正确的已认证 TLS1.3连接?  

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

    您是否尝试过 使堆栈大小递增?

    还说明了您究竟如何添加  mbedtls_ssl_conf_own_cert 呼叫? (代码中的位置?)

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

    您好、Kobi。  

    只是在您的问题后再次尝试。

    堆栈已在中更改  main_tirtos.c 文件:  

     /* Stack size in bytes */
    -#define THREADSTACKSIZE    (2*4096)
    +#define THREADSTACKSIZE    (3*4096)

    问题似乎得到了解决。 非常感谢。  

    正如我所见、目前已针对所有 TI RTOS 线程增加了堆栈。 也许你能提示一下、如果可能的话、应该增加哪个线程堆栈?  

    非常感谢、  

    Aliaksandr。