系统概要

mbedtls 也许是最小巧的ssl代码库。高效、便于移植和集成。支持常见的安全算法,如:AES、DES、RSA、ECC、SHA256、MD5、BASE64等等。除此之外还支持公钥证书体系。它提供了具有直观的 API 和可读源代码的 SSL 库。该工具即开即用,可以在大部分系统上直接构建它,也可以手动选择和配置各项功能。

mbedtls 没有core,而是有一些组件构成,我们可以通过配置头文件(include/mbedtls/config.h)加入或排除这些组件。 mbedtls主要包括以下模块:

SSL/TLS communication
TCP/IP communication
Hashing
Random number generation (RNG)
Symmetric cipher (Cipher)
Public Key cryptography (PK)
X.509 public key infrastructure (X.509)

模块之间的依赖关系如下

SSL/TLS 模块需要  hashing, cipher, public key and X.509 可能用到 configured to use the RNG and TCP/IP
Public Key 模块可能用到 RNG

编译&安装

下载源码:

最新的版本可以通过github下载得到

git clone --recursive https://github.com/ARMmbed/mbedtls.git

编译

Mbed TLS releases 版本提供三种编译安装方式,

GNU Make
CMake
Microsoft Visual Studio (Microsoft Visual Studio 2013 or later)

官方推荐使用GNU Make和CMake,我在项目中使用cmake,下面分别介绍一下make和cmake。

make

make 可直接编译
make check 需要运行测试程序
   

cmake

cmake 可以将文件单独编译在一个目录,

mkdir /path/to/build_dir && cd /path/to/build_dir
cmake /path/to/mbedtls_source || 交叉编译 CC=your_cc cmake /path/to/mbedtls_source
make

mbed TLS 概述相关推荐

  1. ESP32+Arduino IDE +Mbed TLS实现生成pem公钥及私钥 并测试加密解密

    由于本人技术有限 以下代码实现ESP32的硬件环境实现RSA算法,为下一步ESP32的加密通信提供可能,ESP32C3参考技术手册,其中含有硬件RSA计算器,但由于没有任何教程文档代码移植我暂时能查到 ...

  2. 【网络编程开发系列】好端端的MQTT-broker重新部署后居然出现TLS握手失败了

    摘要:本文通过一次真实的现网案例复盘,深度还原TLS握手问题的排查思路和方法,希望对广大读者有所启发和帮助. 文章目录 1 写在前面 2 问题描述 2.1 项目背景 2.2 现场问题 3 场景复现 3 ...

  3. HTTPS安全通讯 2. SSL/TLS加密协议

    HTTPS安全通讯 2. SSL/TLS加密协议 一. 概述 1. SSL 2. `OpenSSL` 3. `https` 4. 密钥协商算法 1.4.1 RSA算法 1.4.2 DH算法 5. 前向 ...

  4. HTTPS之TLS证书

    文章目录 一. TLS概述 1. TLS概述 2. `HTTPS` 协议栈与 `HTTP` 的唯一区别 3. TLS协议版本 二. TLS证书格式 1. 概述 2. 示例:知乎网站证书解析(mac系统 ...

  5. Docker系列---docker cgroup资源管理 | TLS通讯加密 | 详细讲解

    Cgroup 前言 - Cgroup 一.对 CPU 的控制 1.使用 stress 工具测试 2.限制 CPU 使用周期速率 3.多任务比例分享 CPU 4.限制 CPU 内核使用 二.对内存使用的 ...

  6. SSL协议_一_概述

    参考:https://en.wikipedia.org/wiki/Transport_Layer_Security Authentication and key exchange/agreement ...

  7. 《嵌入式 - Lwip开发指南》第1章 LWIP概述

    1.1 LwIP简介 LwIP 全名为 Light weight IP,意思是轻量化的 TCP/IP 协议,是瑞典计算机科学院(SICS)的 Adam Dunkels 开发的一个小型开源的 TCP/I ...

  8. 《考取HCIA证书看我就够了》第五篇:[HCIA-IoT]物联网技术之感知层技术概览

    系列文章目录 <考取HCIA证书,看我就够了> 1.华为职业认证体系及HCIA介绍 2.[HCIA-IoT]物联网起源与发展 3.[HCIA-IoT]物联网技术之网络层技术概览 4.[HC ...

  9. 嵌入式C语言编程规范

    前言 代码首先是给人看的,其次才是给机器执行的,因此一般情况下代码的可读性优先于性能,只有确定性能是瓶颈时,才需要主动优化. 可读性高的代码应当是易于理解并且易于实现的,代码越长越难看懂,可能出错的地 ...

最新文章

  1. 正确生成浮点型的方法,解决sqlachemy Float浮点型的坑,生成float类型时,长度和精度均为0,导致查询不到结果!...
  2. 【青少年编程】【四级】奇偶之和
  3. 电大计算机考试打开画图程序,最新国家开放大学电大《计算机绘图》形考任务网考试题及答案.pdf...
  4. springboot jpa 复合主键 联合主键
  5. UNION 与 UNION ALL
  6. 关于同时可用git命令clone和TortoiseGit拉取代码不需要密码
  7. 【More Effective C++】Item 6
  8. linux 系统下如何进行用户之间的切换
  9. Illustrator 教程,如何在 Illustrator 中添加图像?
  10. MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题
  11. Android P版本怎么简单的验证HIDL的Demo例程
  12. GMS 地下水数值模拟
  13. 图解机器学习算法(3) | KNN算法及其应用(机器学习通关指南·完结)
  14. Python 使用turtle在画布的随机位置绘制颜色随机的五角星
  15. 基于stm32单片机的物联网WiFi智能快递柜设计
  16. Unity3d 数字模型制作规范
  17. FENeRF: Face Editing in Neural Radiance Fields
  18. 抖音直播弹幕协议解析记录
  19. 电子科大计算机学院郑欣,我校研究生在“华为杯”第十六届中国研究生数学建模竞赛中获佳绩...
  20. varchar与char有什么区别

热门文章

  1. linux 用户相关操作
  2. 【JAVA】GUI常用组件
  3. android MediaCodec 音频编解码的实现——转码
  4. python3实现PAT乙级算法题库全集
  5. 小米电视4s通过adb调试删除原装软件笔记
  6. windows中不能创建的目录
  7. 手机dpi修改工具_手机dpi修改器app下载-手机dpi修改工具官方版 v1.0_5577安卓网
  8. M1W Dock 教程之开发环境配置
  9. ffmpeg音频视频转换命令笔记
  10. android新闻客户端(有源码)