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