mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
encryption key management plugin api
This commit is contained in:
@ -37,6 +37,7 @@
|
||||
#include "lock.h" // MYSQL_LOCK_IGNORE_TIMEOUT
|
||||
#include <mysql/plugin_auth.h>
|
||||
#include <mysql/plugin_password_validation.h>
|
||||
#include <mysql/plugin_encryption_key_management.h>
|
||||
#include "sql_plugin_compat.h"
|
||||
|
||||
#define REPORT_TO_LOG 1
|
||||
@ -85,7 +86,8 @@ const LEX_STRING plugin_type_names[MYSQL_MAX_PLUGIN_TYPE_NUM]=
|
||||
{ C_STRING_WITH_LEN("AUDIT") },
|
||||
{ C_STRING_WITH_LEN("REPLICATION") },
|
||||
{ C_STRING_WITH_LEN("AUTHENTICATION") },
|
||||
{ C_STRING_WITH_LEN("PASSWORD VALIDATION") }
|
||||
{ C_STRING_WITH_LEN("PASSWORD VALIDATION") },
|
||||
{ C_STRING_WITH_LEN("ENCRYPTION KEY MANAGEMENT") }
|
||||
};
|
||||
|
||||
extern int initialize_schema_table(st_plugin_int *plugin);
|
||||
@ -94,6 +96,9 @@ extern int finalize_schema_table(st_plugin_int *plugin);
|
||||
extern int initialize_audit_plugin(st_plugin_int *plugin);
|
||||
extern int finalize_audit_plugin(st_plugin_int *plugin);
|
||||
|
||||
extern int initialize_encryption_key_management_plugin(st_plugin_int *plugin);
|
||||
extern int finalize_encryption_key_management_plugin(st_plugin_int *plugin);
|
||||
|
||||
/*
|
||||
The number of elements in both plugin_type_initialize and
|
||||
plugin_type_deinitialize should equal to the number of plugins
|
||||
@ -102,13 +107,13 @@ extern int finalize_audit_plugin(st_plugin_int *plugin);
|
||||
plugin_type_init plugin_type_initialize[MYSQL_MAX_PLUGIN_TYPE_NUM]=
|
||||
{
|
||||
0, ha_initialize_handlerton, 0, 0,initialize_schema_table,
|
||||
initialize_audit_plugin, 0, 0, 0
|
||||
initialize_audit_plugin, 0, 0, 0, initialize_encryption_key_management_plugin
|
||||
};
|
||||
|
||||
plugin_type_init plugin_type_deinitialize[MYSQL_MAX_PLUGIN_TYPE_NUM]=
|
||||
{
|
||||
0, ha_finalize_handlerton, 0, 0, finalize_schema_table,
|
||||
finalize_audit_plugin, 0, 0, 0
|
||||
finalize_audit_plugin, 0, 0, 0, finalize_encryption_key_management_plugin
|
||||
};
|
||||
|
||||
/*
|
||||
@ -119,7 +124,7 @@ plugin_type_init plugin_type_deinitialize[MYSQL_MAX_PLUGIN_TYPE_NUM]=
|
||||
static int plugin_type_initialization_order[MYSQL_MAX_PLUGIN_TYPE_NUM]=
|
||||
{
|
||||
MYSQL_DAEMON_PLUGIN,
|
||||
MYSQL_KEY_MANAGEMENT_PLUGIN,
|
||||
MariaDB_ENCRYPTION_KEY_MANAGEMENT_PLUGIN,
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
MYSQL_INFORMATION_SCHEMA_PLUGIN,
|
||||
MYSQL_FTPARSER_PLUGIN,
|
||||
@ -160,7 +165,8 @@ static int min_plugin_info_interface_version[MYSQL_MAX_PLUGIN_TYPE_NUM]=
|
||||
MYSQL_AUDIT_INTERFACE_VERSION,
|
||||
MYSQL_REPLICATION_INTERFACE_VERSION,
|
||||
MIN_AUTHENTICATION_INTERFACE_VERSION,
|
||||
MariaDB_PASSWORD_VALIDATION_INTERFACE_VERSION
|
||||
MariaDB_PASSWORD_VALIDATION_INTERFACE_VERSION,
|
||||
MariaDB_ENCRYPTION_KEY_MANAGEMENT_INTERFACE_VERSION
|
||||
};
|
||||
static int cur_plugin_info_interface_version[MYSQL_MAX_PLUGIN_TYPE_NUM]=
|
||||
{
|
||||
@ -172,7 +178,8 @@ static int cur_plugin_info_interface_version[MYSQL_MAX_PLUGIN_TYPE_NUM]=
|
||||
MYSQL_AUDIT_INTERFACE_VERSION,
|
||||
MYSQL_REPLICATION_INTERFACE_VERSION,
|
||||
MYSQL_AUTHENTICATION_INTERFACE_VERSION,
|
||||
MariaDB_PASSWORD_VALIDATION_INTERFACE_VERSION
|
||||
MariaDB_PASSWORD_VALIDATION_INTERFACE_VERSION,
|
||||
MariaDB_ENCRYPTION_KEY_MANAGEMENT_INTERFACE_VERSION
|
||||
};
|
||||
|
||||
static struct
|
||||
@ -1954,8 +1961,6 @@ void plugin_shutdown(void)
|
||||
if (!(plugins[i]->state & (PLUGIN_IS_UNINITIALIZED | PLUGIN_IS_FREED |
|
||||
PLUGIN_IS_DISABLED)))
|
||||
{
|
||||
sql_print_warning("Plugin '%s' will be forced to shutdown",
|
||||
plugins[i]->name.str);
|
||||
/*
|
||||
We are forcing deinit on plugins so we don't want to do a ref_count
|
||||
check until we have processed all the plugins.
|
||||
|
Reference in New Issue
Block a user