diff options
author | Sergei Golubchik <sergii@pisem.net> | 2013-07-13 17:48:06 +0200 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2013-07-13 17:48:06 +0200 |
commit | 3e9446a7426d13c8cc53937b0dc9a8ce17127ae3 (patch) | |
tree | ecca01e0ae52afde99aa9393a22a57f319fc208f /include | |
parent | 36519b8a830204f45ec4693c89b6bdb8c9c6b79b (diff) | |
download | mariadb-git-3e9446a7426d13c8cc53937b0dc9a8ce17127ae3.tar.gz |
SHA1 service
(because mysql_ssl library is built with -fvisibility=hidden)
Diffstat (limited to 'include')
-rw-r--r-- | include/mysql/plugin.h | 2 | ||||
-rw-r--r-- | include/mysql/plugin_audit.h.pp | 7 | ||||
-rw-r--r-- | include/mysql/plugin_auth.h.pp | 7 | ||||
-rw-r--r-- | include/mysql/plugin_ftparser.h.pp | 7 | ||||
-rw-r--r-- | include/mysql/service_sha1.h | 57 | ||||
-rw-r--r-- | include/mysql/services.h | 1 | ||||
-rw-r--r-- | include/service_versions.h | 6 | ||||
-rw-r--r-- | include/sha1.h | 15 |
8 files changed, 89 insertions, 13 deletions
diff --git a/include/mysql/plugin.h b/include/mysql/plugin.h index 4220e73ee11..6a3f8b5dd89 100644 --- a/include/mysql/plugin.h +++ b/include/mysql/plugin.h @@ -74,7 +74,7 @@ typedef struct st_mysql_xid MYSQL_XID; #define MYSQL_PLUGIN_INTERFACE_VERSION 0x0104 /* MariaDB plugin interface version */ -#define MARIA_PLUGIN_INTERFACE_VERSION 0x0105 +#define MARIA_PLUGIN_INTERFACE_VERSION 0x0106 /* The allowable types of plugins diff --git a/include/mysql/plugin_audit.h.pp b/include/mysql/plugin_audit.h.pp index c3ba7eec0d6..13ebf66c5c3 100644 --- a/include/mysql/plugin_audit.h.pp +++ b/include/mysql/plugin_audit.h.pp @@ -93,6 +93,13 @@ extern struct kill_statement_service_st { enum thd_kill_levels (*thd_kill_level_func)(const void*); } *thd_kill_statement_service; enum thd_kill_levels thd_kill_level(const void*); +#include <mysql/service_sha1.h> +extern struct my_sha1_service_st { + void (*my_sha1_type)(unsigned char*, const char*, size_t); + void (*my_sha1_multi_type)(unsigned char*, ...); +} *my_sha1_service; +void my_sha1(unsigned char*, const char*, size_t); +void my_sha1_multi(unsigned char*, ...); struct st_mysql_xid { long formatID; long gtrid_length; diff --git a/include/mysql/plugin_auth.h.pp b/include/mysql/plugin_auth.h.pp index 4f04d51cb52..25c56284ca2 100644 --- a/include/mysql/plugin_auth.h.pp +++ b/include/mysql/plugin_auth.h.pp @@ -93,6 +93,13 @@ extern struct kill_statement_service_st { enum thd_kill_levels (*thd_kill_level_func)(const void*); } *thd_kill_statement_service; enum thd_kill_levels thd_kill_level(const void*); +#include <mysql/service_sha1.h> +extern struct my_sha1_service_st { + void (*my_sha1_type)(unsigned char*, const char*, size_t); + void (*my_sha1_multi_type)(unsigned char*, ...); +} *my_sha1_service; +void my_sha1(unsigned char*, const char*, size_t); +void my_sha1_multi(unsigned char*, ...); struct st_mysql_xid { long formatID; long gtrid_length; diff --git a/include/mysql/plugin_ftparser.h.pp b/include/mysql/plugin_ftparser.h.pp index 3a978645c24..74fddcbc5cf 100644 --- a/include/mysql/plugin_ftparser.h.pp +++ b/include/mysql/plugin_ftparser.h.pp @@ -93,6 +93,13 @@ extern struct kill_statement_service_st { enum thd_kill_levels (*thd_kill_level_func)(const void*); } *thd_kill_statement_service; enum thd_kill_levels thd_kill_level(const void*); +#include <mysql/service_sha1.h> +extern struct my_sha1_service_st { + void (*my_sha1_type)(unsigned char*, const char*, size_t); + void (*my_sha1_multi_type)(unsigned char*, ...); +} *my_sha1_service; +void my_sha1(unsigned char*, const char*, size_t); +void my_sha1_multi(unsigned char*, ...); struct st_mysql_xid { long formatID; long gtrid_length; diff --git a/include/mysql/service_sha1.h b/include/mysql/service_sha1.h new file mode 100644 index 00000000000..01f5ba81566 --- /dev/null +++ b/include/mysql/service_sha1.h @@ -0,0 +1,57 @@ +#ifndef MYSQL_SERVICE_SHA1_INCLUDED +/* Copyright (c) 2013, Monty Program Ab + + 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-1301 USA */ + +/** + @file + my sha1 service + + Functions to calculate SHA1 hash from a memory buffer +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef MYSQL_ABI_CHECK +#include <stdlib.h> +#endif + +#define MY_SHA1_HASH_SIZE 20 /* Hash size in bytes */ + +extern struct my_sha1_service_st { + void (*my_sha1_type)(unsigned char*, const char*, size_t); + void (*my_sha1_multi_type)(unsigned char*, ...); +} *my_sha1_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define my_sha1(A,B,C) my_sha1_service->my_sha1_type(A,B,C) +#define my_sha1_multi my_sha1_service->my_sha1_multi_type + +#else + +void my_sha1(unsigned char*, const char*, size_t); +void my_sha1_multi(unsigned char*, ...); + +#endif + +#ifdef __cplusplus +} +#endif + +#define MYSQL_SERVICE_SHA1_INCLUDED +#endif + diff --git a/include/mysql/services.h b/include/mysql/services.h index b5b331d4923..56706b356ab 100644 --- a/include/mysql/services.h +++ b/include/mysql/services.h @@ -25,6 +25,7 @@ extern "C" { #include <mysql/service_progress_report.h> #include <mysql/service_debug_sync.h> #include <mysql/service_kill_statement.h> +#include <mysql/service_sha1.h> #ifdef __cplusplus } diff --git a/include/service_versions.h b/include/service_versions.h index 9b41da7440e..35b67bb2ed9 100644 --- a/include/service_versions.h +++ b/include/service_versions.h @@ -19,11 +19,13 @@ #define SERVICE_VERSION void * #endif +#define VERSION_debug_sync 0x1000 +#define VERSION_kill_statement 0x1000 + #define VERSION_my_snprintf 0x0100 #define VERSION_thd_alloc 0x0100 #define VERSION_thd_wait 0x0100 #define VERSION_my_thread_scheduler 0x0100 #define VERSION_progress_report 0x0100 -#define VERSION_debug_sync 0x1000 -#define VERSION_kill_statement 0x1000 +#define VERSION_my_sha1 0x0100 diff --git a/include/sha1.h b/include/sha1.h index b20cc8f5026..d927cd26ad9 100644 --- a/include/sha1.h +++ b/include/sha1.h @@ -1,8 +1,7 @@ #ifndef SHA1_INCLUDED #define SHA1_INCLUDED -/* Copyright (c) 2002, 2006 MySQL AB, 2009 Sun Microsystems, Inc. - Use is subject to license terms. +/* Copyright (c) 2013, Monty Program Ab 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 @@ -18,13 +17,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#define SHA1_HASH_SIZE 20 /* Hash size in bytes */ - -C_MODE_START - -void compute_sha1_hash(uint8 *digest, const char *buf, int len); -void compute_sha1_hash_multi(uint8 *digest, const char *buf1, int len1, - const char *buf2, int len2); -C_MODE_END +#include <mysql/service_sha1.h> +#define SHA1_HASH_SIZE MY_SHA1_HASH_SIZE +#define compute_sha1_hash(A,B,C) my_sha1(A,B,C) +#define compute_sha1_hash_multi(A,B,C,D,E) my_sha1_multi(A,B,C,D,E,NULL) #endif /* SHA__INCLUDED */ |