]> git.ipfire.org Git - thirdparty/openssl.git/blame - doc/man3/EVP_aes.pod
Synchronize man3 EVP cipher list with existing implementations, adding:
[thirdparty/openssl.git] / doc / man3 / EVP_aes.pod
CommitLineData
8fa4d95e
RT
1=pod
2
3=head1 NAME
4
5EVP_aes_128_cbc,
6EVP_aes_192_cbc,
7EVP_aes_256_cbc,
8EVP_aes_128_cfb,
9EVP_aes_192_cfb,
10EVP_aes_256_cfb,
11EVP_aes_128_cfb1,
12EVP_aes_192_cfb1,
13EVP_aes_256_cfb1,
14EVP_aes_128_cfb8,
15EVP_aes_192_cfb8,
16EVP_aes_256_cfb8,
17EVP_aes_128_ctr,
18EVP_aes_192_ctr,
19EVP_aes_256_ctr,
20EVP_aes_128_ecb,
21EVP_aes_192_ecb,
22EVP_aes_256_ecb,
23EVP_aes_128_ofb,
24EVP_aes_192_ofb,
25EVP_aes_256_ofb,
26EVP_aes_128_cbc_hmac_sha1,
27EVP_aes_256_cbc_hmac_sha1,
28EVP_aes_128_cbc_hmac_sha256,
29EVP_aes_256_cbc_hmac_sha256,
30EVP_aes_128_ccm,
31EVP_aes_192_ccm,
32EVP_aes_256_ccm,
33EVP_aes_128_gcm,
34EVP_aes_192_gcm,
35EVP_aes_256_gcm,
36EVP_aes_128_ocb,
37EVP_aes_192_ocb,
38EVP_aes_256_ocb,
39EVP_aes_128_wrap,
40EVP_aes_192_wrap,
41EVP_aes_256_wrap,
42EVP_aes_128_wrap_pad,
43EVP_aes_192_wrap_pad,
44EVP_aes_256_wrap_pad,
45EVP_aes_128_xts,
46EVP_aes_256_xts
47- EVP AES cipher
48
49=head1 SYNOPSIS
50
51=for comment generic
52
53 #include <openssl/evp.h>
54
55 const EVP_CIPHER *EVP_ciphername(void)
56
57I<EVP_ciphername> is used a placeholder for any of the described cipher
58functions, such as I<EVP_aes_128_cbc>.
59
60=head1 DESCRIPTION
61
62The AES encryption algorithm for EVP.
63
64=over 4
65
66=item EVP_aes_128_cbc(),
67EVP_aes_192_cbc(),
68EVP_aes_256_cbc(),
69EVP_aes_128_cfb(),
70EVP_aes_192_cfb(),
71EVP_aes_256_cfb(),
72EVP_aes_128_cfb1(),
73EVP_aes_192_cfb1(),
74EVP_aes_256_cfb1(),
75EVP_aes_128_cfb8(),
76EVP_aes_192_cfb8(),
77EVP_aes_256_cfb8(),
78EVP_aes_128_ctr(),
79EVP_aes_192_ctr(),
80EVP_aes_256_ctr(),
81EVP_aes_128_ecb(),
82EVP_aes_192_ecb(),
83EVP_aes_256_ecb(),
84EVP_aes_128_ofb(),
85EVP_aes_192_ofb(),
86EVP_aes_256_ofb()
87
88AES for 128, 192 and 256 bit keys in the following modes: CBC, CFB with 128-bit
89shift, CFB with 1-bit shift, CFB with 8-bit shift, CTR, ECB, and OFB.
90
91=item EVP_aes_128_cbc_hmac_sha1(),
92EVP_aes_256_cbc_hmac_sha1()
93
94Authenticated encryption with AES in CBC mode using SHA-1 as HMAC, with keys of
95128 and 256 bits length respectively. The authentication tag is 160 bits long.
96
97WARNING: this is not intended for usage outside of TLS and requires calling of
98some undocumented ctrl functions. These ciphers do not conform to the EVP AEAD
99interface.
100
101=item EVP_aes_128_cbc_hmac_sha256(),
102EVP_aes_256_cbc_hmac_sha256()
103
104Authenticated encryption with AES in CBC mode using SHA256 (SHA-2, 256-bits) as
105HMAC, with keys of 128 and 256 bits length respectively. The authentication tag
106is 256 bits long.
107
108WARNING: this is not intended for usage outside of TLS and requires calling of
109some undocumented ctrl functions. These ciphers do not conform to the EVP AEAD
110interface.
111
112=item EVP_aes_128_ccm(),
113EVP_aes_192_ccm(),
114EVP_aes_256_ccm(),
115EVP_aes_128_gcm(),
116EVP_aes_192_gcm(),
117EVP_aes_256_gcm(),
118EVP_aes_128_ocb(),
119EVP_aes_192_ocb(),
120EVP_aes_256_ocb()
121
122AES for 128, 192 and 256 bit keys in CBC-MAC Mode (CCM), Galois Counter Mode
123(GCM) and OCB Mode respectively. These ciphers require additional control
124operations to function correctly, see the L<EVP_EncryptInit(3)/AEAD Interface>
125section for details.
126
127=item EVP_aes_128_wrap(),
128EVP_aes_192_wrap(),
129EVP_aes_256_wrap(),
130EVP_aes_128_wrap_pad(),
131EVP_aes_128_wrap(),
132EVP_aes_192_wrap(),
133EVP_aes_256_wrap(),
134EVP_aes_192_wrap_pad(),
135EVP_aes_128_wrap(),
136EVP_aes_192_wrap(),
137EVP_aes_256_wrap(),
138EVP_aes_256_wrap_pad()
139
140AES key wrap with 128, 192 and 256 bit keys, as according to RFC 3394 section
1412.2.1 ("wrap") and RFC 5649 section 4.1 ("wrap with padding") respectively.
142
143=item EVP_aes_128_xts(),
144EVP_aes_256_xts()
145
146AES XTS mode (XTS-AES) is standardized in IEEE Std. 1619-2007 and described in NIST
147SP 800-38E. The XTS (XEX-based tweaked-codebook mode with ciphertext stealing)
148mode was designed by Prof. Phillip Rogaway of University of California, Davis,
149intended for encrypting data on a storage device.
150
151XTS-AES provides confidentiality but not authentication of data. It also
152requires a key of double-length for protection of a certain key size.
153In particular, XTS-AES-128 (B<EVP_aes_128_xts>) takes input of a 256-bit key to
154achieve AES 128-bit security, and XTS-AES-256 (B<EVP_aes_256_xts>) takes input
155of a 512-bit key to achieve AES 256-bit security.
156
157=back
158
159=head1 RETURN VALUES
160
161These functions return an B<EVP_CIPHER> structure that contains the
162implementation of the symmetric cipher. See L<EVP_CIPHER_meth_new(3)> for
163details of the B<EVP_CIPHER> structure.
164
165=head1 SEE ALSO
166
167L<evp(7)>,
168L<EVP_EncryptInit(3)>,
169L<EVP_CIPHER_meth_new(3)>
170
171=head1 COPYRIGHT
172
173Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
174
175Licensed under the OpenSSL license (the "License"). You may not use
176this file except in compliance with the License. You can obtain a copy
177in the file LICENSE in the source distribution or at
178L<https://www.openssl.org/source/license.html>.
179
180=cut
181