1.mbedtls移植到STM32

本文详细介绍了如何将mbedtls移植到STM32单片机上,包括使用STM32CubeMX自动配置和手动移植两种方法。内容涵盖mbedtls的功能、加密算法,以及移植过程中的配置、测试代码编写等关键步骤。
摘要由CSDN通过智能技术生成

1.关于mbedtls

1.主要提供了的 SSL/TLS 支持(在传输层对网络进行加密),各种加密算法,各种哈希算法,随机数生成以及 X.509(密码学里公钥证书的格式标准)的支持。
2.mbedTLS 支持的加密算法含对称加密和非对称加密。
mbedTLS 支持的对称加密算法有:
AES, ARCFOUR, Blowfish/BF, Camellia, DES/3DES, GCM, XTEA。加密和解密用到的密钥是相同的,加密速度快,适合数据收发通信,缺点是密钥的传输略麻烦。

mbedTLS 支持的非对称加密算法有:
Diffie-Hellman-Merkle, RSA, Elliptic Curves over GF§, Elliptic Curve Digital Signature Algorithm (ECDSA)和 Elliptic Curve Diffie Hellman (ECDH)加密和解密用的密钥是不同的,加密的速度慢,适合密钥的传输。

2.STM32移植方法

移植mbedtls开源库到stm32有3种方法:

① 针对STM32CubeMX中Middleware下面已经提供mbedtks库的情况:直接使用cubeMX配置即可;
② 针对STM32CubeMX中没有提供mbedtls库的情况:手动下载源码移植。

2.1STM32cubemx移植

1.开启RNG外设支持(可选)
一些STM32系列中有RNG外设(随机数发生器),如果有的话就开启,没有就不用开启
在这里插入图片描述

2.RTC支持和网络支持(可选)
网络支持需要提供一套TCP/IP协议栈,比如基于AT模组的SAL层、lwip协议栈等,这里我们不使用网络连接功能,后续在带操作系统移植时讲解。

RTC支持是为了校验CA证书有效期提供时间支持,这里我们不使用时间功能,后续在带操作系统移植时讲解。

3.开启mbedtls库
在Middleware下开启mbedtls库支持:
在这里插入图片描述
4. 配置mbedtls
mebdtls库提供的算法非常多,全都通过宏定义来配置。

① 特性配置:保持默认即可。
在这里插入图片描述
② 使用功能模块配置(重点):
在这里插入图片描述
5. 编写测试代码
main.c增加如下代码

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include <stdio.h>
#include "mbedtls/sha1.h"		//使用sha1相关加密函数
#include "string.h"				//使用到了strlen函数
/* USER CODE END Includes */
-----------------------------------

/* USER CODE BEGIN 2 */
printf("mbedtls port on ATK-STM32F407 board by mculover666\r\n");

/* sha1 test */
char *source_cxt = "mcu
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值