dra*_*hnr 7 openssl cryptography backend
我编译了OpenSSL并支持cryptodev(即硬件加速),但不幸的是默认引擎仍然是软件.
time openssl speed -evp aes-128-cbc -engine cryptodev
Run Code Online (Sandbox Code Playgroud)
产生"正确"的数字,但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
Run Code Online (Sandbox Code Playgroud)
我查看了代码,但他们使用定义,重新定义,取消定义,结合原型使得跟踪变得痛苦......
如果以上是正确的,当用户创建CTX_SSL或类似的时,会调用什么例程来初始化引擎?
根据OpenSSL 的 config(5):“命令 default_algorithms 设置 ENGINE 将使用函数 ENGINE_set_default_string() 提供的默认算法”。我不相信“ALL”是一个有效的引擎。您可以尝试指定engine_idto default_algorithms。
如果您在源代码中执行此操作,请尝试调用:
ENGINE_load_builtin_engines();
Run Code Online (Sandbox Code Playgroud)
其次是
ENGINE_register_all_complete();
Run Code Online (Sandbox Code Playgroud)
如果您有ENGINE*,那么您可以执行以下操作:
ENGINE* eng = ENGINE_by_id("XXX");
ENGINE_set_default(eng, ENGINE_METHOD_ALL);
OpenSSL_add_all_algorithms();
Run Code Online (Sandbox Code Playgroud)
我不知道关于这个主题的任何好的文档,但我没有检查过 Viega、Massier 和 Chandra 的书。我们中的一些人在Libcrypto API的 OpenSSL wiki 讨论页面上讨论了它。
| 归档时间: |
|
| 查看次数: |
3774 次 |
| 最近记录: |