summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/ec/ecp_smpl.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/ec/ecp_smpl.c')
-rw-r--r--src/lib/libcrypto/ec/ecp_smpl.c101
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 /*