calog/vendor/mariadb/plugins/auth/ref10/keypair.c

24 lines
397 B
C
Vendored

#include <string.h>
#include "crypto_sign.h"
#include "crypto_hash_sha512.h"
#include "ge.h"
int crypto_sign_keypair(
unsigned char *pk,
unsigned char *pw, unsigned long long pwlen
)
{
unsigned char az[64];
ge_p3 A;
if (crypto_hash_sha512(az,pw,pwlen))
return -1;
az[0] &= 248;
az[31] &= 63;
az[31] |= 64;
ge_scalarmult_base(&A,az);
ge_p3_tobytes(pk,&A);
return 0;
}