成功为hi3798mv100适配aes加速硬件。实测结果:
加速前
$ openssl speed -elapsed des-ede3 aes
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
des-ede3 2712.59k 2841.71k 2866.77k 2884.95k 2879.45k 2889.05k
aes-128-cbc 16121.17k 22163.90k 24598.02k 25182.24k 25466.20k 25466.20k
aes-192-cbc 14415.77k 19257.77k 20981.79k 21553.49k 21700.61k 21631.23k
aes-256-cbc 13252.08k 17132.78k 18606.42k 18998.27k 19051.16k 19114.67k
加速后
$ openssl speed -elapsed -engine afalg des-ede3 aes
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
des-ede3 2714.27k 2841.17k 2876.25k 2879.11k 2891.78k 2884.89k
aes-128-cbc 191.03k 664.75k 1728.68k 2920.45k 33459.29k 40812.54k
aes-192-cbc 189.44k 654.25k 1716.82k 2915.67k 33521.66k 40911.01k
aes-256-cbc 182.98k 646.14k 1726.09k 2904.75k 33518.93k 41008.99k
- 为什么硬件加速后 16 bytes 速度反而跪了:
这是openssl库的问题。所有测试(包括使用的openssl)均基于主线化的代码。openwrt用户可以使用openwrt专供的openssl库解决此问题,详见 https://github.com/cotequeiroz/afalg_engine
没有意义。用更复杂的方法当然可以刷出更好的分数,但如果正常用不到这样的成绩其实是误人子弟。非openwrt用户建议参照上面链接内的配置文件,对使用硬件加速的请求长度做出限制。
内核下载:https://t.me/empstorage