1 | =pod
|
---|
2 | {- OpenSSL::safe::output_do_not_edit_headers(); -}
|
---|
3 |
|
---|
4 | =head1 NAME
|
---|
5 |
|
---|
6 | openssl-speed - test library performance
|
---|
7 |
|
---|
8 | =head1 SYNOPSIS
|
---|
9 |
|
---|
10 | B<openssl speed>
|
---|
11 | [B<-help>]
|
---|
12 | [B<-config> I<filename>]
|
---|
13 | [B<-elapsed>]
|
---|
14 | [B<-evp> I<algo>]
|
---|
15 | [B<-hmac> I<algo>]
|
---|
16 | [B<-cmac> I<algo>]
|
---|
17 | [B<-mb>]
|
---|
18 | [B<-aead>]
|
---|
19 | [B<-multi> I<num>]
|
---|
20 | [B<-async_jobs> I<num>]
|
---|
21 | [B<-misalign> I<num>]
|
---|
22 | [B<-decrypt>]
|
---|
23 | [B<-primes> I<num>]
|
---|
24 | [B<-seconds> I<num>]
|
---|
25 | [B<-bytes> I<num>]
|
---|
26 | [B<-mr>]
|
---|
27 | [B<-mlock>]
|
---|
28 | {- $OpenSSL::safe::opt_r_synopsis -}
|
---|
29 | {- $OpenSSL::safe::opt_engine_synopsis -}{- $OpenSSL::safe::opt_provider_synopsis -}
|
---|
30 | [I<algorithm> ...]
|
---|
31 |
|
---|
32 | =head1 DESCRIPTION
|
---|
33 |
|
---|
34 | This command is used to test the performance of cryptographic algorithms.
|
---|
35 |
|
---|
36 | =head1 OPTIONS
|
---|
37 |
|
---|
38 | =over 4
|
---|
39 |
|
---|
40 | =item B<-help>
|
---|
41 |
|
---|
42 | Print out a usage message.
|
---|
43 |
|
---|
44 | =item B<-config> I<filename>
|
---|
45 |
|
---|
46 | Specifies the configuration file to use.
|
---|
47 | Optional; for a description of the default value,
|
---|
48 | see L<openssl(1)/COMMAND SUMMARY>.
|
---|
49 |
|
---|
50 | =item B<-elapsed>
|
---|
51 |
|
---|
52 | When calculating operations- or bytes-per-second, use wall-clock time
|
---|
53 | instead of CPU user time as divisor. It can be useful when testing speed
|
---|
54 | of hardware engines.
|
---|
55 |
|
---|
56 | =item B<-evp> I<algo>
|
---|
57 |
|
---|
58 | Use the specified cipher or message digest algorithm via the EVP interface.
|
---|
59 | If I<algo> is an AEAD cipher, then you can pass B<-aead> to benchmark a
|
---|
60 | TLS-like sequence. And if I<algo> is a multi-buffer capable cipher, e.g.
|
---|
61 | aes-128-cbc-hmac-sha1, then B<-mb> will time multi-buffer operation.
|
---|
62 |
|
---|
63 | To see the algorithms supported with this option, use
|
---|
64 | C<openssl list -digest-algorithms> or C<openssl list -cipher-algorithms>
|
---|
65 | command.
|
---|
66 |
|
---|
67 | =item B<-multi> I<num>
|
---|
68 |
|
---|
69 | Run multiple operations in parallel.
|
---|
70 |
|
---|
71 | =item B<-async_jobs> I<num>
|
---|
72 |
|
---|
73 | Enable async mode and start specified number of jobs.
|
---|
74 |
|
---|
75 | =item B<-misalign> I<num>
|
---|
76 |
|
---|
77 | Misalign the buffers by the specified number of bytes.
|
---|
78 |
|
---|
79 | =item B<-hmac> I<digest>
|
---|
80 |
|
---|
81 | Time the HMAC algorithm using the specified message digest.
|
---|
82 |
|
---|
83 | =item B<-cmac> I<cipher>
|
---|
84 |
|
---|
85 | Time the CMAC algorithm using the specified cipher e.g.
|
---|
86 | C<openssl speed -cmac aes128>.
|
---|
87 |
|
---|
88 | =item B<-decrypt>
|
---|
89 |
|
---|
90 | Time the decryption instead of encryption. Affects only the EVP testing.
|
---|
91 |
|
---|
92 | =item B<-mb>
|
---|
93 |
|
---|
94 | Enable multi-block mode on EVP-named cipher.
|
---|
95 |
|
---|
96 | =item B<-aead>
|
---|
97 |
|
---|
98 | Benchmark EVP-named AEAD cipher in TLS-like sequence.
|
---|
99 |
|
---|
100 | =item B<-primes> I<num>
|
---|
101 |
|
---|
102 | Generate a I<num>-prime RSA key and use it to run the benchmarks. This option
|
---|
103 | is only effective if RSA algorithm is specified to test.
|
---|
104 |
|
---|
105 | =item B<-seconds> I<num>
|
---|
106 |
|
---|
107 | Run benchmarks for I<num> seconds.
|
---|
108 |
|
---|
109 | =item B<-bytes> I<num>
|
---|
110 |
|
---|
111 | Run benchmarks on I<num>-byte buffers. Affects ciphers, digests and the CSPRNG.
|
---|
112 | The limit on the size of the buffer is INT_MAX - 64 bytes, which for a 32-bit
|
---|
113 | int would be 2147483583 bytes.
|
---|
114 |
|
---|
115 | =item B<-mr>
|
---|
116 |
|
---|
117 | Produce the summary in a mechanical, machine-readable, format.
|
---|
118 |
|
---|
119 | =item B<-mlock>
|
---|
120 |
|
---|
121 | Lock memory into RAM for more deterministic measurements.
|
---|
122 |
|
---|
123 | {- $OpenSSL::safe::opt_r_item -}
|
---|
124 |
|
---|
125 | {- $OpenSSL::safe::opt_engine_item -}
|
---|
126 |
|
---|
127 | {- $OpenSSL::safe::opt_provider_item -}
|
---|
128 |
|
---|
129 | =item I<algorithm> ...
|
---|
130 |
|
---|
131 | If any I<algorithm> is given, then those algorithms are tested, otherwise a
|
---|
132 | pre-compiled grand selection is tested.
|
---|
133 |
|
---|
134 | =back
|
---|
135 |
|
---|
136 | =head1 BUGS
|
---|
137 |
|
---|
138 | The I<algorithm> can be selected only from a pre-compiled subset of things
|
---|
139 | that the C<openssl speed> command knows about. To test any additional digest
|
---|
140 | or cipher algorithm supported by OpenSSL use the C<-evp> option.
|
---|
141 |
|
---|
142 | There is no way to test the speed of any additional public key algorithms
|
---|
143 | supported by third party providers with the C<openssl speed> command.
|
---|
144 |
|
---|
145 | =head1 HISTORY
|
---|
146 |
|
---|
147 | The B<-engine> option was deprecated in OpenSSL 3.0.
|
---|
148 |
|
---|
149 | =head1 COPYRIGHT
|
---|
150 |
|
---|
151 | Copyright 2000-2022 The OpenSSL Project Authors. All Rights Reserved.
|
---|
152 |
|
---|
153 | Licensed under the Apache License 2.0 (the "License"). You may not use
|
---|
154 | this file except in compliance with the License. You can obtain a copy
|
---|
155 | in the file LICENSE in the source distribution or at
|
---|
156 | L<https://www.openssl.org/source/license.html>.
|
---|
157 |
|
---|
158 | =cut
|
---|