43static int unpack_vartime(
ge25519_p3 *r,
const unsigned char p[32])
45 fe25519 t, chk, num, den, den2, den4, den6;
46 unsigned char par = p[31] >> 7;
103static void negate(
ge25519* out)
127 for (
int i = 63; ; --
i)
129 choose_tp(&t, (
unsigned long long) 0, (
signed long long)
b[i],
base);
152 p3_to_pniels(&
base[0], r);
153 for (
int i = 0;
i < 7; ++
i)
160static int scalarmult(
char* out,
char const* pub,
char const* sec)
165 if (unpack_vartime(&unpacked, (
unsigned char const*)pub) != 0)
168 base_precomp(
base, &unpacked);
169 scalarmult_p1p1(&tp1p1,
base, sec);
181 if (unpack_vartime(&unpacked, (
unsigned char const*)tx_pub) != 0)
184 base_precomp(
base, &unpacked);
185 scalarmult_p1p1(&tp1p1,
base, view_sec);
200static void generate_subaddress_public_key_base(
char* out,
ge25519 const* output_pub,
char const* special_sec)
205 memcpy(p2.
v, special_sec,
sizeof(p2.
v));
212static int generate_subaddress_public_key(
char* out,
char const* output_pub,
char const* special_sec)
215 if (unpack_vartime(&p, (
unsigned char const*)output_pub) != 0)
218 generate_subaddress_public_key_base(out, &p, special_sec);
#define s(x, c)
Definition aesb.c:47
#define fe25519_neg
Definition fe25519.h:12
#define fe25519_iseq_vartime
Definition fe25519.h:9
#define fe25519_setint
Definition fe25519.h:11
#define fe25519_square
Definition fe25519.h:18
#define fe25519_sub
Definition fe25519.h:15
#define fe25519_pow2523
Definition fe25519.h:21
#define fe25519_unpack
Definition fe25519.h:6
#define fe25519_getparity
Definition fe25519.h:13
#define fe25519_add
Definition fe25519.h:14
#define fe25519
Definition fe25519.h:4
#define fe25519_mul
Definition fe25519.h:16
#define ge25519_dbl_p1p1
Definition ge25519.h:29
#define ge25519_pnielsadd_p1p1
Definition ge25519.h:34
#define ge25519_pack
Definition ge25519.h:18
#define ge25519_add
Definition ge25519.h:20
#define ge25519_p3
Definition ge25519.h:36
#define ge25519
Definition ge25519.h:15
#define ge25519_scalarmult_base
Definition ge25519.h:24
#define ge25519_p1p1_to_p2
Definition ge25519.h:25
#define ge25519_p1p1_to_pniels
Definition ge25519.h:27
#define ge25519_p1p1_to_p3
Definition ge25519.h:26
static const fe25519 ec2d
Definition ge25519_double_scalarmult.c:14
static const fe25519 ecd
Definition ge25519_scalarmult_base.c:11
#define sc25519_window4
Definition sc25519.h:18
#define sc25519
Definition sc25519.h:4
#define choose_tp
Definition amd64-51-30k.c:48
cryptonote::block b
Definition block.cpp:40
void * memcpy(void *a, const void *b, size_t c)
Definition glibc_compat.cpp:16
t
Definition console.py:33
bool generate_key_derivation(const public_key &key1, const secret_key &key2, key_derivation &derivation)
Definition crypto.h:232
@ out
Definition message_store.h:75
int i
Definition pymoduletest.py:23
r
Definition testupnpigd.py:61
unsigned long long v[4]
Definition sc25519.h:26