如何使用 OpenSSL 0.9.8 在整个系统范围内使用 Intel 的 AES-NI 加速?

如何使用 OpenSSL 0.9.8 在整个系统范围内使用 Intel 的 AES-NI 加速?

我发现了以下说明,用于在我们拥有的一些基于 Westmere 的系统上获取英特尔的 contrib OpenSSL 0.9.8 引擎代码:

$ wget https://www.openssl.org/contrib/intel-accel-1.5.tar.gz
$ tar -zxvf intel-accel-1.5.tar.gz
$ cd intel-accel-1.5
$ make
$  sudo cp libintel-accel.so /usr/lib/ssl/engines/

dm@test:~$ openssl speed -evp aes-256-cbc -engine intel-accel
[...]
type         16 bytes    64 bytes   256 bytes   1024 bytes   8192 bytes
aes-256-cbc 411556.71k  552666.78k  585173.93k   590249.30k   592617.47k

dm@test:~$ openssl speed -evp aes-256-cbc # No Intel AES-NI
[...]
type         16 bytes    64 bytes   256 bytes   1024 bytes   8192 bytes
aes-256-cbc  67324.29k   98995.86k  118538.15k   123550.22k   124304.70k

我该如何编辑我的 Debian 6 机器上的 /etc/ssl/openssl.cnf 文件,以便让其他可能链接到 OpenSSL 的东西(例如 OpenSSH 5.5p1、Apache 等)默认使用此引擎?

我尝试了以下操作:

# at the top of the openssl.cnf
openssl_conf = openssl_def
[...]
# at the bottom:
[openssl_def]
engines = engine_section
[engine_section]
foo = aesni_section
[aesni_section]
dynamic_path = /usr/lib/ssl/engines/libintel-accel.so
engine_id = intel-accel
default_algorithms = ALL
init = 1

出现以下错误:

dm@test:~$ openssl speed -evp aes-256-cbc 
Error configuring OpenSSL
1645:error:26078067:engine routines:ENGINE_LIST_ADD:conflicting engine id:eng_list.c:116:
1645:error:2606906E:engine routines:ENGINE_add:internal list error:eng_list.c:288:
1645:error:260B6067:engine routines:DYNAMIC_LOAD:conflicting engine id:eng_dyn.c:540:
1645:error:260BC065:engine routines:INT_ENGINE_CONFIGURE:engine configuration error:eng_cnf.c:204:section=aesni_section, name=dynamic_path, value=/usr/lib/ssl/engines/libintel-accel.so
1645:error:0E07606D:configuration file routines:MODULE_RUN:module initialization error:conf_mod.c:235:module=engines, value=engine_section, retcode=-1      
Segmentation fault

在 config(5SSL) 中输入什么咒语才能使其成为系统默认值?

答案1

哎呀,应该更仔细地阅读 intel-accel-1.5/README:

openssl_conf = openssl_init

[openssl_init]
engines = engines_section

[engines_section]
intel-accel = intel_accel

[intel_accel]
default_algorithms = ALL

相关内容