KAE
A high-performance hardware acceleration algorithm library of OpenSSL engine based on Kunpeng processor
Install / Use
/learn @kunpengcompute/KAEREADME
当前KAE组件将原驱动仓、加密仓、压缩仓归一,统一编排在KAE仓(原来加密仓);并且针对不同的内核版本,将代码分为了kae1分支(4.19内核)和kae2分支(5.10内核)。 1.3.11及历史版本代码和发行包可在原驱动仓、加密仓、压缩仓下载。
原驱动仓KAEdriver 原加密仓KAE 原压缩仓KAEzip
一、背景及规格
1.1、背景说明
鲲鹏加速引擎是基于鲲鹏处理器提供的硬件加速解决方案,包含了 KAE 加解密和 KAE 解压缩两个模块,分别用于加速 SSL/TLS 应用和数据压缩,可以显著降低处理器消耗,提高处理器效率。此外,加速引擎对应用层屏蔽了其内部实现细节,用户通过 OpenSSL、zlib标准接口即可以实现快速迁移现有业务。
本文介绍了 KAE 的安装流程。
1.2、版本说明
鲲鹏加速引擎(KAE)是一款基于鲲鹏 920 处理器研发的加速器。由于不同内核版本的差异,KAE 存在两套代码用于支持不同的内核代码,分别是 KAE1.0 和 KAE2.0 两套代码分支。其中,KAE1.0 适用于 4.19 内核;而 KAE2.0 适用于 5.1x 内核。
| 内核版本 | 设备形态 | KAE1.0 | KAE2.0 | | ---------- | ---------- | --------------- | --------------- | | 4.19 | 920 | YES | NA | | 5.1x | 920 | NA | YES |
1.3、KAE算法规格说明
由于硬件差异,KAE不同版本加速引擎能够支持的加密算法存在不同,支持情况详见以下表格:
| | 鲲鹏 920 | | --------------------| --------- | | 摘要算法 SM3 | YES | | 摘要算法 DM5 | YES | | 对称加密算法 SM4-CTR | YES | | 对称加密算法 SM4-XTS | YES | | 对称加密算法 SM4-CBC | YES | | 对称加密算法 SM4-ECB | YES | | 对称加密算法 SM4-OFB | YES | | 对称加密算法 SM4-CFB | NA | | 对称加密算法 AES-ECB | YES | | 对称加密算法 AES-CTR | YES | | 对称加密算法 AES-XTS | YES | | 对称加密算法 AES-CBC | YES | | 对称加密算法 AES-OFB | NA | | 对称加密算法 AES-CFB | NA | | 对称加密算法 AES-GCM | NA | | 对称加密算法 AES-CCM | NA | | 非对称算法 RSA | YES | | 非对称算法 SM2 | NA | | 密钥协商算法 DH | YES |
注意: 1、对称加密算法 SM4-XTS 不支持 openSSL,只支持内核态使用。
KAE-zlib 解压缩功能支持情况见下表:
| | 支持 zlib/Gzip 数据格式 | 支持 deflate 算法 | 可配置压缩等级 | | ----------- | ------------------------- | ------------------- | ---------------- | | 鲲鹏920 | YES | NA | NA |
二、安装前准备
根据芯片款型及内核版本选择适合的KAE代码进行安装,安装前需要确定环境信息及安装license。
2.1 环境信息确认
- 以 TaiShan 200 服务器为例,开启 KAE 加速引擎功能
- CPU:鲲鹏 920 处理器
- iBMC 版本:V365 及以上
- BIOS 版本:V105 及以上
- KAE1.0 支持操作系统:
- CentOS 7.6 4.14.0-115.el7a.0.1.aarch64 version
- SUSE 15.1 4.12.14-195-default.aarch64 version
- EulerOS 2.8 4.19.36-vhulk1907.1.0.h410.eulerosv2r8.aarch64 version
- NeoKylin 7.6 4.14.0-115.5.1.el7a.06.aarch64 version
- BCLinux-R7-U6-Server-aarch64 version
- Kylin 4.0.2 (juniper) 4.15.0-70-generic version
- Kylin release 4.0.2 (SP2) 4.19.36-vhulk1907.1.0.h403.ky4.aarch64 version
- UniKylin Linux release 3(Core) 4.18.0-80.ky3.kb21.hw.aarch64 version
- Ubuntu 18.04.1 LTS 4.15.0-29-generic version
- openEuler 20.03 LTS 4.19.90-2003.4.0.0036.oe1.aarch64 version
- openEuler 20.03 LTS-SP1 4.19.90-2012.4.0.0053.oe1.aarch64 version
- KAE2.0支持操作系统:
- openEuler 22.03 LTS-SP1
- openEuler 22.03 LTS-SP2
2.2 软件包获取
基于硬件cpu款型及内核OS情况,选择正确的KAE版本后,再获取软件包,用于后续安装。
2.2.1 KAE1.0软件包获取
KAE1.0 版本支持RPM、DEB包安装、源码安装三种方式。
- RPM及DEB获取
KAE1.0 rpm 包下载地址:https://gitee.com/kunpengcompute/KAE/releases/tag/v1.2.10
说明:rpm 包的获取需要进入下载地址选取指定操作系统的 rpm 包
KAE1.0 RPM包说明如下表所示:
| 软件包名称 | 软件包说明| | --- | --- | | uacce-版本号-1.OS类型.aarch64.rpm<br>uacce-版本号-1.OS类型.aarch64.deb| 统一加速器框架,包含内容:uacce.ko、hisi_qm.ko内核模块 | | hisi_hpre-版本号-1.OS类型.aarch64.rpm<br>hisi_hpre-版本号-1.OS类型.aarch64.deb | 依赖:uacce RPM包 <br> 包含内容:hisi_hpre.ko内核模块<br> 支持:RSA/DH算法 | | hisi_sec2-版本号-1.OS类型.aarch64.rpm <br>hisi_sec2-版本号-1.OS类型.aarch64.deb| 依赖:uacce RPM包<br>包含内容:hisi_sec2.ko内核模块 <支持:AES/MD5/SM3/SM4算法> | | hisi_rde-版本号-1.OS类型.aarch64.rpm <br>hisi_rde-版本号-1.OS类型.aarch64.deb | 依赖:uacce RPM包<br> 包含内容:hisi_rde.ko内核模块 <br> 支持:FlexEC算法 | | hisi_zip-版本号-1.OS类型.aarch64.rpm<br>hisi_zip-版本号-1.OS类型.aarch64.deb | 依赖:uacce RPM包<br>包含内容:hisi_zip.ko内核模块<br>支持:zlib/gzip | | libwd-版本号-1.OS类型.aarch64.rpm<br>libwd-版本号-1.OS类型.aarch64.deb | 包含内容:libwd.so动态链接库 <br> 提供接口给KAE加速引擎 | | libkae-版本号-1.OS类型.aarch64.rpm <br> libkae-版本号-1.OS类型.aarch64.deb | 依赖:libwd RPM包 <br>包含内容:libkae.so动态库<br>支持:SM3/SM4/RSA/AES/MD5/DH等算法| | libkaezip-版本号-1.OS类型.aarch64.rpm<br>libkaezip-版本号-1.OS类型.aarch64.deb | 依赖:libwd RPM/DEB包<br>包含内容:libkaezip.so动态库<br>支持:压缩解压算法 |
- 源码包获取
KAE1.0 源码下载方式:git clone https://gitee.com/kunpengcompute/KAE.git -b kae1 或者访问Kunpeng/KAE代码仓下载源码包:https://gitee.com/kunpengcompute/KAE
2.2.2 KAE2.0软件包获取
KAE2.0 版本支持RPM包安装、源码安装两种种方式。
- RPM包获取 KAE2.0 rpm包下载地址:尚未发布
- 源码包获取 KAE2.0 源码下载方式:git clone https://gitee.com/kunpengcompute/KAE.git -b kae2 或者访问Kunpeng/KAE代码仓下载源码包:https://gitee.com/kunpengcompute/KAE
2.3 License安装
安装鲲鹏KAE加速引擎之前需要先安装相应的License,License安装成功之后,操作系统才能识别到加速器设备。
TaiShan K系列服务器硬件KAE加速引擎已默认开启,无需申请License。
具体License申请使用操作可参考《华为服务器iBMC许可证 使用指导》。
通过lspci命令进行查看操作系统是否有加速器设备,如下所示。
lspci | grep HPRE
79:00.0 Network and computing encryption device: Huawei Technologies Co., Ltd. HiSilicon HPRE Engine (rev 21)
b9:00.0 Network and computing encryption device: Huawei Technologies Co., Ltd. HiSilicon HPRE Engine (rev 21)
lspci | grep RDE
78:01.0 RAID bus controller: Huawei Technologies Co., Ltd. HiSilicon RDE Engine (rev 21)
b8:01.0 RAID bus controller: Huawei Technologies Co., Ltd. HiSilicon RDE Engine (rev 21)
lspci | grep ZIP
75:00.0 Processing accelerators: Huawei Technologies Co., Ltd. HiSilicon ZIP Engine (rev 21)
b5:00.0 Processing accelerators: Huawei Technologies Co., Ltd. HiSilicon ZIP Engine (rev 21)
lspci | grep SEC
76:00.0 Network and computing encryption device: Huawei Technologies Co., Ltd. HiSilicon SEC Engine (rev 21)
b6:00.0 Network and computing encryption device: Huawei Technologies Co., Ltd. HiSilicon SEC Engine (rev 21)
2.4 KAE安装
2.4.1 KAE1.0版本
二进制包安装
前提条件: 请保证rpm下载完成,并且license获取成功。 RPM或dpkg工具能正常使用。 OpenSSL 1.1.1a或以上版本已正确安装。
hisi_hpre,hisi_sec2,hisi_rde驱动软件包依赖于uacce软件包;libkae引擎软件包依赖于libwd软件包。 如果仅加速RSA/DH算法建议只需要安装uacce、hisi_hpre、libwd、libkae软件包。 如果仅加速AES/MD5/SM3/SM4算法建议只需要安装uacce、hisi_sec2、libwd、libkae软件
-
步骤1 使用SSH远程登录工具,以root帐号进入Linux操作系统命令行界面。
-
步骤2 将KAE加速引擎软件包拷贝到自定义路径下。
-
步骤3 安装加速驱动软件包。
-
可以通过rpm -ivh *.rpm安装所有KAE加速引擎软件包。
[root]rpm -ivh *.rpm Preparing... ################################# [100%] checking installed modules Updating / installing... 1:uacce-1.0.1-1.centos7.6 ################################# [ 14%] modules installed 2:libwd-1.0.1-1.centos7.6 ################################# [ 29%] 3:libkae-1.0.1-1.centos7.6 ################################# [ 43%] checking installed modules 4:hisi_hpre-1.0.1-1.centos7.6 ################################# [ 57%] modules installed checking installed modules 5:hisi_rde-1.0.1-1.centos7.6 ################################# [ 71%] modules installed checking installed modules 6:hisi_sec2-1.0.1-1.centos7.6 ################################# [ 86%] modules installed checking installed modules 7:hisi_zip-1.0.1-1.centos7.6 ################################# [100%] checking installed modules -
也可以按需依次安装rpm,以下以uacce-1.0.1为例
[root]rpm -ivh uacce-1.0.1-1.centos7.6.aarch64.rpm Preparing... ################################# [100%] checking installed modules Updating / installing... 1:uacce-1.0.1-1.centos7.6 ################################# [100%] modules installed -
安装libkae引擎软件包时还需要通过--prefix指定OpenSSL引擎的路径,命令与回显结果如下:
[root]rpm -ivh libkae-1.0.1-1.centos7.6.aarch64.rpm --prefix=/usr/local/lib/engines-1.1 Preparing... ################################# [100%] Updating / installing... 1:libkae-1.0.1-1.centos7.6 ################################# [100%]
-
-
步骤4 查看RPM软件是否已正常安装到系统内。
-
查看uacce是否已安装。
rpm -ql uacce /lib/modules/4.14.0-115.el7a.0.1.aarch64/extra/hisi_qm.ko /lib/modules/4.14.0-115.el7a.0.1.aarch64/extra/uacce.ko -
查看hisi_sec2、hisi_hpre、hisi_rde是否已安装。
rpm -ql hisi_sec2 hisi_hpre hisi_rde /lib/modules/4.14.0-115.el7a.0.1.aarch64/extra/hisi_sec2.ko /etc/modproe.d/hisi_sec2.conf /lib/modules/4.14.0-115.el7a.0.1.aarch64/extra/hisi_hpre.ko /etc/modproe.d/hisi_hpre.conf /lib/modules/4.14.0-115.el7a.0.1.aarch64/extra/hisi_rde.ko /etc/modproe.d/hisi_rde.conf查看hisi_zip是否已安装。
rpm -ql hisi_zip /lib/modules/4.14.0-115.el7a.0.1.aarch64/extra/hisi_zip.ko /etc/modproe.d/hisi_zip.conf -
查看安装目录下是否生成对应模块。
ls -al /lib/modules/`uname -r`/extra -rw-r--r--. 1 root root 681104 Nov 12 17:32 hisi_hpre.ko -rw-r--r--. 1 root root 618888 Nov 12 17:32 hisi_qm.ko -rw-r--r--. 1 root root 844728 Nov 12 17:32 hisi_rde.ko -rw-r--r--. 1 root root 729304 Nov 12 17:32 hisi_sec2.ko -rw-r--r--. 1 root root 396784 Nov 12 17:32 hisi_zip.ko -rw-r--r--. 1 root root 467160 Nov 12 17:32 uacce.ko -
在“/etc/modprobe.d/”目录下查看是否生成对应的配置文件。
ls -al /etc/modprobe.d/ -rw-r--r--. 1 root root 166 Oct 30 2018 firewalld-sysctls.conf -rw-r--r--. 1 root root 44 Nov 17 21:56 hisi_hpre.conf -rw-r--r--. 1 root root 43 Nov 17 21:56 hisi_rde.conf -rw-r--r--. 1 root root 61 Nov 17 21:56 hisi_sec2.conf -rw-r--r--. 1 root root 674 Jul 4 2018 tuned.conf -rw-r--r--. 1 root root 43 Nov 17 21:56 hisi_zip.conf
-
-
步骤5(可选)如果是SUSE操作系统,在加载外部
