summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/ec/ec2_smpl.c
diff options
context:
space:
mode:
authorjsg <>2018-07-15 05:38:48 +0000
committerjsg <>2018-07-15 05:38:48 +0000
commit5a27d0fd33187fa17d3aa1b151b981a5434a200f (patch)
tree7b8b0c999036035f793976bbe0b018b39f74e217 /src/lib/libcrypto/ec/ec2_smpl.c
parent4ffff01bec4bc66afd2ef22fba624a0d3cffdc04 (diff)
downloadopenbsd-5a27d0fd33187fa17d3aa1b151b981a5434a200f.tar.gz
openbsd-5a27d0fd33187fa17d3aa1b151b981a5434a200f.tar.bz2
openbsd-5a27d0fd33187fa17d3aa1b151b981a5434a200f.zip
back out ecc constant time changes
after the constant time commits various regress tests started failing on sparc64 ssh t9, libcrypto ec ecdh ecdsa and trying to ssh out resulted in 'invalid elliptic curve value' ok tb@
Diffstat (limited to 'src/lib/libcrypto/ec/ec2_smpl.c')
-rw-r--r--src/lib/libcrypto/ec/ec2_smpl.c30
1 files changed, 17 insertions, 13 deletions
diff --git a/src/lib/libcrypto/ec/ec2_smpl.c b/src/lib/libcrypto/ec/ec2_smpl.c
index f1cbd3f3c4..c3fff56c44 100644
--- a/src/lib/libcrypto/ec/ec2_smpl.c
+++ b/src/lib/libcrypto/ec/ec2_smpl.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ec2_smpl.c,v 1.17 2018/07/10 22:06:14 tb Exp $ */ 1/* $OpenBSD: ec2_smpl.c,v 1.18 2018/07/15 05:38:48 jsg Exp $ */
2/* ==================================================================== 2/* ====================================================================
3 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 3 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED.
4 * 4 *
@@ -107,11 +107,15 @@ EC_GF2m_simple_method(void)
107 .point_cmp = ec_GF2m_simple_cmp, 107 .point_cmp = ec_GF2m_simple_cmp,
108 .make_affine = ec_GF2m_simple_make_affine, 108 .make_affine = ec_GF2m_simple_make_affine,
109 .points_make_affine = ec_GF2m_simple_points_make_affine, 109 .points_make_affine = ec_GF2m_simple_points_make_affine,
110 .mul_generator_ct = ec_GFp_simple_mul_generator_ct, 110
111 .mul_single_ct = ec_GFp_simple_mul_single_ct, 111 /*
112 .mul_double_nonct = ec_GFp_simple_mul_double_nonct, 112 * the following three method functions are defined in
113 * ec2_mult.c
114 */
115 .mul = ec_GF2m_simple_mul,
113 .precompute_mult = ec_GF2m_precompute_mult, 116 .precompute_mult = ec_GF2m_precompute_mult,
114 .have_precompute_mult = ec_GF2m_have_precompute_mult, 117 .have_precompute_mult = ec_GF2m_have_precompute_mult,
118
115 .field_mul = ec_GF2m_simple_field_mul, 119 .field_mul = ec_GF2m_simple_field_mul,
116 .field_sqr = ec_GF2m_simple_field_sqr, 120 .field_sqr = ec_GF2m_simple_field_sqr,
117 .field_div = ec_GF2m_simple_field_div, 121 .field_div = ec_GF2m_simple_field_div,
@@ -228,7 +232,7 @@ ec_GF2m_simple_group_set_curve(EC_GROUP * group,
228 group->b.d[i] = 0; 232 group->b.d[i] = 0;
229 233
230 ret = 1; 234 ret = 1;
231 err: 235err:
232 return ret; 236 return ret;
233} 237}
234 238
@@ -256,7 +260,7 @@ ec_GF2m_simple_group_get_curve(const EC_GROUP *group,
256 } 260 }
257 ret = 1; 261 ret = 1;
258 262
259 err: 263err:
260 return ret; 264 return ret;
261} 265}
262 266
@@ -302,7 +306,7 @@ ec_GF2m_simple_group_check_discriminant(const EC_GROUP * group, BN_CTX * ctx)
302 306
303 ret = 1; 307 ret = 1;
304 308
305 err: 309err:
306 if (ctx != NULL) 310 if (ctx != NULL)
307 BN_CTX_end(ctx); 311 BN_CTX_end(ctx);
308 BN_CTX_free(new_ctx); 312 BN_CTX_free(new_ctx);
@@ -394,7 +398,7 @@ ec_GF2m_simple_point_set_affine_coordinates(const EC_GROUP * group, EC_POINT * p
394 point->Z_is_one = 1; 398 point->Z_is_one = 1;
395 ret = 1; 399 ret = 1;
396 400
397 err: 401err:
398 return ret; 402 return ret;
399} 403}
400 404
@@ -428,7 +432,7 @@ ec_GF2m_simple_point_get_affine_coordinates(const EC_GROUP *group,
428 } 432 }
429 ret = 1; 433 ret = 1;
430 434
431 err: 435err:
432 return ret; 436 return ret;
433} 437}
434 438
@@ -545,7 +549,7 @@ ec_GF2m_simple_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a,
545 549
546 ret = 1; 550 ret = 1;
547 551
548 err: 552err:
549 BN_CTX_end(ctx); 553 BN_CTX_end(ctx);
550 BN_CTX_free(new_ctx); 554 BN_CTX_free(new_ctx);
551 return ret; 555 return ret;
@@ -637,7 +641,7 @@ ec_GF2m_simple_is_on_curve(const EC_GROUP *group, const EC_POINT *point, BN_CTX
637 if (!BN_GF2m_add(lh, lh, y2)) 641 if (!BN_GF2m_add(lh, lh, y2))
638 goto err; 642 goto err;
639 ret = BN_is_zero(lh); 643 ret = BN_is_zero(lh);
640 err: 644err:
641 if (ctx) 645 if (ctx)
642 BN_CTX_end(ctx); 646 BN_CTX_end(ctx);
643 BN_CTX_free(new_ctx); 647 BN_CTX_free(new_ctx);
@@ -689,7 +693,7 @@ ec_GF2m_simple_cmp(const EC_GROUP *group, const EC_POINT *a,
689 goto err; 693 goto err;
690 ret = ((BN_cmp(aX, bX) == 0) && BN_cmp(aY, bY) == 0) ? 0 : 1; 694 ret = ((BN_cmp(aX, bX) == 0) && BN_cmp(aY, bY) == 0) ? 0 : 1;
691 695
692 err: 696err:
693 if (ctx) 697 if (ctx)
694 BN_CTX_end(ctx); 698 BN_CTX_end(ctx);
695 BN_CTX_free(new_ctx); 699 BN_CTX_free(new_ctx);
@@ -730,7 +734,7 @@ ec_GF2m_simple_make_affine(const EC_GROUP * group, EC_POINT * point, BN_CTX * ct
730 734
731 ret = 1; 735 ret = 1;
732 736
733 err: 737err:
734 if (ctx) 738 if (ctx)
735 BN_CTX_end(ctx); 739 BN_CTX_end(ctx);
736 BN_CTX_free(new_ctx); 740 BN_CTX_free(new_ctx);