diff options
author | jsg <> | 2018-07-15 05:38:48 +0000 |
---|---|---|
committer | jsg <> | 2018-07-15 05:38:48 +0000 |
commit | 5a27d0fd33187fa17d3aa1b151b981a5434a200f (patch) | |
tree | 7b8b0c999036035f793976bbe0b018b39f74e217 /src/lib/libcrypto/ec/ec2_smpl.c | |
parent | 4ffff01bec4bc66afd2ef22fba624a0d3cffdc04 (diff) | |
download | openbsd-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.c | 30 |
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: | 235 | err: |
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: | 263 | err: |
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: | 309 | err: |
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: | 401 | err: |
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: | 435 | err: |
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: | 552 | err: |
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: | 644 | err: |
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: | 696 | err: |
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: | 737 | err: |
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); |