mariadb/plugin/auth_ed25519
Daniel Black b9a20752a9 MDEV-36337 auth_ed25519 correct UDF pointers for is_null/error
Shows up on test plugins.auth_ed25519.

There isn't the import to define uchar so left as unsigned char.
2025-05-21 09:47:55 +02:00
..
ref10 MDEV-31379 Undefined behavior in the reference Ed25519 implementation 2024-03-27 16:14:55 +01:00
client_ed25519.c Merge branch '5.5' into 10.1 2019-05-11 22:19:05 +03:00
CMakeLists.txt Fix all warnings given by UBSAN 2021-04-20 12:30:09 +03:00
common.h Merge branch '5.5' into 10.1 2019-05-11 22:19:05 +03:00
crypto_hash_sha512.h MDEV-12160 Modern alternative to the SHA1 authentication plugin 2017-03-10 18:21:28 +01:00
crypto_int32.h MDEV-12160 Modern alternative to the SHA1 authentication plugin 2017-03-10 18:21:28 +01:00
crypto_int64.h MDEV-12160 Modern alternative to the SHA1 authentication plugin 2017-03-10 18:21:28 +01:00
crypto_sign.h ed25519 plugin: simplify the api 2017-03-10 18:21:28 +01:00
crypto_uint32.h MDEV-12160 Modern alternative to the SHA1 authentication plugin 2017-03-10 18:21:28 +01:00
crypto_uint64.h MDEV-12160 Modern alternative to the SHA1 authentication plugin 2017-03-10 18:21:28 +01:00
crypto_verify.h MDEV-12160 Modern alternative to the SHA1 authentication plugin 2017-03-10 18:21:28 +01:00
crypto_verify_32.h MDEV-12160 Modern alternative to the SHA1 authentication plugin 2017-03-10 18:21:28 +01:00
ed25519-t.c Update FSF address 2019-05-11 19:25:02 +03:00
README ed25519 plugin: simplify the api 2017-03-10 18:21:28 +01:00
server_ed25519.c MDEV-36337 auth_ed25519 correct UDF pointers for is_null/error 2025-05-21 09:47:55 +02:00

This plugin uses public domain ed25519 code
by Daniel J. Bernstein, Niels Duif, Tanja Lange, Peter Schwabe, Bo-Yin Yang.

It is "ref10" implementation from the SUPERCOP:
https://bench.cr.yp.to/supercop.html

OpenSSH also uses ed25519 from SUPERCOP, but "ref" implementation.

There are four ed25519 implementations in SUPERCOP, ref10 is faster then ref,
and there are two that are even faster, written in amd64 assembler.
Benchmarks are here: https://bench.cr.yp.to/impl-sign/ed25519.html

==============================
MariaDB changes:

API functions were simplified to better fit our use case:
* crypto_sign_open() does not return the verified message, only the
  result of the verification (passed/failed)
* no secret key is generated explicitly, user specified password is used
  as a source of randomness instead (SHA512("user password")).
* lengths are not returned, where they're known in advance
  (e.g. from crypto_sign()).
* crypto_sign() does not take the public key as an argument, but
  generates it on the fly (we used to generate public key before
  crypto_sign(), doing it internally avoids double work).

See the changes done in this commit.