create user test1@'%' identified via parsec using 'pwd';
ERROR HY000: Operation CREATE USER failed for 'test1'@'%'
create user test1@'%' identified via parsec using PASSWORD('pwd');
show grants for test1@'%';
Grants for test1@%
GRANT USAGE ON *.* TO `test1`@`%` IDENTIFIED VIA parsec USING 'P0:salt:password'
connect con1, localhost, test1, pwd;
select 1, USER(), CURRENT_USER();
1	USER()	CURRENT_USER()
1	test1@localhost	test1@%
disconnect con1;
connect con2, localhost, test1, pwd;
select 2, USER(), CURRENT_USER();
2	USER()	CURRENT_USER()
2	test1@localhost	test1@%
disconnect con2;
connect(localhost,test1,wrong_pwd,test,MASTER_MYPORT,MASTER_MYSOCK);
connect con3, localhost, test1, wrong_pwd;
ERROR 28000: Access denied for user 'test1'@'localhost' (using password: NO)
connection default;
create function have_ssl() returns char(3)
return (select if(variable_value > '','yes','no') as 'have_ssl'
  from information_schema.session_status
where variable_name='ssl_cipher');
grant execute on test.* to test1@'%';
# mysql -utest1 -ppwd --ssl-verify-server-cert -e "select test.have_ssl()"
test.have_ssl()
yes
drop function have_ssl;
drop user test1@'%';
# MDEV-34854 Parsec sends garbage when using an empty password
create user test2@'%' identified via parsec using PASSWORD('');
show grants for test2@'%';
Grants for test2@%
GRANT USAGE ON *.* TO `test2`@`%` IDENTIFIED VIA parsec
connect con4, localhost, test2,;
select 4, USER(), CURRENT_USER();
4	USER()	CURRENT_USER()
4	test2@localhost	test2@%
disconnect con4;
connect(localhost,test2,wrong_pwd,test,MASTER_MYPORT,MASTER_MYSOCK);
connect con5, localhost, test2, "wrong_pwd";
ERROR 28000: Access denied for user 'test2'@'localhost' (using password: NO)
connection default;
drop user test2@'%';