Commit dfdb3551 authored by Michael Hamburg's avatar Michael Hamburg

check me: remove special case on decode

parent f3c6a5a6
......@@ -381,6 +381,7 @@ decaf_bool_t decaf_scalar_eq (
const decaf_point_t decaf_point_identity = {{{0},{1},{1},{0}}};
void decaf_point_encode( unsigned char ser[DECAF_SER_BYTES], const decaf_point_t p ) {
/* Can shave off one mul here; not important but makes consistent with paper */
gf a, b, c, d;
gf_mlw ( a, p->y, 1-EDWARDS_D );
gf_mul ( c, a, p->t );
......@@ -468,8 +469,7 @@ decaf_bool_t decaf_point_decode (
) {
gf s, a, b, c, d, e;
decaf_bool_t succ = gf_deser(s, ser);
decaf_bool_t zero = gf_eq(s, ZERO);
succ &= allow_identity | ~zero;
succ &= allow_identity | ~gf_eq(s, ZERO);
succ &= ~hibit(s);
gf_sqr ( a, s );
gf_sub ( p->z, ONE, a );
......@@ -490,8 +490,9 @@ decaf_bool_t decaf_point_decode (
gf_mul ( a, b, c );
gf_mul ( p->y,a,p->z );
gf_mul ( p->t,p->x,a );
p->y[0] -= zero;
/* TODO: do something safe if ~succ? */
/* TODO: do something safe if ~succ?
* TODO: double-check that this works on identity...
*/
return succ;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment