external/mbedtls/library/ssl_tls.c:1040:74: error: argument 2 of type ‘unsigned char[32]’ with mismatched bound [-Werror=array-parameter=] 1040 | void ssl_calc_verify_tls_sha256( mbedtls_ssl_context *ssl, unsigned char hash[32] ) | ~~~~~~~~~~~~~~^~~~~~~~ external/mbedtls/library/ssl_tls.c:473:63: note: previously declared as ‘unsigned char *’ 473 | static void ssl_calc_verify_tls_sha256( mbedtls_ssl_context *,unsigned char * ); | ^~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make: *** [Makefile:42: output/./external/mbedtls/library/ssl_tls.o] Error 1
时间: 2023-10-22 14:07:57 浏览: 76
这个错误意味着你在 `ssl_calc_verify_tls_sha256` 函数的两个声明中使用了不同的类型定义。在第一个声明中,`hash` 被定义为一个长度为 32 的 `unsigned char` 数组,而在第二个声明中,`hash` 被定义为一个 `unsigned char` 指针。这两个类型不兼容,因此编译器会报错。
为了解决这个问题,你需要确保在所有的函数声明和定义中使用相同的类型定义。如果你要修改函数参数的类型,你需要确保在所有的函数调用中,传递正确的参数类型。你可以尝试修改 `ssl_calc_verify_tls_sha256` 函数的第二个声明,使其与第一个声明匹配,或者修改所有调用该函数的地方,使其与第二个声明匹配。
相关问题
2751075392:error:141970DF:SSL routines:tls_construct_cke_psk_preamble:psk identity not fount:../openssl-1.1.1s/ssl/statem_clnt.c:2919: 2751075392:error:140E0197:SSL routines:SSL_shutdown:shutdown while in init:../openssl-1.1.1s/ssl/ssl_lib.c:2111:
这似乎是一个与 SSL/TLS 握手过程相关的错误。错误信息中提到了缺少预共享密钥身份标识(PSK identity not found),这可能意味着客户端没有正确地配置或提供必要的 PSK 身份标识,导致 SSL/TLS 握手失败。
您可以检查客户端的 SSL/TLS 配置和 PSK 身份标识设置,确保它们正确无误。您还可以查看服务器端的 SSL/TLS 日志,以了解更多有关握手失败的信息。如果问题仍然存在,请尝试使用其他 SSL/TLS 库或升级您当前使用的库版本。
怎么mbedtls_config.h 中定义 MBEDTLS_SSL_RENEGOTIATION 为 MBEDTLS_SSL_RENEGOTIATION_DISABLED
要在 mbedtls_config.h 中将 `MBEDTLS_SSL_RENEGOTIATION` 定义为 `MBEDTLS_SSL_RENEGOTIATION_DISABLED`,请按照以下步骤操作:
1. 打开 mbedtls_config.h 文件,该文件通常位于 mbedtls 库的 include/mbedtls 目录下。
2. 在文件中搜索 `MBEDTLS_SSL_RENEGOTIATION`。
3. 将找到的相关定义行的值更改为 `MBEDTLS_SSL_RENEGOTIATION_DISABLED`。
4. 保存文件并重新编译你的应用程序。
这样做将禁用 mbedtls 库中的重新协商功能。请注意,根据你使用的 mbedtls 版本,该选项的定义可能会略有不同,但通常以 `MBEDTLS_SSL_RENEGOTIATION` 开头。
请确保在修改 mbedtls_config.h 文件之前,仔细阅读相关文档并充分了解对系统的影响。同时,进行修改时要注意备份原始文件以便恢复。