1、介绍
mbedTLS(前身 PolarSSL)是一个由 ARM 公司开源和维护的 SSL/TLS 算法库。其使用 C 编程语言以最小的编码占用空间实现了 SSL/TLS 功能及各种加密算法,易于理解、使用、集成和扩展,方便开发人员轻松地在嵌入式产品中使用 SSL/TLS 功能。
该 mbedtls 软件包是 RT-Thread 基于 ARMmbed/mbedtls 开源库 v2.6.0 版本移植的.
1.1提供功能
mbedTLS** 软件包提供了如下的能力:
- 完整的 SSL v3、TLS v1.0、TLS v1.1 和 TLS v1.2 协议实现
- X.509 证书处理
- 基于 TCP 的 TLS 传输加密
- 基于 UDP 的 DTLS(Datagram TLS)传输加密
- 其它加解密库实现
有关 mbedTLS 的更多信息,请参阅 https://tls.mbed.org。
1.2关键框架图
mbedTLS 软件包提供了一组可以单独使用和编译的加密组件,各组件及其可能的依赖关系如下图所示:
1.3 目录结构
名称 | 说明 |
---|---|
certs | CA 证书存放目录 |
docs | 文档目录 |
mbedtls | ARM mbedtls 源码 |
ports | 移植文件目录 |
samples | 示例文件目录 |
LICENSE | 许可证文件 |
README.md | 软件包使用说明 |
SConscript | RT-Thread 默认的构建脚本 |
1.4 许可证
Apache License Version 2.0 协议许可。
2、获取软件包
在使用的 BSP 目录下,使用 ENV 工具打开 menuconfig 来获取软件包。
- 配置软件包并使能示例
RT-Thread online packages --->
security packages --->
Select Root Certificate ---> # 选择证书文件
[*] mbedtls: An portable and flexible SSL/TLS library --- # 打开 mbedtls 软件包
[*] Store the AES tables in ROM # 将 AES 表存储在 ROM 中,优化内存占用
(2) Maximum window size used # 用于点乘的最大“窗口”大小(2-7,该值越小内存占用也越小)
(3584) Maxium fragment length in bytes # 配置数据帧大小(0x7200 错误可尝试增加该大小)
[*] Enable a mbedtls client example # 开启 mbedtls 测试例程
[ ] Enable Debug log output # 开启调试 log 输出
version (latest) ---> # 选择软件包版本,默认为最新版本
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 选择证书文件
RT-Thread online packages --->
security packages --->
[*] mbedtls: An portable and flexible SSL/TLS library --- # 打开 mbedtls 软件包
Select Root Certificate ---> # 选择证书文件
[ ] Using all default CA(Use preset CA certificates. Take up more memory)
[ ] Using user CA(copy your Root CA file to mbedtls package "certs" directory)
[*] Using Digital Signature Trust Root CA # 测试例程需要使用的证书
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- `Using all default CA` 配置选项会将 `certs/default` 目录下的所有预置证书加入编译,将占用很大的内存
- `Using user CA` 配置选项允许用户将自己需要的证书文件加入编译,需要用户将证书文件拷贝到 `certs` 根目录
- 更多使用说明请参阅 [软件包详细介绍](docs/introduction.md)
- 1
- 2
- 3
- 使用
pkgs --update
命令下载软件包
3、参考资料
- mbedTLS官方网站:https://tls.mbed.org/
- ARMmbed GitHub:[mbedtls