临时记录, 替换最新版的mbedtls

发布时间 2024-01-12 20:09:02作者: 广源时代

 

由于老版本的mbedtls对于一些ssl 的服务器是连接不上的, 所以需要替换最新的版本

下面是记录替换过程

https://github.com/Mbed-TLS/mbedtls

 

 

 

 

 

下载最新版的mbedtls源码, 然后把下面两个文件拷贝到原先的工程里面,替换掉原先的文件

 

 

编译后会有很多错误, 这种错误应该是编译器不支持,  那就打开C99模式

 

 

 

 

 

发现不能这样子, 需要先把原先的删除

 

 

 

 

 再拷贝过去

 

 

 

然后再建一个Mbedtls 分组

 

把 Library 里面的文件全部添加到里面

 

 

 

 

 

 

把下面的改下

 

mbedtls_config

 

 

 

 

 

把mbedtls_config里面所有的#define全部屏蔽

咱以后用到什么功能再打开什么功能.

需要屏蔽的很多,自己慢慢的屏蔽!

 

屏蔽完编译一下工程, 改下

 

 

 

 

 

 

mbedtls_config.h打开以下宏

#define MBEDTLS_HAVE_ASM

#define MBEDTLS_NO_UDBL_DIVISION

#define MBEDTLS_HAVE_TIME

#define MBEDTLS_ENTROPY_HARDWARE_ALT

#define MBEDTLS_AES_ROM_TABLES

#define MBEDTLS_CIPHER_MODE_CBC

#define MBEDTLS_KEY_EXCHANGE_RSA_ENABLED

#define MBEDTLS_NO_PLATFORM_ENTROPY

#define MBEDTLS_PKCS1_V15

#define MBEDTLS_SSL_PROTO_TLS1_2

#define MBEDTLS_AES_C

#define MBEDTLS_ASN1_PARSE_C

#define MBEDTLS_ASN1_WRITE_C

#define MBEDTLS_BIGNUM_C

#define MBEDTLS_CIPHER_C

#define MBEDTLS_CTR_DRBG_C

#define MBEDTLS_ENTROPY_C

#define MBEDTLS_GCM_C

#define MBEDTLS_MD_C

#define MBEDTLS_MD5_C

#define MBEDTLS_OID_C

#define MBEDTLS_PK_C

#define MBEDTLS_PK_PARSE_C

#define MBEDTLS_PLATFORM_C

#define MBEDTLS_RSA_C

#define MBEDTLS_SHA1_C

#define MBEDTLS_SHA256_C

#define MBEDTLS_SHA512_C

#define MBEDTLS_SSL_CLI_C

#define MBEDTLS_SSL_TLS_C

#define MBEDTLS_X509_USE_C

#define MBEDTLS_X509_CRT_PARSE_C

 

 

 

然后还会报一个没有提供时间的函数

 

 

 

程序里面开一个1ms的定时器, 然后定义一个uint64_t的变量,放到定时器里面累加

 

然后把报错的地方改下

mbedtls_ms_time_t mbedtls_ms_time(void)
{
mbedtls_ms_time_t current_ms;

current_ms = sys_tick_get_timer();

return current_ms;
}

 

 

编译测试, 以前访问不到的ssl现在就可以了