summaryrefslogtreecommitdiff
path: root/include/my_crypt.h
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 /include/my_crypt.h
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 'include/my_crypt.h')
-rw-r--r--include/my_crypt.h71
1 files changed, 2 insertions, 69 deletions
diff --git a/include/my_crypt.h b/include/my_crypt.h
index e1e94c9bd9d..719e349bfb9 100644
--- a/include/my_crypt.h
+++ b/include/my_crypt.h
@@ -18,74 +18,7 @@
#ifndef MY_CRYPT_INCLUDED
#define MY_CRYPT_INCLUDED
-#include <my_global.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* return values from my_aes_encrypt/my_aes_decrypt functions */
-#define MY_AES_OK 0
-#define MY_AES_BAD_DATA -100
-#define MY_AES_OPENSSL_ERROR -101
-#define MY_AES_BAD_KEYSIZE -102
-
-/* The block size for all supported algorithms */
-#define MY_AES_BLOCK_SIZE 16
-
-/* The max key length of all supported algorithms */
-#define MY_AES_MAX_KEY_LENGTH 32
-
-#define MY_AES_CTX_SIZE 512
-
-enum my_aes_mode {
- MY_AES_ECB, MY_AES_CBC
-#ifdef HAVE_EncryptAes128Ctr
- , MY_AES_CTR
-#endif
-#ifdef HAVE_EncryptAes128Gcm
- , MY_AES_GCM
-#endif
-};
-
-int my_aes_crypt_init(void *ctx, enum my_aes_mode mode, int flags,
- const unsigned char* key, unsigned int klen,
- const unsigned char* iv, unsigned int ivlen);
-int my_aes_crypt_update(void *ctx, const uchar *src, uint slen,
- uchar *dst, uint *dlen);
-int my_aes_crypt_finish(void *ctx, uchar *dst, uint *dlen);
-int my_aes_crypt(enum my_aes_mode mode, int flags,
- const uchar *src, uint slen, uchar *dst, uint *dlen,
- const uchar *key, uint klen, const uchar *iv, uint ivlen);
-
-/*
- calculate the length of the cyphertext from the length of the plaintext
- for different AES encryption modes with padding enabled.
- Without padding (ENCRYPTION_FLAG_NOPAD) cyphertext has the same length
- as the plaintext
-*/
-static inline uint my_aes_get_size(enum my_aes_mode mode __attribute__((unused)), uint source_length)
-{
-#ifdef HAVE_EncryptAes128Ctr
- if (mode == MY_AES_CTR)
- return source_length;
-#ifdef HAVE_EncryptAes128Gcm
- if (mode == MY_AES_GCM)
- return source_length + MY_AES_BLOCK_SIZE;
-#endif
-#endif
- return (source_length / MY_AES_BLOCK_SIZE + 1) * MY_AES_BLOCK_SIZE;
-}
-
-static inline uint my_aes_ctx_size(enum my_aes_mode mode __attribute__((unused)))
-{
- return MY_AES_CTX_SIZE;
-}
-
-int my_random_bytes(uchar* buf, int num);
-
-#ifdef __cplusplus
-}
-#endif
+#include <my_config.h> /* HAVE_EncryptAes128{Ctr,Gcm} */
+#include <mysql/service_my_crypt.h>
#endif /* MY_CRYPT_INCLUDED */