OPENSSL-SPEED(1ossl)
π openssl-speed(1ossl) π
okay so bestie, welcome to openssl-speed, the glow-up of a manual page from the OpenSSL fam (the 1ossl manual section, iykyk) β and honestly? it's giving "let's benchmark literally everything" energy. π
β¨ 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 πΈ
so this command is the vibe check for your crypto β it tests the performance of cryptographic algorithms. literally just "how fast does this go" but for ciphers and digests. no cap, it's the main character of benchmarking. π₯
π OPTIONS π
okay bestie, buckle up, there are a LOT of these and each one is iconic in its own way:
-helpβ prints out a usage message. the "what do I even do here" button. π«Ά-config filenameβ specifies the configuration file to use. it's optional; for a description of the default value, see "COMMAND SUMMARY" inopenssl(1). β¨-elapsedβ when calculating operations- or bytes-per-second, use wall-clock time instead of CPU user time as divisor. lowkey useful when you're testing the speed of hardware engines. β°-evp algoβ use the specified cipher or message digest algorithm via the EVP interface. if algo is an AEAD cipher, then you can pass-aeadto benchmark a TLS-like sequence. and if algo is a multi-buffer capable cipher, e.g.aes-128-cbc-hmac-sha1, then-mbwill time multi-buffer operation. π«
to see the algorithms supported with this option, use the openssl list -digest-algorithms or openssl list -cipher-algorithms command. iykyk.
-multi numβ run multiple operations in parallel. multitasking slay. πββοΈπββοΈ-async_jobs numβ enable async mode and start specified number of jobs. π-misalign numβ misalign the buffers by the specified number of bytes. chaos but on purpose. π-hmac digestβ time the HMAC algorithm using the specified message digest. π-cmac cipherβ time the CMAC algorithm using the specified cipher, e.g.openssl speed -cmac aes128. π-decryptβ time the decryption instead of encryption. affects only the EVP testing. π-mbβ enable multi-block mode on EVP-named cipher. β¨-aeadβ benchmark EVP-named AEAD cipher in TLS-like sequence. π‘οΈ-kem-algorithmsβ benchmark KEM algorithms: key generation, encapsulation, decapsulation. the whole trilogy, honestly. π-signature-algorithmsβ benchmark signature algorithms: key generation, signature, verification. π«-primes numβ generate a num-prime RSA key and use it to run the benchmarks. this option is only effective if the RSA algorithm is specified to test. π’-seconds numβ run benchmarks for num seconds. β±οΈ-bytes numβ run benchmarks on num-byte buffers. affects ciphers, digests and the CSPRNG. the limit on the size of the buffer isINT_MAX - 64bytes, which for a 32-bit int would be2147483583bytes. so like, don't get too ambitious. π-mrβ produce the summary in a mechanical, machine-readable, format. for when your script is the one reading it, not you. π€-mlockβ lock memory into RAM for more deterministic measurements. no swapping, no drama. π-testmodeβ runs the speed command in testmode. runs only 1 iteration of each algorithm test regardless of any-secondsvalue. in the event that any operation fails then the speed command will return with a failure result. short and sweet. β‘-rand files,-writerand fileβ see "Random State Options" inopenssl(1)for details. π²-engine idβ see "Engine Options" inopenssl(1). this option is deprecated. π like, it's still here but pls don't.-provider name-provider-path path-provparam [name:]key=value-propquery propqβ see "Provider Options" inopenssl(1),provider(7), andproperty(7). πalgorithm ...β if any algorithm is given, then those algorithms are tested, otherwise a pre-compiled grand selection is tested. the "surprise me" default, basically. π
π BUGS π
ngl, there are some limits and you should know about them:
- the algorithm can be selected only from a pre-compiled subset of things that the
openssl speedcommand knows about. to test any additional digest or cipher algorithm supported by OpenSSL use the-evpoption. π - there is no way to test the speed of any additional public key algorithms supported by third party providers with the
openssl speedcommand. yeah. it's giving "closed guest list". π
β HISTORY β
the lore, bestie:
- 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 whole page, bestie β mwah π this was 3.5.9, dated 2026-09-29, OPENSSL-SPEED(1ossl), and honestly it ate. periodt. πβ¨π«Ά
π¦ where this page comes from
- alpine 3.23: openssl-doc 3.5.9-r0 Β· Apache-2.0
- alpine 3.24: openssl-doc 3.5.9-r0 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms