1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-32618 new auth plugin

PARSEC: Password Authentication using Response Signed with Elliptic Curve

new authentication plugin that uses salted passwords,
key derivation, extensible password storage format,
and both server- and client-side scrambles.

It signs the response with ed25519, but it uses stock
unmodified ed25519 as provided by OpenSSL/WolfSSL/GnuTLS.

Edited by: Sergei Golubchik
This commit is contained in:
Nikita Malyavin
2024-05-21 22:11:04 +02:00
committed by Oleksandr Byelkin
parent 68e369e3a9
commit e580cf7ae0
14 changed files with 445 additions and 20 deletions

View File

@@ -0,0 +1,32 @@
install soname 'auth_parsec';
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@'%';
uninstall soname 'auth_parsec';