SkillAgentSearch skills...

KAE

A high-performance hardware acceleration algorithm library of OpenSSL engine based on Kunpeng processor

Install / Use

/learn @kunpengcompute/KAE
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

当前KAE组件将原驱动仓、加密仓、压缩仓归一,统一编排在KAE仓(原来加密仓);并且针对不同的内核版本,将代码分为了kae1分支(4.19内核)和kae2分支(5.10内核)。 1.3.11及历史版本代码和发行包可在原驱动仓、加密仓、压缩仓下载。

原驱动仓KAEdriver 原加密仓KAE 原压缩仓KAEzip

现KAE仓


一、背景及规格

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包安装、源码安装三种方式。

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操作系统,在加载外部

View on GitHub
GitHub Stars44
CategoryDevelopment
Updated1mo ago
Forks29

Languages

C

Security Score

90/100

Audited on Feb 3, 2026

No findings