summaryrefslogtreecommitdiff
path: root/plugin/example_key_management
diff options
context:
space:
mode:
authorVladislav Vaintroub <wlad@mariadb.com>2017-04-18 16:37:57 +0000
committerSergei Golubchik <serg@mariadb.org>2017-04-27 19:12:38 +0200
commitdb3910741347e7d741f4a854075c248e9081d722 (patch)
treea868bb87a27eb54655e114ee24a57245060e8270 /plugin/example_key_management
parent175dd3ad5933e1ad4afb676251f323fe5527a7f1 (diff)
downloadmariadb-git-db3910741347e7d741f4a854075c248e9081d722.tar.gz
MDEV-11663 Create services for functionality used by plugins
Added service for - encryption (AES) - error reporting, e.g my_printf_error()
Diffstat (limited to 'plugin/example_key_management')
-rw-r--r--plugin/example_key_management/example_key_management_plugin.cc24
1 files changed, 21 insertions, 3 deletions
diff --git a/plugin/example_key_management/example_key_management_plugin.cc b/plugin/example_key_management/example_key_management_plugin.cc
index 2b417866406..dc1e2038dd2 100644
--- a/plugin/example_key_management/example_key_management_plugin.cc
+++ b/plugin/example_key_management/example_key_management_plugin.cc
@@ -114,14 +114,32 @@ static int example_key_management_plugin_deinit(void *p)
return 0;
}
+
+static int ctx_update(void *ctx, const unsigned char *src, unsigned int slen,
+ unsigned char *dst, unsigned int *dlen)
+{
+ return my_aes_crypt_update(ctx, src, slen, dst, dlen);
+}
+
+
+int ctx_finish(void *ctx, unsigned char *dst, unsigned int *dlen)
+{
+ return my_aes_crypt_finish(ctx, dst, dlen);
+}
+
+static uint ctx_size(unsigned int , unsigned int key_version)
+{
+ return my_aes_ctx_size(mode(key_version));
+}
+
struct st_mariadb_encryption example_key_management_plugin= {
MariaDB_ENCRYPTION_INTERFACE_VERSION,
get_latest_key_version,
get_key,
- (uint (*)(unsigned int, unsigned int))my_aes_ctx_size,
+ ctx_size,
ctx_init,
- my_aes_crypt_update,
- my_aes_crypt_finish,
+ ctx_update,
+ ctx_finish,
get_length
};