Lines Matching +refs:pre +refs:p

70 static void p1p1_to_p2(ge25519_p2 *r, const ge25519_p1p1 *p)  in p1p1_to_p2()  argument
72 fe25519_mul(&r->x, &p->x, &p->t); in p1p1_to_p2()
73 fe25519_mul(&r->y, &p->y, &p->z); in p1p1_to_p2()
74 fe25519_mul(&r->z, &p->z, &p->t); in p1p1_to_p2()
77 static void p1p1_to_p3(ge25519_p3 *r, const ge25519_p1p1 *p) in p1p1_to_p3() argument
79 p1p1_to_p2((ge25519_p2 *)r, p); in p1p1_to_p3()
80 fe25519_mul(&r->t, &p->x, &p->y); in p1p1_to_p3()
106 static void add_p1p1(ge25519_p1p1 *r, const ge25519_p3 *p, const ge25519_p3 *q) in add_p1p1() argument
110 fe25519_sub(&a, &p->y, &p->x); /* A = (Y1-X1)*(Y2-X2) */ in add_p1p1()
113 fe25519_add(&b, &p->x, &p->y); /* B = (Y1+X1)*(Y2+X2) */ in add_p1p1()
116 fe25519_mul(&c, &p->t, &q->t); /* C = T1*k*T2 */ in add_p1p1()
118 fe25519_mul(&d, &p->z, &q->z); /* D = Z1*2*Z2 */ in add_p1p1()
127 static void dbl_p1p1(ge25519_p1p1 *r, const ge25519_p2 *p) in dbl_p1p1() argument
130 fe25519_square(&a, &p->x); in dbl_p1p1()
131 fe25519_square(&b, &p->y); in dbl_p1p1()
132 fe25519_square(&c, &p->z); in dbl_p1p1()
136 fe25519_add(&r->x, &p->x, &p->y); in dbl_p1p1()
146 static void cmov_aff(ge25519_aff *r, const ge25519_aff *p, unsigned char b) in cmov_aff() argument
148 fe25519_cmov(&r->x, &p->x, b); in cmov_aff()
149 fe25519_cmov(&r->y, &p->y, b); in cmov_aff()
196 int ge25519_unpackneg_vartime(ge25519_p3 *r, const unsigned char p[32]) in ge25519_unpackneg_vartime()
201 par = p[31] >> 7; in ge25519_unpackneg_vartime()
202 fe25519_unpack(&r->y, p); in ge25519_unpackneg_vartime()
243 void ge25519_pack(unsigned char r[32], const ge25519_p3 *p) in ge25519_pack() argument
246 fe25519_invert(&zi, &p->z); in ge25519_pack()
247 fe25519_mul(&tx, &p->x, &zi); in ge25519_pack()
248 fe25519_mul(&ty, &p->y, &zi); in ge25519_pack()
253 int ge25519_isneutral_vartime(const ge25519_p3 *p) in ge25519_isneutral_vartime() argument
256 if(!fe25519_iszero(&p->x)) ret = 0; in ge25519_isneutral_vartime()
257 if(!fe25519_iseq_vartime(&p->y, &p->z)) ret = 0; in ge25519_isneutral_vartime()
265 ge25519_p3 pre[16]; in ge25519_double_scalarmult_vartime() local
270 setneutral(pre); /* 00 00 */ in ge25519_double_scalarmult_vartime()
271 pre[1] = *p1; /* 00 01 */ in ge25519_double_scalarmult_vartime()
272 dbl_p1p1(&tp1p1,(ge25519_p2 *)p1); p1p1_to_p3( &pre[2], &tp1p1); /* 00 10 */ in ge25519_double_scalarmult_vartime()
273 add_p1p1(&tp1p1,&pre[1], &pre[2]); p1p1_to_p3( &pre[3], &tp1p1); /* 00 11 */ in ge25519_double_scalarmult_vartime()
274 pre[4] = *p2; /* 01 00 */ in ge25519_double_scalarmult_vartime()
275 add_p1p1(&tp1p1,&pre[1], &pre[4]); p1p1_to_p3( &pre[5], &tp1p1); /* 01 01 */ in ge25519_double_scalarmult_vartime()
276 add_p1p1(&tp1p1,&pre[2], &pre[4]); p1p1_to_p3( &pre[6], &tp1p1); /* 01 10 */ in ge25519_double_scalarmult_vartime()
277 add_p1p1(&tp1p1,&pre[3], &pre[4]); p1p1_to_p3( &pre[7], &tp1p1); /* 01 11 */ in ge25519_double_scalarmult_vartime()
278 dbl_p1p1(&tp1p1,(ge25519_p2 *)p2); p1p1_to_p3( &pre[8], &tp1p1); /* 10 00 */ in ge25519_double_scalarmult_vartime()
279 add_p1p1(&tp1p1,&pre[1], &pre[8]); p1p1_to_p3( &pre[9], &tp1p1); /* 10 01 */ in ge25519_double_scalarmult_vartime()
280 dbl_p1p1(&tp1p1,(ge25519_p2 *)&pre[5]); p1p1_to_p3(&pre[10], &tp1p1); /* 10 10 */ in ge25519_double_scalarmult_vartime()
281 add_p1p1(&tp1p1,&pre[3], &pre[8]); p1p1_to_p3(&pre[11], &tp1p1); /* 10 11 */ in ge25519_double_scalarmult_vartime()
282 add_p1p1(&tp1p1,&pre[4], &pre[8]); p1p1_to_p3(&pre[12], &tp1p1); /* 11 00 */ in ge25519_double_scalarmult_vartime()
283 add_p1p1(&tp1p1,&pre[1],&pre[12]); p1p1_to_p3(&pre[13], &tp1p1); /* 11 01 */ in ge25519_double_scalarmult_vartime()
284 add_p1p1(&tp1p1,&pre[2],&pre[12]); p1p1_to_p3(&pre[14], &tp1p1); /* 11 10 */ in ge25519_double_scalarmult_vartime()
285 add_p1p1(&tp1p1,&pre[3],&pre[12]); p1p1_to_p3(&pre[15], &tp1p1); /* 11 11 */ in ge25519_double_scalarmult_vartime()
290 *r = pre[b[126]]; in ge25519_double_scalarmult_vartime()
299 add_p1p1(&tp1p1, r, &pre[b[i]]); in ge25519_double_scalarmult_vartime()