summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortb <>2018-11-06 06:59:25 +0000
committertb <>2018-11-06 06:59:25 +0000
commit8920ada6f077f74fa71612e7cab28a0a06089296 (patch)
tree18bd4f279600c3d7244f18708e087e2cf789baff
parent0d8f73ccccab150253c882863ba7cdf06702da4c (diff)
downloadopenbsd-8920ada6f077f74fa71612e7cab28a0a06089296.tar.gz
openbsd-8920ada6f077f74fa71612e7cab28a0a06089296.tar.bz2
openbsd-8920ada6f077f74fa71612e7cab28a0a06089296.zip
Unset Z_is_zero after applying coordinate blinding and
re-enable coordinate blinding. ok jsing
-rw-r--r--src/lib/libcrypto/ec/ecp_smpl.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lib/libcrypto/ec/ecp_smpl.c b/src/lib/libcrypto/ec/ecp_smpl.c
index d3fcd99670..e379a74fb1 100644
--- a/src/lib/libcrypto/ec/ecp_smpl.c
+++ b/src/lib/libcrypto/ec/ecp_smpl.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ecp_smpl.c,v 1.26 2018/11/06 02:16:13 tb Exp $ */ 1/* $OpenBSD: ecp_smpl.c,v 1.27 2018/11/06 06:59:25 tb Exp $ */
2/* Includes code written by Lenka Fibikova <fibikova@exp-math.uni-essen.de> 2/* Includes code written by Lenka Fibikova <fibikova@exp-math.uni-essen.de>
3 * for the OpenSSL project. 3 * for the OpenSSL project.
4 * Includes code written by Bodo Moeller for the OpenSSL project. 4 * Includes code written by Bodo Moeller for the OpenSSL project.
@@ -1463,6 +1463,9 @@ ec_GFp_simple_blind_coordinates(const EC_GROUP *group, EC_POINT *p, BN_CTX *ctx)
1463 if (!group->meth->field_mul(group, &p->Y, tmp, &p->Y, ctx)) 1463 if (!group->meth->field_mul(group, &p->Y, tmp, &p->Y, ctx))
1464 goto err; 1464 goto err;
1465 1465
1466 /* Disable optimized arithmetics after replacing Z by lambda * Z. */
1467 p->Z_is_one = 0;
1468
1466 ret = 1; 1469 ret = 1;
1467 1470
1468 err: 1471 err:
@@ -1599,10 +1602,8 @@ ec_GFp_simple_mul_ct(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar,
1599 * Apply coordinate blinding for EC_POINT if the underlying EC_METHOD 1602 * Apply coordinate blinding for EC_POINT if the underlying EC_METHOD
1600 * implements it. 1603 * implements it.
1601 */ 1604 */
1602#if 0
1603 if (!ec_point_blind_coordinates(group, s, ctx)) 1605 if (!ec_point_blind_coordinates(group, s, ctx))
1604 goto err; 1606 goto err;
1605#endif
1606 1607
1607 /* top bit is a 1, in a fixed pos */ 1608 /* top bit is a 1, in a fixed pos */
1608 if (!EC_POINT_copy(r, s)) 1609 if (!EC_POINT_copy(r, s))