aes无密码解密_[皮克范式讲MPLABHarmony]12.如何使用密码库

一、简介

Harmony 3中提供了一个为嵌入式应用使用的C语言接口加密库(Cryptographic Library),包括加密、解密、哈希函数、身份验证和压缩的功能,以及随机数生成(RNG)功能。

加密库主要功能:

·分组密码(Block Ciphers): 提供DES、3DES和AES以满足分组密码的需要。根据使用的算法,支持CBC和CTR模式。

·公钥加密(Public Key Cryptography):为公钥加密提供RSA和椭圆曲线加密(ECC),为密钥协议安排提供Diffie-Hellman(DH)。

·哈希函数(Hash Functions):提供MD5、SHA、SHA-256、SHA-384和SHA-512哈希处理函数。这些函数不需要键值或初始化向量(IV)。

·随机数生成函数(Random Number Generation Functions):该库提供了生成单个伪随机数或一组伪随机数的函数。

下面将为大家介绍如何使用这个加密库。

二、硬件工具和软件平台

硬件:SAM E54 Xplained Pro

1460f56b95251d56ea78bc2434f0e653.png

软件:

MPLAB® X IDE:  v5.20或者更新

XC32:        v2.15或者更新

Harmony 3:   v3.21或者更新 (bsp, core, crypto, csp)

三、使用加密库

(一) 获取Harmony 3 加密库

如果之前没有下载Harmony 3 加密库,则可以打开MPLABX IDE,点击Tools > Embedded > MPLAB Harmony 3 Framework Downloader,然后按提示下载。

详细步骤可参考:“MPLAB® Harmony 3之基础篇(01) -- Harmony 3开发环境搭建”。

成功下载Harmony 3 加密库后,会看到如下类似界面:

e690f1623641eda9ffefe92126fd39e7.png 

(二) 加密库接口头文件 - crypto.h

加密库的函数接口在crypto.h头文件中定义。任何使用加密库的C文件都需要包含crypto.h。在这个头文件中有详细的接口函数说明,以及接口使用方法。

(三) 加密库接口函数

加密库接口函数被划分为不同的子功能:

加密库接口子功能

说明

常规函数

提供错误字符串函数,该函数接收错误码并将其转换为人类可读的文本。

压缩函数

提供哈夫曼压缩和解压功能。

MD5函数

提供MD5数据添加、完成和初始化函数。

随机数生成函数

提供获取、初始化和块生成RNG函数。

AES加密/解密函数

提供AES加密和解密功能。

ECC加密/解密函数

提供ECC加密和解密功能。

RSA加密/解密函数

提供RSA加密和解密功能。

三重DES加密/解密函数

提供3DES加密和解密功能。

HMAC哈希函数

提供HMAC数据添加、完成和设置键哈希函数。

SHA哈希函数

提供SHA256,SHA384, SHA512数据添加、完成和初始化哈希函数。

加密库接口的详细文档可以从本地或在线获得:

·本地文档:<< span="">crypto library path>\doc\help_harmony_crypto.chm

·在线文档:https://microchip-mplab-harmony.github.io/crypto

cc1cc8b39397f73655f3e283f0ce94f6.png

四、例程

接下来,我们打开一个使用Harmony 3加解密库的SAME54例程,看看如何使用加密库。

(一) 在MPLAB X IDE里打开加解密例程(encrypt_decrypt)

在MPLAB X IDE里点击File > Open Project:

3d6ef0bc7790db3824b793a595c23352.png

选择“sam_e54_xplained_pro.X”例程,然后点击“Open Project”按钮打开项目。

41f3ff3545cc6e472c2ed68fc10bfb60.png

(二) 启动MHC

如果不想查看或更改项目代码配置,可以跳过此步骤。MHC的使用方法,请参考文档:“MPLAB® Harmony 3之基础篇(02) -- 了解MHC”。

在MPLAB X IDE里点击Tools > Embeded > MPLAB Harmony 3 Configurator启动:

1db33801bb88b066a51e3eeac9c6eae0.png

e0bcc3f8331f0decf0b5bc09dd171b1c.png

点击“Launch”按钮启动MHC。

(三) 配置加密库

如果不想更改加密库配置,可以跳过此步骤。

1.在Project Graph窗口选择“Cryptographic (Crypto) Library”组件

5c2fbf1645994db66fd6d8eebe8379a0.png

2.然后在“Configuration Options”窗口,可以对选择的组件进行参数配置

29029e7dedf603f5e7ccba8267c8a8fa.png

注意:ATSAME54芯片有硬件支持TRNG, AES, SHA-1, SHA-224, SHA-256,所以例程中使能了硬件加速(Use Hardware Acceleration)。当无硬件加解密功能时,则可以使用软件加密算法,比如例程中的SHA-384, SHA-512。

(四) 使用MHC, 生成代码

因为我们打开的是例程,没有做修改,所以不用重新产生代码。

如果在MHC中有修改配置,则保存并生成代码:7ff02781c4e7c61bc9bcd437b3028e4b.png

在本例程中,主要的应用程序代码在app.c中。在APP_Tasks()函数里,会依次调用相关的测试函数:

·md5_test():MD5接口函数调用示例及测试

·sha_test():SHA接口函数调用示例及测试

·……

(五) 编译下载测试

1.用Micro USB线将SAM E54 Xplained Pro开发板连接到电脑

2.在项目属性里选择XC32编译器和SAM E54 Xplained Pro EDBG调试接口

e2ce2d96ebe56ae6351b7581fe91731c.png

3.编译下载

编译并下载程序:

b2786b7de49d0a70b947eb29faf00823.png

在串口终端程序里,你将看到这样的打印信息:

d5424a25b0af3d82c917693c889cbc9f.png 

五、总结

本文介绍了Harmony 3密码库的主要功能,并通过一个例程说明如何使用密码库进行数据加解密。关于密码库的更详细用法,请参考密码库的帮助文档和例程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值