使用蓝牙设备接入HarmonyOS智慧生活,设备注册后,必须使用密钥来对通信进行加解密。
Mbed TLS简介
相比互联网的openSSL,物联网的嵌入式设备适合小巧灵活的MbedTLS,曾用名PolarSSL,可以根据需求进行配置,降低对硬件资源的消耗。
mbedtls是一款采用Apache 2.0许可证协议开源软件加密库,使用标准C语言编写;独立的模块设计,降低模块之间的耦合度。
Mbed TLS官网
mbedtls官方名称为Mbed TLS,如果网上搜不到相关资源,就用“Mbed TLS”来做关键词来搜索,毕竟对搜索引擎来说“Mbed TLS”和“mbedtls”搜索的是不同的东西。
下面介绍如何简单的植入和使用mbedtls, 希望在不同开发平台开发的同学可以找到启发。
获取MbedTLS源码
这是官方的下载地址 https://github.com/Mbed-TLS/mbedtls
打不开的原因各位同学都懂的。
本人使用的是2.24.0版本



解压后的目录如下, 我们只使用 configs,include 和 library 这三个目录下的文件

植入步骤
1.导入文件
- 新建目录
mbedtls - 把
include /mbedtls目录下的所有文件复制到新建目录mbedtls下 - 把
include/psa整个目录和下的文件复制到新建目录mbedtls下 - 把
library目录下的所有文件复制到新建目录mbedtls下 - 删除
config.h文件多余的内容,最终代码如下

2.根据项目所需而使用相应的模块
不同品牌/平台和芯片型号或者编译器不一定对所有的mbedtls算法都支持,有些情况可能导致编译的失败,而当你又找不到原因的时候,你内心会崩溃的,所以重要的事情说三遍:
只编译项目所需的模块
只编译项目所需的模块
只编译项目所需的模块
华为提供的实例代码是这样的

于是我们就全局搜索mbedtls_md_context_t这个类型是在哪个模块定义的,结果显示是在md.h文件中定义的,因此必须引入这个文件。以此类推,搜索要使用到的类型和函数,结果显示在md.h和pkcs5.h这两个文件中定义的。
测试代码如下
/**
* 使用
* #define size_t TLK_SIZE_T
* #undef size_t
* 解决 size_t重定义的冲突
*/
#define size_t TLK_SIZE_T
#include "mbedtls/md.h"
#

最低0.47元/天 解锁文章
499

被折叠的 条评论
为什么被折叠?



