STM32F4系列单片机上使用CUBE配置MBEDTLS实现pem…
2018-06-18 03:50:25来源:未知 阅读 ()
|版权声明:本文为博主原创文章,未经博主允许不得转载。
最近尝试在STM32F4下用MBEDTLS实现了公钥导入(我使用的是ECC加密),整个过程使用起来比较简单。
首先,STM32F4系列CUBE里已经集成了MBEDTLS, MBEDTLS是ARM公司的开源加密库,遵守APACHE协议,大家可以随便使用MBEDTLS到开源和闭源项目上。
其次,除了ECC,MBEDTLS还支持AES系列对称加密,支持基于AES的NONCE生成,支持SHA系列摘要算法等,可以应用在各种加密场景。
1. 在CUBE里勾选MBEDTLS,
2. 在CUBE的MBEDTLS配置里勾选下面的选项,如果不确定该勾选什么,可以使用默认设置,全部勾选。
这里有个坑是MBEDTLS_NET_C选项是只支持POXIS标准的,如果同时使用了LWIP的话,记得把MBEDTLS_NET_C DISABLE掉。
3. 生成工程。完成后在工程里的Application/User/mbedtls.c里增加头文件包含#include "mbedtls/pk.h"
4. 找到MX_MBEDTLS_Init方法。(找不到的话直接全局搜索方法名。)
5. 创建并初始化上下文。
mbedtls_pk_context ctx_pk ;
mbedtls_pk_init(&ctx_pk) ;
6. 调用mbedtls_pk_parse_public_key对公钥进行导入,
if(0 != mbedtls_pk_parse_public_key(&ctx_pk, (uint8_t* )publickey, strlen(publickey)+1))
{
printf("Can't import public key\r\n") ;
}
注意,publickey是pem格式的公钥,公钥内容以-----BEGIN PUBLIC KEY-----为前缀,以-----END PUBLIC KEY-----为后缀。前缀后缀和公钥内容之间必须按顺序包含一个空格' ',一个'\r',一个'\n',共3个分隔符。
到这里pem格式的公钥已经导入了,你可以开始验证非对称加密的消息了。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++之策略模式 2020-03-12
- 湫湫系列故事——设计风景线 HDU - 4514 2019-08-16
- 递归(二):正整数的拆分 2019-08-16
- P1880 [NOI1995]石子合并 2019-05-04
- C++基础——类继承 2019-04-20
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash