[php-src] Issue #14258: Implement ED25519 auth for mysqlnd
| From: | h3ssan | Date: | Fri, 17 May 2024 03:00:55 +0000 |
| Subject: | [php-src] Issue #14258: Implement ED25519 auth for mysqlnd | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-246923@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/14258
Author: h3ssan
### Description
## Overview
Since MariaDB
10.4 (**released ~5 years ago**) introduced an authentication method
called auth_ed25519 and still supported till now in the latest versions of MariaDB
which is now 11.3, [here's official to read more about
auth_ed25519](https://mariadb.com/docs/server/security/authentication/enterprise-server/ed25519/)
> Right now, all MariaDB supported versions are support
> auth_ed25519 which as I said, since MariaDB
> 10.4
## The Problem
As this code of PHP 8.1.0 ( Located in https://github.com/php/php-src/blob/php-8.1.0/ext/mysqlnd/mysqlnd_auth.c#L1315-L1326
) mentioned below that auth_ed25519 is not supported yet.
```c
/* {{{ mysqlnd_register_builtin_authentication_plugins */
void
mysqlnd_register_builtin_authentication_plugins(void)
{
mysqlnd_plugin_register_ex((struct st_mysqlnd_plugin_header *) &mysqlnd_native_auth_plugin);
mysqlnd_plugin_register_ex((struct st_mysqlnd_plugin_header *)
&mysqlnd_pam_authentication_plugin);
#ifdef MYSQLND_HAVE_SSL
mysqlnd_plugin_register_ex((struct st_mysqlnd_plugin_header *)
&mysqlnd_caching_sha2_auth_plugin);
mysqlnd_plugin_register_ex((struct st_mysqlnd_plugin_header *)
&mysqlnd_sha256_authentication_plugin);
#endif
}
/* }}} */
```
Also, here's what [official MariaDB](https://mariadb.com/kb/en/authentication-plugin-ed25519/)
said about mysql_native_password:

## The Requested Features
- Implement ED25519 authentication for MySQL Native Driver (mysqlnd)
## More on this
- [MariaDB - Authentication with
ed25519](https://mariadb.com/docs/server/security/authentication/enterprise-server/ed25519/)
- [MariaDB - Authentication Plugin -
ed25519](https://mariadb.com/kb/en/authentication-plugin-ed25519/)