diff options
Diffstat (limited to 'src/lib/libcrypto/ec/ecp_smpl.c')
-rw-r--r-- | src/lib/libcrypto/ec/ecp_smpl.c | 101 |
1 files changed, 58 insertions, 43 deletions
diff --git a/src/lib/libcrypto/ec/ecp_smpl.c b/src/lib/libcrypto/ec/ecp_smpl.c index 7b3bb2364d..f6db4dc9b1 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.14 2015/02/08 22:25:03 miod Exp $ */ | 1 | /* $OpenBSD: ecp_smpl.c,v 1.15 2015/02/09 15:49:22 jsing 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. |
@@ -188,8 +188,7 @@ ec_GFp_simple_group_set_curve(EC_GROUP * group, | |||
188 | return 0; | 188 | return 0; |
189 | } | 189 | } |
190 | BN_CTX_start(ctx); | 190 | BN_CTX_start(ctx); |
191 | tmp_a = BN_CTX_get(ctx); | 191 | if ((tmp_a = BN_CTX_get(ctx)) == NULL) |
192 | if (tmp_a == NULL) | ||
193 | goto err; | 192 | goto err; |
194 | 193 | ||
195 | /* group->field */ | 194 | /* group->field */ |
@@ -294,12 +293,15 @@ ec_GFp_simple_group_check_discriminant(const EC_GROUP * group, BN_CTX * ctx) | |||
294 | } | 293 | } |
295 | } | 294 | } |
296 | BN_CTX_start(ctx); | 295 | BN_CTX_start(ctx); |
297 | a = BN_CTX_get(ctx); | 296 | if ((a = BN_CTX_get(ctx)) == NULL) |
298 | b = BN_CTX_get(ctx); | 297 | goto err; |
299 | tmp_1 = BN_CTX_get(ctx); | 298 | if ((b = BN_CTX_get(ctx)) == NULL) |
300 | tmp_2 = BN_CTX_get(ctx); | 299 | goto err; |
301 | order = BN_CTX_get(ctx); | 300 | if ((tmp_1 = BN_CTX_get(ctx)) == NULL) |
302 | if (order == NULL) | 301 | goto err; |
302 | if ((tmp_2 = BN_CTX_get(ctx)) == NULL) | ||
303 | goto err; | ||
304 | if ((order = BN_CTX_get(ctx)) == NULL) | ||
303 | goto err; | 305 | goto err; |
304 | 306 | ||
305 | if (group->meth->field_decode) { | 307 | if (group->meth->field_decode) { |
@@ -539,11 +541,13 @@ ec_GFp_simple_point_get_affine_coordinates(const EC_GROUP * group, const EC_POIN | |||
539 | return 0; | 541 | return 0; |
540 | } | 542 | } |
541 | BN_CTX_start(ctx); | 543 | BN_CTX_start(ctx); |
542 | Z = BN_CTX_get(ctx); | 544 | if ((Z = BN_CTX_get(ctx)) == NULL) |
543 | Z_1 = BN_CTX_get(ctx); | 545 | goto err; |
544 | Z_2 = BN_CTX_get(ctx); | 546 | if ((Z_1 = BN_CTX_get(ctx)) == NULL) |
545 | Z_3 = BN_CTX_get(ctx); | 547 | goto err; |
546 | if (Z_3 == NULL) | 548 | if ((Z_2 = BN_CTX_get(ctx)) == NULL) |
549 | goto err; | ||
550 | if ((Z_3 = BN_CTX_get(ctx)) == NULL) | ||
547 | goto err; | 551 | goto err; |
548 | 552 | ||
549 | /* transform (X, Y, Z) into (x, y) := (X/Z^2, Y/Z^3) */ | 553 | /* transform (X, Y, Z) into (x, y) := (X/Z^2, Y/Z^3) */ |
@@ -652,14 +656,19 @@ ec_GFp_simple_add(const EC_GROUP * group, EC_POINT * r, const EC_POINT * a, cons | |||
652 | return 0; | 656 | return 0; |
653 | } | 657 | } |
654 | BN_CTX_start(ctx); | 658 | BN_CTX_start(ctx); |
655 | n0 = BN_CTX_get(ctx); | 659 | if ((n0 = BN_CTX_get(ctx)) == NULL) |
656 | n1 = BN_CTX_get(ctx); | 660 | goto end; |
657 | n2 = BN_CTX_get(ctx); | 661 | if ((n1 = BN_CTX_get(ctx)) == NULL) |
658 | n3 = BN_CTX_get(ctx); | 662 | goto end; |
659 | n4 = BN_CTX_get(ctx); | 663 | if ((n2 = BN_CTX_get(ctx)) == NULL) |
660 | n5 = BN_CTX_get(ctx); | 664 | goto end; |
661 | n6 = BN_CTX_get(ctx); | 665 | if ((n3 = BN_CTX_get(ctx)) == NULL) |
662 | if (n6 == NULL) | 666 | goto end; |
667 | if ((n4 = BN_CTX_get(ctx)) == NULL) | ||
668 | goto end; | ||
669 | if ((n5 = BN_CTX_get(ctx)) == NULL) | ||
670 | goto end; | ||
671 | if ((n6 = BN_CTX_get(ctx)) == NULL) | ||
663 | goto end; | 672 | goto end; |
664 | 673 | ||
665 | /* | 674 | /* |
@@ -834,11 +843,13 @@ ec_GFp_simple_dbl(const EC_GROUP * group, EC_POINT * r, const EC_POINT * a, BN_C | |||
834 | return 0; | 843 | return 0; |
835 | } | 844 | } |
836 | BN_CTX_start(ctx); | 845 | BN_CTX_start(ctx); |
837 | n0 = BN_CTX_get(ctx); | 846 | if ((n0 = BN_CTX_get(ctx)) == NULL) |
838 | n1 = BN_CTX_get(ctx); | 847 | goto err; |
839 | n2 = BN_CTX_get(ctx); | 848 | if ((n1 = BN_CTX_get(ctx)) == NULL) |
840 | n3 = BN_CTX_get(ctx); | 849 | goto err; |
841 | if (n3 == NULL) | 850 | if ((n2 = BN_CTX_get(ctx)) == NULL) |
851 | goto err; | ||
852 | if ((n3 = BN_CTX_get(ctx)) == NULL) | ||
842 | goto err; | 853 | goto err; |
843 | 854 | ||
844 | /* | 855 | /* |
@@ -990,11 +1001,13 @@ ec_GFp_simple_is_on_curve(const EC_GROUP * group, const EC_POINT * point, BN_CTX | |||
990 | return -1; | 1001 | return -1; |
991 | } | 1002 | } |
992 | BN_CTX_start(ctx); | 1003 | BN_CTX_start(ctx); |
993 | rh = BN_CTX_get(ctx); | 1004 | if ((rh = BN_CTX_get(ctx)) == NULL) |
994 | tmp = BN_CTX_get(ctx); | 1005 | goto err; |
995 | Z4 = BN_CTX_get(ctx); | 1006 | if ((tmp = BN_CTX_get(ctx)) == NULL) |
996 | Z6 = BN_CTX_get(ctx); | 1007 | goto err; |
997 | if (Z6 == NULL) | 1008 | if ((Z4 = BN_CTX_get(ctx)) == NULL) |
1009 | goto err; | ||
1010 | if ((Z6 = BN_CTX_get(ctx)) == NULL) | ||
998 | goto err; | 1011 | goto err; |
999 | 1012 | ||
1000 | /* | 1013 | /* |
@@ -1101,11 +1114,13 @@ ec_GFp_simple_cmp(const EC_GROUP * group, const EC_POINT * a, const EC_POINT * b | |||
1101 | return -1; | 1114 | return -1; |
1102 | } | 1115 | } |
1103 | BN_CTX_start(ctx); | 1116 | BN_CTX_start(ctx); |
1104 | tmp1 = BN_CTX_get(ctx); | 1117 | if ((tmp1 = BN_CTX_get(ctx)) == NULL) |
1105 | tmp2 = BN_CTX_get(ctx); | 1118 | goto end; |
1106 | Za23 = BN_CTX_get(ctx); | 1119 | if ((tmp2 = BN_CTX_get(ctx)) == NULL) |
1107 | Zb23 = BN_CTX_get(ctx); | 1120 | goto end; |
1108 | if (Zb23 == NULL) | 1121 | if ((Za23 = BN_CTX_get(ctx)) == NULL) |
1122 | goto end; | ||
1123 | if ((Zb23 = BN_CTX_get(ctx)) == NULL) | ||
1109 | goto end; | 1124 | goto end; |
1110 | 1125 | ||
1111 | /* | 1126 | /* |
@@ -1184,9 +1199,9 @@ ec_GFp_simple_make_affine(const EC_GROUP * group, EC_POINT * point, BN_CTX * ctx | |||
1184 | return 0; | 1199 | return 0; |
1185 | } | 1200 | } |
1186 | BN_CTX_start(ctx); | 1201 | BN_CTX_start(ctx); |
1187 | x = BN_CTX_get(ctx); | 1202 | if ((x = BN_CTX_get(ctx)) == NULL) |
1188 | y = BN_CTX_get(ctx); | 1203 | goto err; |
1189 | if (y == NULL) | 1204 | if ((y = BN_CTX_get(ctx)) == NULL) |
1190 | goto err; | 1205 | goto err; |
1191 | 1206 | ||
1192 | if (!EC_POINT_get_affine_coordinates_GFp(group, point, x, y, ctx)) | 1207 | if (!EC_POINT_get_affine_coordinates_GFp(group, point, x, y, ctx)) |
@@ -1225,9 +1240,9 @@ ec_GFp_simple_points_make_affine(const EC_GROUP * group, size_t num, EC_POINT * | |||
1225 | return 0; | 1240 | return 0; |
1226 | } | 1241 | } |
1227 | BN_CTX_start(ctx); | 1242 | BN_CTX_start(ctx); |
1228 | tmp0 = BN_CTX_get(ctx); | 1243 | if ((tmp0 = BN_CTX_get(ctx)) == NULL) |
1229 | tmp1 = BN_CTX_get(ctx); | 1244 | goto err; |
1230 | if (tmp0 == NULL || tmp1 == NULL) | 1245 | if ((tmp1 = BN_CTX_get(ctx)) == NULL) |
1231 | goto err; | 1246 | goto err; |
1232 | 1247 | ||
1233 | /* | 1248 | /* |