openssl speed
の結果からグラフ画像を生成するスクリプトです。
$ python -m venv venv
$ . venv/bin/activate
$ make env
$ python -m venv venv
$ . venv/Scripts/activate
$ make env
openssl speed
の標準出力をファイルにリダイレクトする。- ファイルをスクリプトに入力する。
- グラフのPNG画像が生成される。
s_time_ex
(オリジナルの計測用コマンド)が複数入力に対応しているので入力は1ファイルです。
$ ./s_time_ex > s_time_ex.txt
$ python openssl_graph.py handshake s_time_ex.txt
--> full.png
--> resumption.png
複数ファイルに対応しています。
$ openssl speed -elapsed -evp aes-128-gcm -seconds 10 > aes-128-gcm.txt
$ openssl speed -elapsed -evp aes-256-gcm -seconds 10 > aes-256-gcm.txt
$ openssl speed -elapsed -evp chacha20-poly1305 -seconds 10 > chacha20-poly1305.txt
$ python openssl_graph.py crypto aes-128-gcm.txt aes-256-gcm.txt chacha20-poly1305.txt
--> crypto.png
AES-NIとPCLMULQDQ命令をオフにして
$ OPENSSL_ia32cap="~0x200000200000000" openssl speed -elapsed -evp aes-128-gcm -seconds 10 > aes-128-gcm.txt
$ OPENSSL_ia32cap="~0x200000200000000" openssl speed -elapsed -evp aes-256-gcm -seconds 10 > aes-256-gcm.txt
$ OPENSSL_ia32cap="~0x200000200000000" openssl speed -elapsed -evp chacha20-poly1305 -seconds 10 > chacha20-poly1305.txt
https://ja.wikipedia.org/wiki/CLMUL_instruction_set
https://www.openssl.org/docs/man3.0/man3/OPENSSL_ia32cap.html
openssl speed
が複数入力に対応しているので入力は1ファイルです。
$ openssl speed ecdhp256 ecdhx25519 > keyex.txt
$ python openssl_graph.py keyex keyex.txt
--> keyex.png
openssl speed
が複数入力に対応しているので入力は1ファイルです。
$ openssl speed ecdsap256 ed25519 > sign_verify.txt
$ python openssl_graph.py sign_verify sign_verify.txt
--> sign_verify.png