29 EVP_aes_128_cbc_hmac_sha1,
30 EVP_aes_256_cbc_hmac_sha1,
31 EVP_aes_128_cbc_hmac_sha256,
32 EVP_aes_256_cbc_hmac_sha256,
56 #include <openssl/evp.h>
58 const EVP_CIPHER *EVP_ciphername(void)
60 I<EVP_ciphername> is used a placeholder for any of the described cipher
61 functions, such as I<EVP_aes_128_cbc>.
65 The AES encryption algorithm for EVP.
69 =item EVP_aes_128_cbc(),
94 AES for 128, 192 and 256 bit keys in the following modes: CBC, CFB with 128-bit
95 shift, CFB with 1-bit shift, CFB with 8-bit shift, CTR, ECB, and OFB.
97 =item EVP_aes_128_cbc_hmac_sha1(),
98 EVP_aes_256_cbc_hmac_sha1()
100 Authenticated encryption with AES in CBC mode using SHA-1 as HMAC, with keys of
101 128 and 256 bits length respectively. The authentication tag is 160 bits long.
103 WARNING: this is not intended for usage outside of TLS and requires calling of
104 some undocumented ctrl functions. These ciphers do not conform to the EVP AEAD
107 =item EVP_aes_128_cbc_hmac_sha256(),
108 EVP_aes_256_cbc_hmac_sha256()
110 Authenticated encryption with AES in CBC mode using SHA256 (SHA-2, 256-bits) as
111 HMAC, with keys of 128 and 256 bits length respectively. The authentication tag
114 WARNING: this is not intended for usage outside of TLS and requires calling of
115 some undocumented ctrl functions. These ciphers do not conform to the EVP AEAD
118 =item EVP_aes_128_ccm(),
128 AES for 128, 192 and 256 bit keys in CBC-MAC Mode (CCM), Galois Counter Mode
129 (GCM) and OCB Mode respectively. These ciphers require additional control
130 operations to function correctly, see the L<EVP_EncryptInit(3)/AEAD Interface>
133 =item EVP_aes_128_wrap(),
136 EVP_aes_128_wrap_pad(),
140 EVP_aes_192_wrap_pad(),
144 EVP_aes_256_wrap_pad()
146 AES key wrap with 128, 192 and 256 bit keys, as according to RFC 3394 section
147 2.2.1 ("wrap") and RFC 5649 section 4.1 ("wrap with padding") respectively.
149 =item EVP_aes_128_xts(),
152 AES XTS mode (XTS-AES) is standardized in IEEE Std. 1619-2007 and described in NIST
153 SP 800-38E. The XTS (XEX-based tweaked-codebook mode with ciphertext stealing)
154 mode was designed by Prof. Phillip Rogaway of University of California, Davis,
155 intended for encrypting data on a storage device.
157 XTS-AES provides confidentiality but not authentication of data. It also
158 requires a key of double-length for protection of a certain key size.
159 In particular, XTS-AES-128 (B<EVP_aes_128_xts>) takes input of a 256-bit key to
160 achieve AES 128-bit security, and XTS-AES-256 (B<EVP_aes_256_xts>) takes input
161 of a 512-bit key to achieve AES 256-bit security.
163 The XTS implementation in OpenSSL does not support streaming. That is there must
164 only be one L<EVP_EncryptUpdate(3)> call per L<EVP_EncryptInit_ex(3)> call (and
165 similarly with the "Decrypt" functions).
167 The I<iv> parameter to L<EVP_EncryptInit_ex(3)> or L<EVP_DecryptInit_ex(3)> is
168 the XTS "tweak" value.
174 These functions return an B<EVP_CIPHER> structure that contains the
175 implementation of the symmetric cipher. See L<EVP_CIPHER_meth_new(3)> for
176 details of the B<EVP_CIPHER> structure.
181 L<EVP_EncryptInit(3)>,
182 L<EVP_CIPHER_meth_new(3)>
186 Copyright 2017-2020 The OpenSSL Project Authors. All Rights Reserved.
188 Licensed under the Apache License 2.0 (the "License"). You may not use
189 this file except in compliance with the License. You can obtain a copy
190 in the file LICENSE in the source distribution or at
191 L<https://www.openssl.org/source/license.html>.