OPENSSL-SPEED(1ossl)
π OPENSSL-SPEED(1ossl) β the OpenSSL one, bestie β¨
okay so this is openssl-speed from the OpenSSL fam, and it's literally the "how fast is my crypto tho" command. let's get into it π
β¨ NAME β¨
openssl-speed β test library performance ποΈπ¨
πΈ SYNOPSIS πΈ
openssl speed [-help] [-config filename] [-elapsed] [-evp algo] [-hmac
algo] [-cmac algo] [-mb] [-aead] [-kem-algorithms]
[-signature-algorithms] [-multi num] [-async_jobs num] [-misalign num]
[-decrypt] [-primes num] [-seconds num] [-bytes num] [-mr] [-mlock]
[-testmode] [-rand files] [-writerand file] [-engine id] [-provider
name] [-provider-path path] [-provparam [name:]key=value] [-propquery
propq] [algorithm ...]
π¦ DESCRIPTION π¦
bestie. this command tests how fast your cryptographic algorithms go. that's it, that's the vibe. speed. performance. numbers. β¨
π OPTIONS π
-helpβ prints out a usage message so you're not just guessing. π«Ά-config filenameβ tells it which config file to use. it's optional! for what the default actually is, go peek at"COMMAND SUMMARY"inopenssl(1). iykyk. π-elapsedβ when it's doing the ops-per-second or bytes-per-second math, this makes it divide by wall-clock time instead of CPU user time. highkey useful when you're testing the speed of hardware engines. β±οΈ-evp algoβ use the cipher or message digest algorithm you name, via the EVP interface. ok so two cute extras here: if algo is an AEAD cipher, you can pass-aeadto benchmark a TLS-like sequence. and if algo is a multi-buffer capable cipher (likeaes-128-cbc-hmac-sha1, for example), then-mbwill time multi-buffer operation. π
to actually see which algorithms this option supports, run openssl list -digest-algorithms or openssl list -cipher-algorithms. π
-multi numβ runs multiple operations in parallel. multitasking icon behavior. π§-async_jobs numβ turns on async mode and starts the number of jobs you specify. π¨-misalign numβ misaligns the buffers by however many bytes you say. chaos, but make it scientific. π-hmac digestβ times the HMAC algorithm using the message digest you give it. π-cmac cipherβ times the CMAC algorithm using the cipher you give it, e.g.openssl speed -cmac aes128. π-decryptβ times decryption instead of encryption. only affects the EVP testing, so don't expect it to change everything. π-mbβ enables multi-block mode on an EVP-named cipher. π§±-aeadβ benchmarks an EVP-named AEAD cipher in a TLS-like sequence. π-kem-algorithmsβ benchmarks KEM algorithms: key generation, encapsulation, decapsulation. the whole trilogy. β-signature-algorithmsβ benchmarks signature algorithms: key generation, signature, verification. also a trilogy. π₯-primes numβ generates a num-prime RSA key and uses it to run the benchmarks. heads up: this option is only effective if RSA algorithm is specified to test. π―-seconds numβ runs benchmarks for num seconds. patience is a vibe. β³-bytes numβ runs benchmarks on num-byte buffers. affects ciphers, digests and the CSPRNG. and the limit on the buffer size isINT_MAX - 64bytes β which, for a 32-bit int, would be2147483583bytes. don't say i didn't warn you π-mrβ produces the summary in a mechanical, machine-readable format. for the robots. π€-mlockβ locks memory into RAM for more deterministic measurements. commitment issues? none. π-testmodeβ runs the speed command in testmode. it runs only 1 iteration of each algorithm test, no matter what-secondsvalue you passed. and if any operation fails, then the speed command returns with a failure result. no cap. π¨-rand files,-writerand fileβ see"Random State Options"inopenssl(1)for the deets. π²-engine idβ see"Engine Options"inopenssl(1). also, fair warning: this option is deprecated. β οΈ-provider name-provider-path path-provparam [name:]key=value-propquery propqβ see"Provider Options"inopenssl(1),provider(7), andproperty(7). πalgorithm ...β if you pass any algorithm(s), then those specific algorithms get tested. otherwise? a pre-compiled grand selection gets tested instead. a little surprise, as a treat π
π BUGS π
ok so the algorithm can only be selected from a pre-compiled subset of things that the openssl speed command already knows about. want to test any additional digest or cipher algorithm that OpenSSL supports? use the -evp option. that's the workaround, bestie.
and there's no way to test the speed of any additional public key algorithms that third party providers support with the openssl speed command. literally not possible. π
π HISTORY π
- the
-engineoption was deprecated in OpenSSL 3.0. DSA512was removed in OpenSSL 3.2.- the
-testmodeoption was added in OpenSSL 3.4.
π COPYRIGHT π
Copyright 2000-2024 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>.
and that's the page, bestie π«Ά this was version 3.5.0 of the OpenSSL era and it was last touched on 2026-09-25 β go forth and benchmark slay π
β¨πΈ
π¦ where this page comes from
- opensuse-leap 16.0: openssl-3 3.5.0-160000.11.1 Β· Apache-2.0
- opensuse-leap 16.0: openssl-3 3.5.0-160000.11.1 Β· Apache-2.0
- opensuse-leap 16.0: openssl-3 3.5.0-160000.11.1 Β· Apache-2.0
- opensuse-leap 16.0: openssl-3 3.5.0-160000.11.1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms