Browse Source

check me: remove special case on decode

master
Michael Hamburg 10 years ago
parent
commit
dfdb35510d
1 changed files with 5 additions and 4 deletions
  1. +5
    -4
      src/decaf.c

+ 5
- 4
src/decaf.c View File

@@ -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;
}



Loading…
Cancel
Save