# openssl-speed - man(1) - [phpMan]

> **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_jobs _
           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.13                                       2026-07-29                          [_OPENSSL-SPEED_(1SSL)](https://www.chedong.com/phpMan.php/man/OPENSSL-SPEED/1SSL/markdown)
