UADK Engine测试指南:如何使用sanity_test.sh进行全面验证
【免费下载链接】uadk_engine 项目地址: https://gitcode.com/openeuler/uadk_engine
前往项目官网免费下载:https://ar.openeuler.org/ar/
UADK Engine是openEuler开源项目中的重要组件,提供高效的硬件加速能力。本文将详细介绍如何通过test/sanity_test.sh脚本对UADK Engine进行全面验证,确保其功能正常和性能稳定。
📋 测试前准备工作
在运行测试脚本前,请确保您的环境满足以下条件:
- 安装依赖:系统已安装OpenSSL开发库和工具
- 获取源码:通过以下命令克隆项目仓库
git clone https://gitcode.com/openeuler/uadk_engine cd uadk_engine - 编译项目:按照项目文档完成UADK Engine的编译和安装
🚀 快速开始:基本使用方法
sanity_test.sh是UADK Engine提供的自动化测试脚本,位于test/目录下。默认情况下,您可以直接运行:
cd test
./sanity_test.sh
脚本会自动检测系统中可用的加密算法,并对支持的算法进行性能测试。如果需要指定引擎ID,可以通过参数传递:
./sanity_test.sh my_custom_engine_id
🔍 测试内容详解
sanity_test.sh脚本会对多种密码学算法进行全面测试,主要包括以下几类:
1. 哈希算法测试
脚本会自动检测并测试支持的哈希算法,包括:
- MD5
- SHA系列(SHA1、SHA224、SHA256、SHA384、SHA512)
- 国密算法SM3
测试命令示例:
openssl speed -engine uadk_engine -evp sm3
2. 对称加密算法测试
支持的对称加密算法测试包括:
- AES(CBC、ECB、XTS、CTR模式)
- 国密算法SM4(CBC、ECB模式)
- DES(3DES-EDE模式)
每种算法会测试不同密钥长度的性能表现,例如AES-128、AES-192和AES-256。
3. 非对称加密算法测试
非对称加密算法测试涵盖:
- RSA(1024/2048/4096位密钥)
- ECDSA(P224/P256/P384/P521曲线)
- ECDH密钥交换(多种曲线)
- DH密钥交换
其中ECDSA、X25519、X448等算法需要Kunpeng930或更高版本处理器支持。
4. 异步模式测试
除了同步模式测试外,脚本还会对支持的算法进行异步模式测试,通过-async_jobs 1参数启用:
openssl speed -engine uadk_engine -async_jobs 1 -evp aes-128-cbc
📊 测试结果解读
测试完成后,您将看到类似以下的输出:
testing AES
Doing aes-128-cbc for 3s on 16 size blocks: 123456 aes-128-cbc's in 2.98s
Doing aes-128-cbc for 3s on 64 size blocks: 78901 aes-128-cbc's in 2.99s
...
这些结果显示了不同数据块大小下的加密/解密性能,数值越高表示性能越好。对于DH测试,脚本还会验证双方生成的共享密钥是否一致。
⚠️ 注意事项
- 权限要求:脚本需要root权限来设置设备权限(如第3行
sudo chmod 666 /dev/hisi_*) - 硬件支持:部分算法需要特定硬件支持,不支持的算法会自动跳过
- 临时文件:DH测试会生成临时文件(dhparam.pem、privatekey*.pem等),测试完成后建议清理
- 测试时间:完整测试可能需要较长时间,具体取决于系统性能和支持的算法数量
📚 更多资源
- 项目源码:src/
- 算法实现:src/v1/alg/
- 异步功能:src/v1/async/
- 工具函数:src/v1/utils/
通过sanity_test.sh脚本,您可以快速验证UADK Engine的功能完整性和性能表现。如果发现任何问题,欢迎提交issue或参与项目贡献!
【免费下载链接】uadk_engine 项目地址: https://gitcode.com/openeuler/uadk_engine
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



