summaryrefslogtreecommitdiff
path: root/mysys_ssl
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2017-05-06 14:36:46 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2017-05-06 14:36:46 +0300
commit14c6f00a9f25430f995fb42c768e19a9d2a980e8 (patch)
treeb0ff411e6ca13668124a66ded3b5bb5a7721e595 /mysys_ssl
parentbaad0f3484ec3079a09a206576290091cc823428 (diff)
parentb82c602db588cfa688278ef772050c004590c124 (diff)
downloadmariadb-git-14c6f00a9f25430f995fb42c768e19a9d2a980e8.tar.gz
Merge 10.1 into 10.2
Also, include fixes by Vladislav Vaintroub to the aws_key_management plugin. The AWS C++ SDK specifically depends on OPENSSL_LIBRARIES, not generic SSL_LIBRARIES (such as YaSSL).
Diffstat (limited to 'mysys_ssl')
-rw-r--r--mysys_ssl/my_crypt.cc26
1 files changed, 26 insertions, 0 deletions
diff --git a/mysys_ssl/my_crypt.cc b/mysys_ssl/my_crypt.cc
index 5411a908bf8..2ab38711d0f 100644
--- a/mysys_ssl/my_crypt.cc
+++ b/mysys_ssl/my_crypt.cc
@@ -269,6 +269,32 @@ int my_aes_crypt(enum my_aes_mode mode, int flags,
return res1 ? res1 : res2;
}
+
+/*
+ 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
+*/
+unsigned int my_aes_get_size(enum my_aes_mode mode __attribute__((unused)), unsigned int 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;
+}
+
+
+unsigned int my_aes_ctx_size(enum my_aes_mode)
+{
+ return MY_AES_CTX_SIZE;
+}
+
#ifdef HAVE_YASSL
#include <random.hpp>
int my_random_bytes(uchar* buf, int num)