1
0
Fork 0
forked from lthn/blockchain

crypto: sc_mul added (naive implementation, need to be rewritten)

This commit is contained in:
sowle 2020-12-23 01:25:38 +03:00
parent 2768732e23
commit a16067ac64
No known key found for this signature in database
GPG key ID: C07A24B2D89D49FC
2 changed files with 13 additions and 0 deletions

View file

@ -3013,3 +3013,15 @@ void fe_frombytes(fe h, const unsigned char *s)
h[8] = h8;
h[9] = h9;
}
// Implemented using sc_mulsub
// TODO: make more efficient implementation
void sc_mul(unsigned char *s, const unsigned char *a, const unsigned char *b)
{
unsigned char c[32];
unsigned char neg_a[32];
sc_0(c);
sc_sub(neg_a, c, a);
// s = c - ab
sc_mulsub(s, neg_a, b, c);
}

View file

@ -120,6 +120,7 @@ void sc_reduce32(unsigned char *);
void sc_add(unsigned char *, const unsigned char *, const unsigned char *);
void sc_sub(unsigned char *, const unsigned char *, const unsigned char *);
void sc_mulsub(unsigned char *, const unsigned char *, const unsigned char *, const unsigned char *);
void sc_mul(unsigned char *z, const unsigned char *x, const unsigned char *y);
int sc_check(const unsigned char *);
int sc_isnonzero(const unsigned char *); /* Doesn't normalize */