如何配置openssl的默认后端引擎?

时间:2012-10-16 08:38:18

标签: openssl cryptography backend

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

time openssl speed -evp aes-128-cbc -engine cryptodev

产生“正确”的数字,但ProFTP(也使用OpenSSL)在使用时没有显示任何性能提升(FTP安全,FTPS,无论你怎么称呼它)。

引擎支持AES-128,AES-192,RC4,SHA-1,DES,Triple-DES和其他一些。

我的/etc/ssl/openssl.cnf看起来像这样:

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

[engine_section]
cryptodev = cryptodev_section

[cryptodev_section]
default_algorithms = ALL

我查看了代码,但是他们使用定义,重新定义,取消定义,结合原型使得追踪成为一种痛苦...... [/ p>

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

1 个答案:

答案 0 :(得分:1)

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


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

ENGINE_load_builtin_engines();

接着是

ENGINE_register_all_complete();

如果您有ENGINE*,那么您可以执行以下操作:

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

我不知道有关这个问题的任何好文件,但我没有检查过Viega,Massier和Chandra的书。我们中的一些人正在Libcrypto API的OpenSSL wiki谈话页面上讨论它。