1.1 Ucryptolib 模块API手册
前言
概述
本文档主要介绍 CanMV 项目中加解密算法库-ucryptolib。
读者对象
本文档(本指南)主要适用于以下人员:
- 技术支持工程师
- 软件开发工程师
缩略词定义
| 简称 | 说明 |
|---|---|
| AES | Advanced Encryption Standard |
| GCM | Galois/Counter Mode |
修订记录
| 文档版本号 | 修改说明 | 修改者 | 日期 |
|---|---|---|---|
| V1.0 | 初版 | 杨帆 | 2023-09-15 |
| V1.1 | 修改示例程序,新增使用指南 | 杨帆 | 2023-10-10 |
| V1.2 | 增加 AES-ECB/CBC/CTR 软件源生实现 | 杨帆 | 2023-10-13 |
1. 概述
Ucryptolib 库提供了 AES-ECB/CBC/CTR、AES-GCM、SM4 加解密功能。其中,AES-ECB/CBC/CTR 三种模式是由 micropython 的软件源生实现,AES-GCM 和 SM4 由底层硬件加速器进行加速。
注意:本文档不会介绍 AES-ECB/CBC/CTR 三种模式的加解密详细步骤,具体请参考 micropython cryptolib官方文档
2. API描述
Ucryptolib 库提供了两个类,分别是 aes 和 sm4,它们分别实现了两个函数,加密 encrypt() 和解密 decrypt()。
2.1 类 aes
【描述】
类 aes 用于初始化一个 AES-GCM 国际加解密对象,从而完成加密/解密操作。同时,在 AES-GCM 加解密算法中,初始化时必须输入 key、mode、IV 和 AAD。
注意:初始化后,加解密对象只能用于加密或解密操作,不允许创建一个密码对象同时用于加密、解密操作
【语法】
ucryptolib.aes((key, mode, IV, AAD))
【参数】
| 参数名称 | 描述 | 输入/输出 |
|---|---|---|
| key | 加解密密钥,支持的密钥长度为 256 bits | 输入 |
| mode | 加解密模式,支持的加解密模式为 AES-GCM,这里设置 mode=0 即可 | 输入 |
| IV | 初始化向量,支持的 IV 长度为 12 bytes | 输入 |
| AAD | 附加数据 | 输入 |
【返回值】
| 返回值 | 描述 |
|---|---|
| 0 | 成功 |
| 非 0 | 失败 |