如何配置openssl';默认的后端引擎是什么?

如何配置openssl';默认的后端引擎是什么?,openssl,cryptography,backend,Openssl,Cryptography,Backend,我使用cryptodev支持(即硬件加速)编译OpenSSL,但不幸的是,默认引擎仍然是软件 time openssl speed -evp aes-128-cbc -engine cryptodev 产生“正确”的数字,但是ProFTP(也使用OpenSSL)在使用时没有显示任何性能增益(FTP-Secure,FTPS,不管你怎么称呼它) 该引擎支持AES-128、AES-192、RC4、SHA-1、DES、三重DES和其他一些 我的/etc/ssl/openssl.cnf如下所示: #..

我使用cryptodev支持(即硬件加速)编译OpenSSL,但不幸的是,默认引擎仍然是软件

time openssl speed -evp aes-128-cbc -engine cryptodev
产生“正确”的数字,但是ProFTP(也使用OpenSSL)在使用时没有显示任何性能增益(FTP-Secure,FTPS,不管你怎么称呼它)

该引擎支持AES-128、AES-192、RC4、SHA-1、DES、三重DES和其他一些

我的
/etc/ssl/openssl.cnf
如下所示:

#...
# a lot of generic stuff...
#...

[engine_section]
cryptodev = cryptodev_section

[cryptodev_section]
default_algorithms = ALL
我查看了代码,但他们在定义、重定义、未定义以及原型方面做了一些令人讨厌的事情,这让跟踪变得很痛苦

如果上述内容正确,当用户创建CTX_SSL或类似内容时,会调用什么例程来初始化引擎?

根据:“命令default_algorithms设置引擎将使用函数ENGINE_set_default_string()提供的默认算法”。我不相信“全部”是一个有效的引擎。您可以尝试将
引擎id
指定为
默认算法


如果在源代码中执行此操作,请尝试调用:

ENGINE_load_builtin_engines();

ENGINE_register_all_complete();
如果您有一个
引擎*
,则可以执行以下操作:

ENGINE* eng = ENGINE_by_id("XXX");
ENGINE_set_default(eng, ENGINE_METHOD_ALL);
OpenSSL_add_all_algorithms();

我不知道关于这个主题有什么好的文档,但我没有检查过维加、马西耶和钱德拉的书。我们中的一些人在一个OpenSSL wiki对话页面上讨论了它。

我设法使用配置单独修复了它,但我忘记了更新它,我再也无法访问包含配置的repo,无论如何,非常好的提示-旧的OpenSSL版本似乎没有
引擎设置\u默认\u密码
(来自)。在那里,您还可以看到
ALL
应该是有效的。