OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 13571|回复: 11

STM32使用mbedTLS实现SHA1加密算法

[复制链接]

10

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1502
金钱
1502
注册时间
2013-8-28
在线时间
28 小时
发表于 2018-2-22 23:10:54 | 显示全部楼层 |阅读模式
STM32使用mbedTLS实现SHA1加密算法1、引言[size=10.5000pt]ARM mbedtls使开发人员可以非常轻松地在(嵌入式产品中加入加密和 SSL/TLS 功能。它提供了具有直观的 API 和可读源代码的 SSL 库。该工具即开即用,可以在大部分系统上直接构建它,也可以手动选择和配置各项功能。
[size=10.5000pt]mbedtls 库提供了一组可单独使用和编译的加密组件,还可以使用单个配置头文件加入或排除这些组件。
[size=10.5000pt]从功能角度来看,该mbedtls分为三个主要部分:
[size=10.5000pt]- SSL/TLS 协议实施。
[size=10.5000pt]- 一个加密库。
[size=10.5000pt]- 一个 X.509 证书处理库。
[size=10.5000pt]本文将介绍如何使用[size=10.5000pt]mbedTLS[size=10.5000pt]STM32平台(MDK5编译器)下实现SHA1加密算法。
2、环境配置[size=10.5000pt]编译器:MDK v5.21
[size=10.5000pt]安装插件包:ARM.mbedTLS.1.3.1.pack
[size=10.5000pt]硬件芯片:stm32f103
[size=10.5000pt]在安装完上述pack包的情况下新建或打开stm32f103系列工程,打开Manage Run-Time Environment,打开Security并勾选mbed TLS选项,如下图所示。
图片1.png
[size=10.5000pt]设置完成后工程中就加入了mbedTLS相关代码,如下所示
图片2.png [size=10.5000pt]
3、使用示例[size=10.5000pt]在加入的代码中打开mbedTLS_config.h文件,根据实际使用算法情况修改改文件,如使用SHA1算法需打开#define MBEDTLS_SHA1_C注释,如下所示
图片3.png [size=10.5000pt]
[size=10.5000pt]然后在主函数中加入初始化及测试代码,
[size=10.5000pt]int i;
[size=10.5000pt]unsigned char encrypt[] = "admin";   
[size=10.5000pt]unsigned char decrypt[20];
[size=10.5000pt]mbedtls_sha1_context sha1_ctx;
[size=10.5000pt]
[size=10.5000pt]mbedtls_sha1_init(&sha1_ctx);
[size=10.5000pt]mbedtls_sha1_starts(&sha1_ctx);
[size=10.5000pt]mbedtls_sha1_update(&sha1_ctx, encrypt, strlen((char *)encrypt));
[size=10.5000pt]mbedtls_sha1_finish(&sha1_ctx, decrypt);
[size=10.5000pt]printf("加密前:%s\n加密后:", encrypt);
[size=10.5000pt]mbedtls_sha1_free(&sha1_ctx);
[size=10.5000pt]for (i = 0; i<20; i++)
[size=10.5000pt]{
[size=10.5000pt]        [size=10.5000pt]printf("%02x", decrypt);            
[size=10.5000pt]}
[size=10.5000pt]如下图所示,
图片4.png [size=10.5000pt]
[size=10.5000pt]上述例子中加密前数据为字符串admindebug(或串口打印输出)获取到加密后数据如下
[size=10.5000pt] 图片5.png
[size=10.5000pt]可通过http://www.ttmd5.com/hash.php?type=5在线验证加密算法是否正确,
[size=10.5000pt] 图片6.png
[size=10.5000pt]可见验证结果与上述使用mbedTLS计算结果一致。
[size=10.5000pt]

欢迎关注我的公众号“嵌入式大玩家” 后台回复任何技术内容一起学习讨论
qrcode_for_gh_98f1106d47b4_258.jpg
STM32软硬件相关项目外包开发 QQ:83029775
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

48

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6222
金钱
6222
注册时间
2018-12-2
在线时间
112 小时
发表于 2019-2-13 18:09:10 | 显示全部楼层
yuanzi2018 发表于 2018-12-21 16:45
这个安装包ARM.mbedTLS.1.3.1.pack哪里有下载啊?找了半天都没有找到,大神能不能给个链接?谢谢!

http://www.keil.com/dd2/pack/#/eula-container

找到: ARM mbed Cryptographic and SSL/TLS library for Cortex-M devices,然后下载安装
回复 支持 0 反对 1

使用道具 举报

0

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2012-12-8
在线时间
21 小时
发表于 2018-6-29 14:40:26 | 显示全部楼层
666
回复 支持 反对

使用道具 举报

8

主题

73

帖子

0

精华

高级会员

Rank: 4

积分
706
金钱
706
注册时间
2014-5-24
在线时间
145 小时
发表于 2018-11-14 08:33:48 | 显示全部楼层
感谢楼主分享,学习了!
回复 支持 反对

使用道具 举报

13

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2017-8-7
在线时间
40 小时
发表于 2018-11-15 10:10:55 | 显示全部楼层
包含那.h文件在main.c里啊 ?
回复 支持 反对

使用道具 举报

13

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2017-8-7
在线时间
40 小时
发表于 2018-11-15 11:16:07 | 显示全部楼层
包含哪个头文件呢?
回复 支持 反对

使用道具 举报

13

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2017-8-7
在线时间
40 小时
发表于 2018-11-15 12:16:14 | 显示全部楼层
piaoxuebingfeng 发表于 2018-11-14 08:33
感谢楼主分享,学习了!

有测试吗你?
回复 支持 反对

使用道具 举报

8

主题

73

帖子

0

精华

高级会员

Rank: 4

积分
706
金钱
706
注册时间
2014-5-24
在线时间
145 小时
发表于 2018-11-17 20:23:44 | 显示全部楼层

有的,你选择哪个加密库,就包含哪一个头文件就好
回复 支持 反对

使用道具 举报

8

主题

73

帖子

0

精华

高级会员

Rank: 4

积分
706
金钱
706
注册时间
2014-5-24
在线时间
145 小时
发表于 2018-11-17 20:26:27 | 显示全部楼层

比如,如果你选择 sha1 加密的话,在 main.c 里面包含 #include "mbedtls/sha1.h"
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2018-12-21
在线时间
2 小时
发表于 2018-12-21 16:45:23 | 显示全部楼层
这个安装包ARM.mbedTLS.1.3.1.pack哪里有下载啊?找了半天都没有找到,大神能不能给个链接?谢谢!
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2019-9-9
在线时间
1 小时
发表于 2019-9-9 18:27:16 | 显示全部楼层
如何在这个tls库中添加证书呢
回复 支持 反对

使用道具 举报

17

主题

237

帖子

0

精华

高级会员

Rank: 4

积分
925
金钱
925
注册时间
2012-2-27
在线时间
393 小时
发表于 2019-9-10 10:54:05 | 显示全部楼层
密钥能不能修改的?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-21 12:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表