9

私は OpenSSL を cryptodev サポート (つまりハードウェア アクセラレーション) でコンパイルしましたが、残念ながらデフォルトのエンジンはまだソフトウェアです。

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

私はコードを調べましたが、それらは定義、再定義、未定義を使用して厄介なことを行い、プロトタイプと組み合わせてトレースを苦痛にします...

上記が正しい場合、ユーザーが CTX_SSL などを作成したときにエンジンを初期化するために呼び出されるルーチンはどれですか?

4

1 に答える 1

2

OpenSSL の config(5)によると、「コマンド default_algorithms は、エンジンが関数 ENGINE_set_default_string() を使用して提供するデフォルトのアルゴリズムを設定します」。「ALL」が有効なエンジンだとは思いません。engine_idtoを指定してみてください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 トーク ページでそれについて議論していました。

于 2013-10-02T09:56:02.047 に答える