diff options
| author | Mingli Yu <mingli.yu@windriver.com> | 2022-03-30 14:17:54 +0800 |
|---|---|---|
| committer | Khem Raj <raj.khem@gmail.com> | 2022-03-30 07:51:38 -0700 |
| commit | 7eace39caf91aeb18a5f69d577e792046f704772 (patch) | |
| tree | aedac9121684896fcfd675523c7ac28a35241e47 | |
| parent | 9a52bfc4a646003088490de13e6500392ce01442 (diff) | |
| download | meta-openembedded-7eace39caf91aeb18a5f69d577e792046f704772.tar.gz | |
mariadb: increase MY_AES_CTX_SIZE
Rework the patch to fix the build failure with bundled openssl and
the missing part [1] already included in mariadb 10.8.x [2].
Add PACKAGECONFIG:remove:pn-mariadb = " openssl" to local.conf
$ bitbake mariadb
| /buildpath/mariadb/10.7.3-r0/mariadb-10.7.3/mysys_ssl/my_crypt.cc:18:
| /buildpath/mariadb/10.7.3-r0/mariadb-10.7.3/mysys_ssl/my_crypt.cc: In member function 'virtual int MyCTX_nopad::init(const EVP_CIPHER*, int, const uchar*, uint, const uchar*, uint)':
| /buildpath/mariadb/10.7.3-r0/mariadb-10.7.3/include/my_global.h:387:74: error: narrowing conversion of '-1' from 'int' to 'long unsigned int' [-Wnarrowing]
387 | typedef char compile_time_assert[(X) ? 1 : -1] _attribute_((unused)); \
[1] https://github.com/MariaDB/server/commit/7cd965af92db1e45d4568996808c6c942d3f0cc7
[2] https://github.com/MariaDB/server/commit/d42c2efbaa06a0307c2f0fd8fa87819ff50bbd7e
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
| -rw-r--r-- | meta-oe/recipes-dbs/mysql/mariadb/mariadb-openssl3.patch | 53 |
1 files changed, 42 insertions, 11 deletions
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/mariadb-openssl3.patch b/meta-oe/recipes-dbs/mysql/mariadb/mariadb-openssl3.patch index db123e4a10..878675f30d 100644 --- a/meta-oe/recipes-dbs/mysql/mariadb/mariadb-openssl3.patch +++ b/meta-oe/recipes-dbs/mysql/mariadb/mariadb-openssl3.patch | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | From c80991c79f701dac42c630af4bd39593b0c7efb4 Mon Sep 17 00:00:00 2001 | 1 | From 1626955f3a2107ec4c7fd927ebfa3c6c1d2b09b8 Mon Sep 17 00:00:00 2001 |
| 2 | From: Vladislav Vaintroub <wlad@mariadb.com> | 2 | From: Vladislav Vaintroub <wlad@mariadb.com> |
| 3 | Date: Mon, 8 Nov 2021 18:48:19 +0100 | 3 | Date: Mon, 8 Nov 2021 18:48:19 +0100 |
| 4 | Subject: [PATCH] MDEV-25785 Add support for OpenSSL 3.0 | 4 | Subject: [PATCH] MDEV-25785 Add support for OpenSSL 3.0 |
| @@ -29,19 +29,22 @@ Summary of changes | |||
| 29 | 29 | ||
| 30 | Patch from Fedora https://src.fedoraproject.org/rpms/mariadb/raw/rawhide/f/mariadb-openssl3.patch | 30 | Patch from Fedora https://src.fedoraproject.org/rpms/mariadb/raw/rawhide/f/mariadb-openssl3.patch |
| 31 | 31 | ||
| 32 | Upstream-Status: Pending | 32 | Upstream-Status: Backport [https://github.com/MariaDB/server/commit/d42c2efbaa06a0307c2f0fd8fa87819ff50bbd7e] |
| 33 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | 33 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 34 | Signed-off-by: Mingli Yu <mingli.yu@windriver.com> | ||
| 34 | --- | 35 | --- |
| 35 | cmake/ssl.cmake | 19 ++++- | 36 | cmake/ssl.cmake | 21 +++++- |
| 37 | include/mysql/service_my_crypt.h | 2 +- | ||
| 36 | include/ssl_compat.h | 3 +- | 38 | include/ssl_compat.h | 3 +- |
| 37 | mysql-test/lib/openssl.cnf | 2 +- | 39 | mysql-test/lib/openssl.cnf | 2 +- |
| 38 | mysql-test/main/ssl_cipher.result | 6 +- | 40 | mysql-test/main/ssl_cipher.result | 6 +- |
| 39 | mysql-test/main/ssl_cipher.test | 2 +- | 41 | mysql-test/main/ssl_cipher.test | 2 +- |
| 40 | mysys_ssl/my_crypt.cc | 46 +++++++----- | 42 | mysys_ssl/my_crypt.cc | 46 +++++++----- |
| 41 | unittest/mysys/aes-t.c | 121 ++++++++++++++++++++++-------- | 43 | unittest/mysys/aes-t.c | 121 ++++++++++++++++++++++-------- |
| 42 | 7 files changed, 141 insertions(+), 58 deletions(-) | 44 | 8 files changed, 143 insertions(+), 60 deletions(-) |
| 43 | |||
| 44 | 45 | ||
| 46 | diff --git a/cmake/ssl.cmake b/cmake/ssl.cmake | ||
| 47 | index a6793cf3..64c93ff9 100644 | ||
| 45 | --- a/cmake/ssl.cmake | 48 | --- a/cmake/ssl.cmake |
| 46 | +++ b/cmake/ssl.cmake | 49 | +++ b/cmake/ssl.cmake |
| 47 | @@ -118,7 +118,7 @@ MACRO (MYSQL_CHECK_SSL) | 50 | @@ -118,7 +118,7 @@ MACRO (MYSQL_CHECK_SSL) |
| @@ -88,6 +91,21 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> | |||
| 88 | ELSE() | 91 | ELSE() |
| 89 | IF(WITH_SSL STREQUAL "system") | 92 | IF(WITH_SSL STREQUAL "system") |
| 90 | MESSAGE(FATAL_ERROR "Cannot find appropriate system libraries for SSL. Use WITH_SSL=bundled to enable SSL support") | 93 | MESSAGE(FATAL_ERROR "Cannot find appropriate system libraries for SSL. Use WITH_SSL=bundled to enable SSL support") |
| 94 | diff --git a/include/mysql/service_my_crypt.h b/include/mysql/service_my_crypt.h | ||
| 95 | index 2a232117..bb038aaa 100644 | ||
| 96 | --- a/include/mysql/service_my_crypt.h | ||
| 97 | +++ b/include/mysql/service_my_crypt.h | ||
| 98 | @@ -45,7 +45,7 @@ extern "C" { | ||
| 99 | /* The max key length of all supported algorithms */ | ||
| 100 | #define MY_AES_MAX_KEY_LENGTH 32 | ||
| 101 | |||
| 102 | -#define MY_AES_CTX_SIZE 656 | ||
| 103 | +#define MY_AES_CTX_SIZE 672 | ||
| 104 | |||
| 105 | enum my_aes_mode { | ||
| 106 | MY_AES_ECB, MY_AES_CBC | ||
| 107 | diff --git a/include/ssl_compat.h b/include/ssl_compat.h | ||
| 108 | index 8dc12254..6db1baab 100644 | ||
| 91 | --- a/include/ssl_compat.h | 109 | --- a/include/ssl_compat.h |
| 92 | +++ b/include/ssl_compat.h | 110 | +++ b/include/ssl_compat.h |
| 93 | @@ -24,7 +24,7 @@ | 111 | @@ -24,7 +24,7 @@ |
| @@ -107,6 +125,8 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> | |||
| 107 | #define EVP_CIPHER_CTX_encrypting(ctx) ((ctx)->encrypt) | 125 | #define EVP_CIPHER_CTX_encrypting(ctx) ((ctx)->encrypt) |
| 108 | #define EVP_CIPHER_CTX_SIZE sizeof(EVP_CIPHER_CTX) | 126 | #define EVP_CIPHER_CTX_SIZE sizeof(EVP_CIPHER_CTX) |
| 109 | 127 | ||
| 128 | diff --git a/mysql-test/lib/openssl.cnf b/mysql-test/lib/openssl.cnf | ||
| 129 | index b9ab37ac..7cd6f748 100644 | ||
| 110 | --- a/mysql-test/lib/openssl.cnf | 130 | --- a/mysql-test/lib/openssl.cnf |
| 111 | +++ b/mysql-test/lib/openssl.cnf | 131 | +++ b/mysql-test/lib/openssl.cnf |
| 112 | @@ -9,4 +9,4 @@ ssl_conf = ssl_section | 132 | @@ -9,4 +9,4 @@ ssl_conf = ssl_section |
| @@ -115,6 +135,8 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> | |||
| 115 | [system_default_section] | 135 | [system_default_section] |
| 116 | -CipherString = ALL:@SECLEVEL=1 | 136 | -CipherString = ALL:@SECLEVEL=1 |
| 117 | +CipherString = ALL:@SECLEVEL=0 | 137 | +CipherString = ALL:@SECLEVEL=0 |
| 138 | diff --git a/mysql-test/main/ssl_cipher.result b/mysql-test/main/ssl_cipher.result | ||
| 139 | index 930d384e..66d817b7 100644 | ||
| 118 | --- a/mysql-test/main/ssl_cipher.result | 140 | --- a/mysql-test/main/ssl_cipher.result |
| 119 | +++ b/mysql-test/main/ssl_cipher.result | 141 | +++ b/mysql-test/main/ssl_cipher.result |
| 120 | @@ -61,8 +61,8 @@ connect ssl_con,localhost,root,,,,,SSL; | 142 | @@ -61,8 +61,8 @@ connect ssl_con,localhost,root,,,,,SSL; |
| @@ -129,9 +151,11 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> | |||
| 129 | +1 | 151 | +1 |
| 130 | disconnect ssl_con; | 152 | disconnect ssl_con; |
| 131 | connection default; | 153 | connection default; |
| 154 | diff --git a/mysql-test/main/ssl_cipher.test b/mysql-test/main/ssl_cipher.test | ||
| 155 | index 36549d76..d4cdcffb 100644 | ||
| 132 | --- a/mysql-test/main/ssl_cipher.test | 156 | --- a/mysql-test/main/ssl_cipher.test |
| 133 | +++ b/mysql-test/main/ssl_cipher.test | 157 | +++ b/mysql-test/main/ssl_cipher.test |
| 134 | @@ -98,6 +98,6 @@ let $restart_parameters=--ssl-cipher=AES | 158 | @@ -98,6 +98,6 @@ let $restart_parameters=--ssl-cipher=AES128-SHA; |
| 135 | source include/restart_mysqld.inc; | 159 | source include/restart_mysqld.inc; |
| 136 | connect (ssl_con,localhost,root,,,,,SSL); | 160 | connect (ssl_con,localhost,root,,,,,SSL); |
| 137 | SHOW STATUS LIKE 'Ssl_cipher'; | 161 | SHOW STATUS LIKE 'Ssl_cipher'; |
| @@ -139,6 +163,8 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> | |||
| 139 | +SELECT VARIABLE_VALUE like '%AES128-SHA%' FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher_list'; | 163 | +SELECT VARIABLE_VALUE like '%AES128-SHA%' FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher_list'; |
| 140 | disconnect ssl_con; | 164 | disconnect ssl_con; |
| 141 | connection default; | 165 | connection default; |
| 166 | diff --git a/mysys_ssl/my_crypt.cc b/mysys_ssl/my_crypt.cc | ||
| 167 | index e512eee9..4d7ebc7b 100644 | ||
| 142 | --- a/mysys_ssl/my_crypt.cc | 168 | --- a/mysys_ssl/my_crypt.cc |
| 143 | +++ b/mysys_ssl/my_crypt.cc | 169 | +++ b/mysys_ssl/my_crypt.cc |
| 144 | @@ -29,11 +29,7 @@ | 170 | @@ -29,11 +29,7 @@ |
| @@ -164,7 +190,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> | |||
| 164 | 190 | ||
| 165 | MyCTX_nopad() : MyCTX() { } | 191 | MyCTX_nopad() : MyCTX() { } |
| 166 | ~MyCTX_nopad() { } | 192 | ~MyCTX_nopad() { } |
| 167 | @@ -112,7 +109,7 @@ public: | 193 | @@ -112,7 +109,7 @@ class MyCTX_nopad : public MyCTX |
| 168 | compile_time_assert(MY_AES_CTX_SIZE >= sizeof(MyCTX_nopad)); | 194 | compile_time_assert(MY_AES_CTX_SIZE >= sizeof(MyCTX_nopad)); |
| 169 | this->key= key; | 195 | this->key= key; |
| 170 | this->klen= klen; | 196 | this->klen= klen; |
| @@ -173,7 +199,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> | |||
| 173 | if (ivlen) | 199 | if (ivlen) |
| 174 | memcpy(oiv, iv, ivlen); | 200 | memcpy(oiv, iv, ivlen); |
| 175 | DBUG_ASSERT(ivlen == 0 || ivlen == sizeof(oiv)); | 201 | DBUG_ASSERT(ivlen == 0 || ivlen == sizeof(oiv)); |
| 176 | @@ -123,26 +120,41 @@ public: | 202 | @@ -123,26 +120,41 @@ class MyCTX_nopad : public MyCTX |
| 177 | return res; | 203 | return res; |
| 178 | } | 204 | } |
| 179 | 205 | ||
| @@ -223,7 +249,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> | |||
| 223 | */ | 249 | */ |
| 224 | uchar mask[MY_AES_BLOCK_SIZE]; | 250 | uchar mask[MY_AES_BLOCK_SIZE]; |
| 225 | uint mlen; | 251 | uint mlen; |
| 226 | @@ -154,10 +166,10 @@ public: | 252 | @@ -154,10 +166,10 @@ class MyCTX_nopad : public MyCTX |
| 227 | return rc; | 253 | return rc; |
| 228 | DBUG_ASSERT(mlen == sizeof(mask)); | 254 | DBUG_ASSERT(mlen == sizeof(mask)); |
| 229 | 255 | ||
| @@ -237,6 +263,8 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> | |||
| 237 | return MY_AES_OK; | 263 | return MY_AES_OK; |
| 238 | } | 264 | } |
| 239 | }; | 265 | }; |
| 266 | diff --git a/unittest/mysys/aes-t.c b/unittest/mysys/aes-t.c | ||
| 267 | index 34704e06..cbec2760 100644 | ||
| 240 | --- a/unittest/mysys/aes-t.c | 268 | --- a/unittest/mysys/aes-t.c |
| 241 | +++ b/unittest/mysys/aes-t.c | 269 | +++ b/unittest/mysys/aes-t.c |
| 242 | @@ -21,27 +21,96 @@ | 270 | @@ -21,27 +21,96 @@ |
| @@ -331,12 +359,12 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> | |||
| 331 | + /* Compare with non-bytewise encryption result*/ | 359 | + /* Compare with non-bytewise encryption result*/ |
| 332 | + ok(dst_len == dst_len2 && memcmp(dst, dst2, dst_len) == 0, | 360 | + ok(dst_len == dst_len2 && memcmp(dst, dst2, dst_len) == 0, |
| 333 | + "memcmp bytewise %s %u", mode_str, src_len); | 361 | + "memcmp bytewise %s %u", mode_str, src_len); |
| 334 | } | 362 | + } |
| 335 | + else | 363 | + else |
| 336 | + { | 364 | + { |
| 337 | + int dst_len_real= my_aes_get_size(mode, src_len); | 365 | + int dst_len_real= my_aes_get_size(mode, src_len); |
| 338 | + ok(dst_len_real= dst_len, "my_aes_get_size"); | 366 | + ok(dst_len_real= dst_len, "my_aes_get_size"); |
| 339 | + } | 367 | } |
| 340 | + my_md5(md5, (char *) dst, dst_len); | 368 | + my_md5(md5, (char *) dst, dst_len); |
| 341 | + ok(dst_len == dlen, "md5 len"); | 369 | + ok(dst_len == dlen, "md5 len"); |
| 342 | + ok(memcmp(md5, hash, sizeof(md5)) == 0, "md5"); | 370 | + ok(memcmp(md5, hash, sizeof(md5)) == 0, "md5"); |
| @@ -383,3 +411,6 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> | |||
| 383 | DO_TEST_P(MY_AES_ECB, 200, '.', 208, "\xd8\x73\x8e\x3a\xbc\x66\x99\x13\x7f\x90\x23\x52\xee\x97\x6f\x9a"); | 411 | DO_TEST_P(MY_AES_ECB, 200, '.', 208, "\xd8\x73\x8e\x3a\xbc\x66\x99\x13\x7f\x90\x23\x52\xee\x97\x6f\x9a"); |
| 384 | DO_TEST_P(MY_AES_ECB, 128, '?', 144, "\x19\x58\x33\x85\x4c\xaa\x7f\x06\xd1\xb2\xec\xd7\xb7\x6a\xa9\x5b"); | 412 | DO_TEST_P(MY_AES_ECB, 128, '?', 144, "\x19\x58\x33\x85\x4c\xaa\x7f\x06\xd1\xb2\xec\xd7\xb7\x6a\xa9\x5b"); |
| 385 | DO_TEST_P(MY_AES_CBC, 159, '%', 160, "\x4b\x03\x18\x3d\xf1\xa7\xcd\xa1\x46\xb3\xc6\x8a\x92\xc0\x0f\xc9"); | 413 | DO_TEST_P(MY_AES_CBC, 159, '%', 160, "\x4b\x03\x18\x3d\xf1\xa7\xcd\xa1\x46\xb3\xc6\x8a\x92\xc0\x0f\xc9"); |
| 414 | -- | ||
| 415 | 2.25.1 | ||
| 416 | |||
