MySQL 9.5.0
Source Code Documentation
my_ssl_algo_cache.h
Go to the documentation of this file.
1/* Copyright (c) 2024, 2025, Oracle and/or its affiliates.
2
3This program is free software; you can redistribute it and/or modify
4it under the terms of the GNU General Public License, version 2.0,
5as published by the Free Software Foundation.
6
7This program is designed to work with certain software (including
8but not limited to OpenSSL) that is licensed under separate terms,
9as designated in a particular file or component or in included license
10documentation. The authors of MySQL hereby grant you an additional
11permission to link the program and your derivative works with the
12separately licensed software that they have either included with
13the program or referenced in the documentation.
14
15This program is distributed in the hope that it will be useful,
16but WITHOUT ANY WARRANTY; without even the implied warranty of
17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18GNU General Public License, version 2.0, for more details.
19
20You should have received a copy of the GNU General Public License
21along with this program; if not, write to the Free Software
22Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
23
24/**
25 @file include/my_ssl_algo_cache.h
26*/
27
28#ifndef INCLUDE_MY_SSL_ALGO_CACHE_H_
29#define INCLUDE_MY_SSL_ALGO_CACHE_H_
30
31#include <openssl/evp.h> // IWYU pragma: export
32// IWYU pragma: no_include <openssl/types.h>
33
34// cache algorithm pointers to improve OpenSSL 3.x performance
35// (only cached for server code, passthrough to method call on client)
36
37const EVP_MD *my_EVP_sha1();
38const EVP_MD *my_EVP_sha224();
39const EVP_MD *my_EVP_sha256();
40const EVP_MD *my_EVP_sha384();
41const EVP_MD *my_EVP_sha512();
42
43// DES-EDE3-CBC was deliberately not cached here
44const EVP_CIPHER *my_EVP_aes_128_ecb();
45const EVP_CIPHER *my_EVP_aes_128_cbc();
46const EVP_CIPHER *my_EVP_aes_128_cfb1();
47const EVP_CIPHER *my_EVP_aes_128_cfb8();
48const EVP_CIPHER *my_EVP_aes_128_cfb128();
49const EVP_CIPHER *my_EVP_aes_128_ofb();
50const EVP_CIPHER *my_EVP_aes_192_ecb();
51const EVP_CIPHER *my_EVP_aes_192_cbc();
52const EVP_CIPHER *my_EVP_aes_192_cfb1();
53const EVP_CIPHER *my_EVP_aes_192_cfb8();
54const EVP_CIPHER *my_EVP_aes_192_cfb128();
55const EVP_CIPHER *my_EVP_aes_192_ofb();
56const EVP_CIPHER *my_EVP_aes_256_ecb();
57const EVP_CIPHER *my_EVP_aes_256_cbc();
58const EVP_CIPHER *my_EVP_aes_256_cfb1();
59const EVP_CIPHER *my_EVP_aes_256_cfb8();
60const EVP_CIPHER *my_EVP_aes_256_cfb128();
61const EVP_CIPHER *my_EVP_aes_256_ofb();
62const EVP_CIPHER *my_EVP_aes_256_xts();
63const EVP_CIPHER *my_EVP_aes_256_wrap();
64const EVP_CIPHER *my_EVP_aes_256_ctr();
65
69
70#endif // INCLUDE_MY_SSL_ALGO_CACHE_H_
const EVP_CIPHER * my_EVP_aes_256_ofb()
Definition: my_ssl_algo_cache.cc:249
const EVP_MD * my_EVP_sha512()
Definition: my_ssl_algo_cache.cc:105
const EVP_CIPHER * my_EVP_aes_256_ecb()
Definition: my_ssl_algo_cache.cc:209
const EVP_MD * my_EVP_sha1()
Definition: my_ssl_algo_cache.cc:73
const EVP_CIPHER * my_EVP_aes_192_cfb8()
Definition: my_ssl_algo_cache.cc:185
const EVP_CIPHER * my_EVP_aes_256_wrap()
Definition: my_ssl_algo_cache.cc:265
const EVP_CIPHER * my_EVP_aes_192_ofb()
Definition: my_ssl_algo_cache.cc:201
const EVP_CIPHER * my_EVP_aes_128_cfb128()
Definition: my_ssl_algo_cache.cc:145
const EVP_CIPHER * my_EVP_aes_256_cfb8()
Definition: my_ssl_algo_cache.cc:233
const EVP_CIPHER * my_EVP_aes_192_cbc()
Definition: my_ssl_algo_cache.cc:169
const EVP_CIPHER * my_EVP_aes_128_cbc()
Definition: my_ssl_algo_cache.cc:121
const EVP_CIPHER * my_EVP_aes_192_ecb()
Definition: my_ssl_algo_cache.cc:161
const EVP_CIPHER * my_EVP_aes_256_xts()
Definition: my_ssl_algo_cache.cc:257
void my_ssl_algorithm_cache_unload()
Definition: my_ssl_algo_cache.cc:377
const EVP_CIPHER * my_EVP_aes_192_cfb128()
Definition: my_ssl_algo_cache.cc:193
const EVP_CIPHER * my_EVP_aes_128_cfb1()
Definition: my_ssl_algo_cache.cc:129
const EVP_CIPHER * my_EVP_aes_128_cfb8()
Definition: my_ssl_algo_cache.cc:137
const EVP_CIPHER * my_EVP_aes_192_cfb1()
Definition: my_ssl_algo_cache.cc:177
const EVP_CIPHER * my_EVP_aes_256_ctr()
Definition: my_ssl_algo_cache.cc:273
const EVP_CIPHER * my_EVP_aes_256_cbc()
Definition: my_ssl_algo_cache.cc:217
int my_get_fips_mode()
Definition: my_ssl_algo_cache.cc:438
const EVP_CIPHER * my_EVP_aes_256_cfb128()
Definition: my_ssl_algo_cache.cc:241
const EVP_CIPHER * my_EVP_aes_128_ofb()
Definition: my_ssl_algo_cache.cc:153
const EVP_MD * my_EVP_sha256()
Definition: my_ssl_algo_cache.cc:89
const EVP_CIPHER * my_EVP_aes_256_cfb1()
Definition: my_ssl_algo_cache.cc:225
void my_ssl_algorithm_cache_load()
Definition: my_ssl_algo_cache.cc:281
const EVP_MD * my_EVP_sha384()
Definition: my_ssl_algo_cache.cc:97
const EVP_CIPHER * my_EVP_aes_128_ecb()
Definition: my_ssl_algo_cache.cc:113
const EVP_MD * my_EVP_sha224()
Definition: my_ssl_algo_cache.cc:81