跳至正文

Intel QAT OpenSSL Engine 编译

硬件需求

qat_hw 需求:第四代 Intel® Xeon® Scalable CPU,Intel® QuickAssist Adapter 系列,Intel Atom® C3000 CPU。

qat_sw 需求:第三代 Intel® Xeon® Scalable CPU*。

*只有Ice Lake-SP系列支持Intel QAT,Cooper Lake不支持。

系统需求

本次编译硬件平台为 Intel Xeon 6348,故使用 qat_sw 进行编译 qat_engine。

Intel® Crypto Multi-buffer library(for Asymmetric PKE) https://github.com/intel/ipp-crypto

Intel® Multi-Buffer crypto for IPsec Library https://github.com/intel/intel-ipsec-mb

OpenSSL 3.0.13(3.0.8+)

cmake >= 3.18

The Netwide Assembler(NASM)>= 2.15

Python >= 3.8.1

autoconf, automake. libtool, pkg-config

操作系统可根据自身而定,本次编译使用 Ubuntu 22.04.4

编译

安装需求件(如系统默认版本低于需求,需要自行编译安装)

				
					sudo apt -y install cmake python3 nasm autoconf automake libtool pkg-config
				
			

Github 拉取 QAT 源码

				
					git clone --depth 1 --branch v1.6.0 https://github.com/intel/QAT_Engine.git
				
			

Github 拉取 openssl,ipp-crypto, intel-ipsec-mb源码

				
					cd QAT_Engine
git clone --depth 1 --branch openssl-3.0.13 https://github.com/openssl/openssl.git
git clone --depth 1 --branch ipp-crypto_2021_11_1 https://github.com/intel/ipp-crypto.git
git clone --depth 1 --branch v1.5 https://github.com/intel/intel-ipsec-mb.git
				
			

编译 openssl 和 qat 引擎(建议最低内存需求4GB并且开启swap,调整swappiness高数值)

				
					./autogen.sh
./configure --enable-qat_sw --with-openssl_install_dir=/usr/local/ssl
make depend
make
make install
				
			

编译完成后 openssl 安装在文件夹 /usr/local/ssl,qat 引擎库文件 qatengine.so 在 /usr/local/ssl/lib64/engines-3,ipp-crypto 安装在 /usr/local,intel-ipsec-mb 安装在 /usr

查看 openssl 版本和测试 qat 引擎

				
					/usr/local/ssl/bin/openssl version -a
/usr/local/ssl/bin/openssl engine -t -c -v qatengine
				
			

输出结果:

				
					# /usr/local/ssl/bin/openssl version -a
OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024)
built on: Tue Apr  9 11:09:35 2024 UTC
platform: linux-x86_64
options:  bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
OPENSSLDIR: "/usr/local/ssl/ssl"
ENGINESDIR: "/usr/local/ssl/lib64/engines-3"
MODULESDIR: "/usr/local/ssl/lib64/ossl-modules"
Seeding source: os-specific
CPUINFO: OPENSSL_ia32cap=0xfffa32035f8bffff:0x5f46f1bf07ab

# /usr/local/ssl/bin/openssl engine -t -c -v qatengine
(qatengine) Reference implementation of QAT crypto engine(qat_sw) v1.6.0
 [RSA, id-aes128-GCM, id-aes192-GCM, id-aes256-GCM, X25519, SM2]
     [ available ]
     ENABLE_EXTERNAL_POLLING, POLL, ENABLE_HEURISTIC_POLLING, 
     GET_NUM_REQUESTS_IN_FLIGHT, INIT_ENGINE, SW_ALGO_BITMAP
				
			

附录:OpenSSL speed 工具测试 RSA 2048 加解密速度

OpenSSL speed 工具

测试QAT引擎加载与否,OpenSSL加解密速度(Intel Xeon 6348 * 2 vCPU)

更多详细内容请参考:https://github.com/intel/QAT_Engine

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据