diff options
Diffstat (limited to 'mysql-test/main/func_encrypt.test')
-rw-r--r-- | mysql-test/main/func_encrypt.test | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/mysql-test/main/func_encrypt.test b/mysql-test/main/func_encrypt.test new file mode 100644 index 00000000000..e27a2bd46d3 --- /dev/null +++ b/mysql-test/main/func_encrypt.test @@ -0,0 +1,145 @@ +-- source include/have_des.inc + +--disable_warnings +drop table if exists t1; +--enable_warnings + +create table t1 (x blob); +insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','The quick red fox jumped over the lazy brown dog')); +insert into t1 values (des_encrypt('a','The quick red fox jumped over the lazy brown dog')); +insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','a')); +insert into t1 values (des_encrypt('ab','The quick red fox jumped over the lazy brown dog')); +insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','ab')); +insert into t1 values (des_encrypt('abc','The quick red fox jumped over the lazy brown dog')); +insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','abc')); +insert into t1 values (des_encrypt('abcd','The quick red fox jumped over the lazy brown dog')); +insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','abcd')); +insert into t1 values (des_encrypt('abcde','The quick red fox jumped over the lazy brown dog')); +insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','abcde')); +insert into t1 values (des_encrypt('abcdef','The quick red fox jumped over the lazy brown dog')); +insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','abcdef')); +insert into t1 values (des_encrypt('abcdefg','The quick red fox jumped over the lazy brown dog')); +insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','abcdefg')); +insert into t1 values (des_encrypt('abcdefgh','The quick red fox jumped over the lazy brown dog')); +insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','abcdefgh')); +insert into t1 values (des_encrypt('abcdefghi','The quick red fox jumped over the lazy brown dog')); +insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','abcdefghi')); +insert into t1 values (des_encrypt('abcdefghij','The quick red fox jumped over the lazy brown dog')); +insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','abcdefghij')); +insert into t1 values (des_encrypt('abcdefghijk','The quick red fox jumped over the lazy brown dog')); +insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','abcdefghijk')); +insert into t1 values (des_encrypt('The quick red fox jumped over the lazy brown dog','sabakala')); +insert into t1 values (des_encrypt('quick red fox jumped over the lazy brown dog','sabakala')); +insert into t1 values (des_encrypt('red fox jumped over the lazy brown dog','sabakala')); +insert into t1 values (des_encrypt('fox jumped over the lazy brown dog','sabakala')); +insert into t1 values (des_encrypt('jumped over the lazy brown dog','sabakala')); +insert into t1 values (des_encrypt('over the lazy brown dog','sabakala')); +insert into t1 values (des_encrypt('the lazy brown dog','sabakala')); +insert into t1 values (des_encrypt('lazy brown dog','sabakala')); +insert into t1 values (des_encrypt('brown dog','sabakala')); +insert into t1 values (des_encrypt('dog','sabakala')); +insert into t1 values (des_encrypt('dog!','sabakala')); +insert into t1 values (des_encrypt('dog!!','sabakala')); +insert into t1 values (des_encrypt('dog!!!','sabakala')); +insert into t1 values (des_encrypt('dog!!!!','sabakala')); +insert into t1 values (des_encrypt('dog!!!!!','sabakala')); +insert into t1 values (des_encrypt('jumped over the lazy brown dog','sabakala')); +insert into t1 values (des_encrypt('jumped over the lazy brown dog','sabakala')); +select hex(x), hex(des_decrypt(x,'sabakala')) from t1; +select des_decrypt(x,'sabakala') as s from t1 having s like '%dog%'; +drop table t1; + +# +# Test default keys +# +select hex(des_encrypt("hello")),des_decrypt(des_encrypt("hello")); +select des_decrypt(des_encrypt("hello",4)); +select des_decrypt(des_encrypt("hello",'test'),'test'); +select hex(des_encrypt("hello")),hex(des_encrypt("hello",5)),hex(des_encrypt("hello",'default_password')); +select des_decrypt(des_encrypt("hello"),'default_password'); +select des_decrypt(des_encrypt("hello",4),'password4'); + +# Test use of invalid parameters +select des_encrypt("hello",10); +select des_encrypt(NULL); +select des_encrypt(NULL, 10); +select des_encrypt(NULL, NULL); +select des_encrypt(10, NULL); +select des_encrypt("hello", NULL); + +select des_decrypt("hello",10); +select des_decrypt(NULL); +select des_decrypt(NULL, 10); +select des_decrypt(NULL, NULL); +select des_decrypt(10, NULL); +select des_decrypt("hello", NULL); + + +# Test flush +SET @a=des_decrypt(des_encrypt("hello")); +flush des_key_file; +select @a = des_decrypt(des_encrypt("hello")); + +# Test usage of wrong password +select hex("hello"); +select hex(des_decrypt(des_encrypt("hello",4),'password2')); +select hex(des_decrypt(des_encrypt("hello","hidden"))); + +explain extended select des_decrypt(des_encrypt("hello",4),'password2'), des_decrypt(des_encrypt("hello","hidden")); + +# End of 4.1 tests + +# +# Bug#44365 valgrind warnings with encrypt() function +# +--disable_warnings +drop table if exists t1; +--enable_warnings +create table t1 (f1 smallint(6) default null, f2 mediumtext character set utf8) +engine=myisam default charset=latin1; +insert into t1 values (null,'contraction\'s'); +insert into t1 values (-15818,'requirement\'s'); +--disable_result_log +select encrypt(f1,f2) as a from t1,(select encrypt(f1,f2) as b from t1) a; +--enable_result_log +drop table t1; + +--echo # +--echo # Start of 10.1 tests +--echo # + +--echo # +--echo # MDEV-8369 Unexpected impossible WHERE for a condition on a ZEROFILL field +--echo # +CREATE TABLE t1 (a INT(6) ZEROFILL); +INSERT INTO t1 VALUES (1),(2); +# This should not propagate a=1 into DES_ENCRYPT +EXPLAIN EXTENDED +SELECT * FROM t1 WHERE a=1 AND DES_ENCRYPT('test',a)=_latin1 'abc' COLLATE latin1_bin; +DROP TABLE t1; + +--echo # +--echo # End of 10.1 tests +--echo # + +--echo # +--echo # Start of 10.2 tests +--echo # + +--echo # +--echo # MDEV-10134 Add full support for DEFAULT +--echo # + +CREATE TABLE t1 ( + a VARCHAR(30), + b BLOB DEFAULT DES_ENCRYPT(a, 'passwd'), + c TEXT DEFAULT DES_DECRYPT(b, 'passwd') +); +SHOW CREATE TABLE t1; +INSERT INTO t1 (a) VALUES ('test'); +SELECT c FROM t1; +DROP TABLE t1; + +--echo # +--echo # End of 10.2 tests +--echo # |