临时记录, 替换最新版的mbedtls
由于老版本的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现在就可以了