ed25519: support empty password

This commit is contained in:
Nikita Malyavin 2024-10-28 22:41:41 +01:00 committed by Oleksandr Byelkin
parent 583a5a79c9
commit 044d8c50c6
3 changed files with 27 additions and 1 deletions

View file

@ -70,6 +70,20 @@ current_user()
test1@localhost
disconnect con1;
connection default;
create user test2@localhost identified via ed25519 using PASSWORD('');
show grants for test2@localhost;
Grants for test2@localhost
GRANT USAGE ON *.* TO `test2`@`localhost` IDENTIFIED VIA ed25519 USING '4LH+dBF+G5W2CKTyId8xR3SyDqZoQjUNUVNxx8aWbG4'
connect con2, localhost, test2,;
select current_user();
current_user()
test2@localhost
disconnect con2;
connect(localhost,test2,wrong_pwd,test,MASTER_MYPORT,MASTER_MYSOCK);
connect con3, localhost, test2, "wrong_pwd";
ERROR 28000: Access denied for user 'test2'@'localhost' (using password: YES)
connection default;
drop user test2@localhost;
drop user test1@localhost;
uninstall plugin ed25519;
select ed25519_password("foo");

View file

@ -50,6 +50,18 @@ select current_user();
disconnect con1;
connection default;
create user test2@localhost identified via ed25519 using PASSWORD('');
show grants for test2@localhost;
connect con2, localhost, test2,;
select current_user();
disconnect con2;
replace_result $MASTER_MYSOCK MASTER_MYSOCK $MASTER_MYPORT MASTER_MYPORT;
error ER_ACCESS_DENIED_ERROR;
connect con3, localhost, test2, "wrong_pwd";
connection default;
drop user test2@localhost;
drop user test1@localhost;
uninstall plugin ed25519;
error ER_CANT_INITIALIZE_UDF;

View file

@ -64,7 +64,7 @@ static int compute_password_digest(const char *pw, size_t pwlen,
char *d, size_t *dlen)
{
unsigned char pk[CRYPTO_PUBLICKEYBYTES];
if (*dlen < PASSWORD_LEN || pwlen == 0)
if (*dlen < PASSWORD_LEN)
return 1;
*dlen= PASSWORD_LEN;
crypto_sign_keypair(pk, (unsigned char*)pw, pwlen);