OXIESEC PANEL
- Current Dir:
/
/
usr
/
include
/
mysql
/
server
/
mysql
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
07/04/2024 10:47:16 PM
rwxr-xr-x
📄
auth_dialog_client.h
2.01 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
client_plugin.h
6.18 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
plugin.h
29.17 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
plugin_audit.h
5.44 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
plugin_auth.h
5.27 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
plugin_auth_common.h
4.4 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
plugin_data_type.h
1.27 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
plugin_encryption.h
4.33 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
plugin_ftparser.h
7.65 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
plugin_function.h
1.4 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
plugin_password_validation.h
1.58 KB
06/05/2024 05:31:10 PM
rw-r--r--
📁
psi
-
07/04/2024 10:47:16 PM
rwxr-xr-x
📄
service_base64.h
2.86 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_debug_sync.h
13.18 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_encryption.h
5.52 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_encryption_scheme.h
5.51 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_json.h
4.44 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_kill_statement.h
2.02 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_logger.h
3.47 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_md5.h
2.07 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_my_crypt.h
4.07 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_my_print_error.h
2.27 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_my_snprintf.h
3.63 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_print_check_msg.h
1.52 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_progress_report.h
3.28 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_sha1.h
2.11 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_sha2.h
5.17 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_sql.h
4.57 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_thd_alloc.h
4.38 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_thd_autoinc.h
1.65 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_thd_error_context.h
3.34 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_thd_mdl.h
1.25 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_thd_rnd.h
1.86 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_thd_specifics.h
3.6 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_thd_timezone.h
2.24 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_thd_wait.h
3.61 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
service_wsrep.h
13.81 KB
06/05/2024 05:31:10 PM
rw-r--r--
📄
services.h
1.72 KB
06/05/2024 05:31:10 PM
rw-r--r--
Editing: service_encryption.h
Close
#ifndef MYSQL_SERVICE_ENCRYPTION_INCLUDED /* Copyright (c) 2015, MariaDB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ /** @file encryption service Functions to support data encryption and encryption key management. They are normally implemented in an encryption plugin, so this service connects encryption *consumers* (e.g. storage engines) to the encryption *provider* (encryption plugin). */ #ifndef MYSQL_ABI_CHECK #include <my_alloca.h> #ifdef _WIN32 #ifndef __cplusplus #define inline __inline #endif #endif #endif #ifdef __cplusplus extern "C" { #endif /* returned from encryption_key_get_latest_version() */ #define ENCRYPTION_KEY_VERSION_INVALID (~(unsigned int)0) #define ENCRYPTION_KEY_NOT_ENCRYPTED (0) #define ENCRYPTION_KEY_SYSTEM_DATA 1 #define ENCRYPTION_KEY_TEMPORARY_DATA 2 /* returned from encryption_key_get() */ #define ENCRYPTION_KEY_BUFFER_TOO_SMALL (100) #define ENCRYPTION_FLAG_DECRYPT 0 #define ENCRYPTION_FLAG_ENCRYPT 1 #define ENCRYPTION_FLAG_NOPAD 2 struct encryption_service_st { unsigned int (*encryption_key_get_latest_version_func)(unsigned int key_id); unsigned int (*encryption_key_get_func)(unsigned int key_id, unsigned int key_version, unsigned char* buffer, unsigned int* length); unsigned int (*encryption_ctx_size_func)(unsigned int key_id, unsigned int key_version); int (*encryption_ctx_init_func)(void *ctx, const unsigned char* key, unsigned int klen, const unsigned char* iv, unsigned int ivlen, int flags, unsigned int key_id, unsigned int key_version); int (*encryption_ctx_update_func)(void *ctx, const unsigned char* src, unsigned int slen, unsigned char* dst, unsigned int* dlen); int (*encryption_ctx_finish_func)(void *ctx, unsigned char* dst, unsigned int* dlen); unsigned int (*encryption_encrypted_length_func)(unsigned int slen, unsigned int key_id, unsigned int key_version); }; #ifdef MYSQL_DYNAMIC_PLUGIN extern struct encryption_service_st *encryption_service; #define encryption_key_get_latest_version(KI) encryption_service->encryption_key_get_latest_version_func(KI) #define encryption_key_get(KI,KV,K,S) encryption_service->encryption_key_get_func((KI),(KV),(K),(S)) #define encryption_ctx_size(KI,KV) encryption_service->encryption_ctx_size_func((KI),(KV)) #define encryption_ctx_init(CTX,K,KL,IV,IVL,F,KI,KV) encryption_service->encryption_ctx_init_func((CTX),(K),(KL),(IV),(IVL),(F),(KI),(KV)) #define encryption_ctx_update(CTX,S,SL,D,DL) encryption_service->encryption_ctx_update_func((CTX),(S),(SL),(D),(DL)) #define encryption_ctx_finish(CTX,D,DL) encryption_service->encryption_ctx_finish_func((CTX),(D),(DL)) #define encryption_encrypted_length(SL,KI,KV) encryption_service->encryption_encrypted_length_func((SL),(KI),(KV)) #else extern struct encryption_service_st encryption_handler; #define encryption_key_get_latest_version(KI) encryption_handler.encryption_key_get_latest_version_func(KI) #define encryption_key_get(KI,KV,K,S) encryption_handler.encryption_key_get_func((KI),(KV),(K),(S)) #define encryption_ctx_size(KI,KV) encryption_handler.encryption_ctx_size_func((KI),(KV)) #define encryption_ctx_init(CTX,K,KL,IV,IVL,F,KI,KV) encryption_handler.encryption_ctx_init_func((CTX),(K),(KL),(IV),(IVL),(F),(KI),(KV)) #define encryption_ctx_update(CTX,S,SL,D,DL) encryption_handler.encryption_ctx_update_func((CTX),(S),(SL),(D),(DL)) #define encryption_ctx_finish(CTX,D,DL) encryption_handler.encryption_ctx_finish_func((CTX),(D),(DL)) #define encryption_encrypted_length(SL,KI,KV) encryption_handler.encryption_encrypted_length_func((SL),(KI),(KV)) #endif static inline unsigned int encryption_key_id_exists(unsigned int id) { return encryption_key_get_latest_version(id) != ENCRYPTION_KEY_VERSION_INVALID; } static inline unsigned int encryption_key_version_exists(unsigned int id, unsigned int version) { unsigned int unused; return encryption_key_get(id, version, NULL, &unused) != ENCRYPTION_KEY_VERSION_INVALID; } static inline int encryption_crypt(const unsigned char* src, unsigned int slen, unsigned char* dst, unsigned int* dlen, const unsigned char* key, unsigned int klen, const unsigned char* iv, unsigned int ivlen, int flags, unsigned int key_id, unsigned int key_version) { void *ctx= alloca(encryption_ctx_size(key_id, key_version)); int res1, res2; unsigned int d1, d2; if ((res1= encryption_ctx_init(ctx, key, klen, iv, ivlen, flags, key_id, key_version))) return res1; res1= encryption_ctx_update(ctx, src, slen, dst, &d1); res2= encryption_ctx_finish(ctx, dst + d1, &d2); *dlen= d1 + d2; return res1 ? res1 : res2; } #ifdef __cplusplus } #endif #define MYSQL_SERVICE_ENCRYPTION_INCLUDED #endif