# man > openssl-speed(1)

> **TLDR:** Benchmark OpenSSL algorithms.
>
- Benchmark all available algorithms:
  `openssl speed`
- Benchmark the most common algorithms:
  `openssl speed {{md5 sha1 sha256 aes rsa}}`
- Benchmark a specific EVP cipher:
  `openssl speed -evp {{aes-256-cbc}}`
- Benchmark algorithms for a specific duration (in seconds):
  `openssl speed -seconds {{10}}`
- Benchmark using wall-clock time instead of CPU user time:
  `openssl speed -elapsed`
- Output in machine readable format:
  `openssl speed -mr`
- Benchmark multiple algorithms in parallel using all available CPU cores:
  `openssl speed -multi $(nproc)`

*Source: tldr-pages*

---

[OPENSSL-SPEED(1SSL)](https://www.chedong.com/phpMan.php/man/OPENSSL-SPEED/1SSL/markdown)                            OpenSSL                           [OPENSSL-SPEED(1SSL)](https://www.chedong.com/phpMan.php/man/OPENSSL-SPEED/1SSL/markdown)



## NAME
       openssl-speed - test library performance

## SYNOPSIS
       **openssl** **speed** [**-help**] [**-elapsed**] [**-evp** _algo_] [**-hmac** _algo_] [**-cmac** _algo_] [**-mb**] [**-aead**] [**-multi**
       _num_] [**-async**___**jobs** _num_] [**-misalign** _num_] [**-decrypt**] [**-primes** _num_] [**-seconds** _num_] [**-bytes** _num_]
       [**-mr**] [**-rand** _files_] [**-writerand** _file_] [**-engine** _id_] [**-provider** _name_] [**-provider-path** _path_]
       [**-propquery** _propq_] [_algorithm_ ...]

## DESCRIPTION
       This command is used to test the performance of cryptographic algorithms.

## OPTIONS
### -help
           Print out a usage message.

### -elapsed
           When calculating operations- or bytes-per-second, use wall-clock time instead of CPU user
           time as divisor. It can be useful when testing speed of hardware engines.

### -evp
           Use the specified cipher or message digest algorithm via the EVP interface.  If _algo_ is
           an AEAD cipher, then you can pass **-aead** to benchmark a TLS-like sequence. And if _algo_ is
           a multi-buffer capable cipher, e.g.  aes-128-cbc-hmac-sha1, then **-mb** will time multi-
           buffer operation.

           To see the algorithms supported with this option, use "openssl list -digest-algorithms"
           or "openssl list -cipher-algorithms" command.

### -multi
           Run multiple operations in parallel.

### -async
           Enable async mode and start specified number of jobs.

### -misalign
           Misalign the buffers by the specified number of bytes.

### -hmac
           Time the HMAC algorithm using the specified message digest.

### -cmac
           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

### -aead
           Benchmark EVP-named AEAD cipher in TLS-like sequence.

### -primes
           Generate a _num_-prime RSA key and use it to run the benchmarks. This option is only
           effective if RSA algorithm is specified to test.

### -seconds
           Run benchmarks for _num_ seconds.

### -bytes
           Run benchmarks on _num_-byte buffers. Affects ciphers, digests and the CSPRNG.  The limit
           on the size of the buffer is INT_MAX - 64 bytes, which for a 32-bit int would be
           2147483583 bytes.

### -mr

### -rand -writerand
           See "Random State Options" in [**openssl**(1)](https://www.chedong.com/phpMan.php/man/openssl/1/markdown) for details.

### -engine
           See "Engine Options" in [**openssl**(1)](https://www.chedong.com/phpMan.php/man/openssl/1/markdown).  This option is deprecated.

### -provider
### -provider-path
### -propquery
           See "Provider Options" in [**openssl**(1)](https://www.chedong.com/phpMan.php/man/openssl/1/markdown), [**provider**(7)](https://www.chedong.com/phpMan.php/man/provider/7/markdown), and [**property**(7)](https://www.chedong.com/phpMan.php/man/property/7/markdown).

       _algorithm_ ...
           If any _algorithm_ is given, then those algorithms are tested, otherwise a pre-compiled
           grand selection is tested.

## BUGS
       The _algorithm_ can be selected only from a pre-compiled subset of things that the "openssl
       speed" command knows about. To test any additional digest or cipher algorithm supported by
       OpenSSL use the "-evp" option.

       There is no way to test the speed of any additional public key algorithms supported by third
       party providers with the "openssl speed" command.

## HISTORY
       The **-engine** option was deprecated in OpenSSL 3.0.

## COPYRIGHT
       Copyright 2000-2022 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>>.



3.0.2                                        2026-06-02                          [OPENSSL-SPEED(1SSL)](https://www.chedong.com/phpMan.php/man/OPENSSL-SPEED/1SSL/markdown)
