Flatlogic Bot c2aa0f3687 V5
2026-02-16 07:39:54 +00:00

63 lines
2.3 KiB
C

#ifdef __cplusplus
extern "C" {
#endif
#include <sodium.h>
// copy 32 bytes using int64_t pointers
#define SN_TWEAK_COPY_32(a, b) \
{ \
long long *dst = (long long *) a; \
long long *src = (long long *) b; \
dst[0] = src[0]; \
dst[1] = src[1]; \
dst[2] = src[2]; \
dst[3] = src[3]; \
}
#define sn__extension_tweak_ed25519_BYTES crypto_sign_ed25519_PUBLICKEYBYTES
#define sn__extension_tweak_ed25519_SCALARBYTES crypto_scalarmult_ed25519_SCALARBYTES
int sn__extension_tweak_ed25519_sign_detached(unsigned char *sig, unsigned long long *siglen_p,
const unsigned char *m, unsigned long long mlen,
const unsigned char *n, unsigned char *pk);
void sn__extension_tweak_ed25519_base(unsigned char *pk, unsigned char *scalar,
const unsigned char *ns, unsigned long long nslen);
void sn__extension_tweak_ed25519_sk_to_scalar(unsigned char *scalar, const unsigned char *sk);
// tweak a secret key
void sn__extension_tweak_ed25519_scalar(unsigned char *scalar_out,
const unsigned char *scalar,
const unsigned char *ns,
unsigned long long nslen);
// tweak a public key
int sn__extension_tweak_ed25519_pk(unsigned char *tpk,
const unsigned char *pk,
const unsigned char *ns,
unsigned long long nslen);
void sn__extension_tweak_ed25519_keypair(unsigned char *pk, unsigned char *scalar_out,
unsigned char *scalar, const unsigned char *ns,
unsigned long long nslen);
// add tweak scalar to private key
void sn__extension_tweak_ed25519_scalar_add(unsigned char *scalar_out,
const unsigned char *scalar,
const unsigned char *n);
// add tweak point to public key
int sn__extension_tweak_ed25519_pk_add(unsigned char *tpk,
const unsigned char *pk,
const unsigned char *q);
int sn__extension_tweak_ed25519_keypair_add(unsigned char *pk, unsigned char *scalar_out,
unsigned char *scalar, const unsigned char *tweak);
#ifdef __cplusplus
};
#endif