Skip to content

Commit 797cadc

Browse files
committed
MDEV-8482 mysql-test - main.func_encrypt fails if FIPS=1
* check for openssl errors in DES_ENCRYPT/DES_DECRYPT * disable the test when DES doesn't work * also disable main.func_des_encrypt
1 parent 906f97d commit 797cadc

File tree

4 files changed

+14
-6
lines changed

4 files changed

+14
-6
lines changed

mysql-test/include/have_des.inc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# in the FIPS mode, OpenSSL disables DES and other weak algorithms
2+
source include/have_ssl_crypto_functs.inc;
3+
4+
if (`select des_encrypt("a", "b") IS NULL`) {
5+
skip DES is disabled (fips mode?);
6+
}

mysql-test/t/func_des_encrypt.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
-- source include/have_ssl_crypto_functs.inc
1+
-- source include/have_des.inc
22

33
# This test can't be in func_encrypt.test, because it requires
44
# --des-key-file to not be set.

mysql-test/t/func_encrypt.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
-- source include/have_ssl_crypto_functs.inc
1+
-- source include/have_des.inc
22

33
--disable_warnings
44
drop table if exists t1;

sql/item_strfunc.cc

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -828,9 +828,10 @@ String *Item_func_des_encrypt::val_str(String *str)
828828

829829
/* We make good 24-byte (168 bit) key from given plaintext key with MD5 */
830830
bzero((char*) &ivec,sizeof(ivec));
831-
EVP_BytesToKey(EVP_des_ede3_cbc(),EVP_md5(),NULL,
831+
if (!EVP_BytesToKey(EVP_des_ede3_cbc(),EVP_md5(),NULL,
832832
(uchar*) keystr->ptr(), (int) keystr->length(),
833-
1, (uchar*) &keyblock,ivec);
833+
1, (uchar*) &keyblock,ivec))
834+
goto error;
834835
DES_set_key_unchecked(&keyblock.key1,&keyschedule.ks1);
835836
DES_set_key_unchecked(&keyblock.key2,&keyschedule.ks2);
836837
DES_set_key_unchecked(&keyblock.key3,&keyschedule.ks3);
@@ -921,9 +922,10 @@ String *Item_func_des_decrypt::val_str(String *str)
921922
goto error;
922923

923924
bzero((char*) &ivec,sizeof(ivec));
924-
EVP_BytesToKey(EVP_des_ede3_cbc(),EVP_md5(),NULL,
925+
if (!EVP_BytesToKey(EVP_des_ede3_cbc(),EVP_md5(),NULL,
925926
(uchar*) keystr->ptr(),(int) keystr->length(),
926-
1,(uchar*) &keyblock,ivec);
927+
1,(uchar*) &keyblock,ivec))
928+
goto error;
927929
// Here we set all 64-bit keys (56 effective) one by one
928930
DES_set_key_unchecked(&keyblock.key1,&keyschedule.ks1);
929931
DES_set_key_unchecked(&keyblock.key2,&keyschedule.ks2);

0 commit comments

Comments
 (0)