diff options
Diffstat (limited to 'src/lib/libcrypto/ec/ecp_smpl.c')
| -rw-r--r-- | src/lib/libcrypto/ec/ecp_smpl.c | 41 |
1 files changed, 14 insertions, 27 deletions
diff --git a/src/lib/libcrypto/ec/ecp_smpl.c b/src/lib/libcrypto/ec/ecp_smpl.c index 5ba9a925d6..dabc5af899 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.12 2014/06/12 15:49:29 deraadt Exp $ */ | 1 | /* $OpenBSD: ecp_smpl.c,v 1.13 2014/07/12 16:03:37 miod 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. |
| @@ -222,8 +222,7 @@ ec_GFp_simple_group_set_curve(EC_GROUP * group, | |||
| 222 | 222 | ||
| 223 | err: | 223 | err: |
| 224 | BN_CTX_end(ctx); | 224 | BN_CTX_end(ctx); |
| 225 | if (new_ctx != NULL) | 225 | BN_CTX_free(new_ctx); |
| 226 | BN_CTX_free(new_ctx); | ||
| 227 | return ret; | 226 | return ret; |
| 228 | } | 227 | } |
| 229 | 228 | ||
| @@ -267,8 +266,7 @@ ec_GFp_simple_group_get_curve(const EC_GROUP * group, BIGNUM * p, BIGNUM * a, BI | |||
| 267 | ret = 1; | 266 | ret = 1; |
| 268 | 267 | ||
| 269 | err: | 268 | err: |
| 270 | if (new_ctx) | 269 | BN_CTX_free(new_ctx); |
| 271 | BN_CTX_free(new_ctx); | ||
| 272 | return ret; | 270 | return ret; |
| 273 | } | 271 | } |
| 274 | 272 | ||
| @@ -348,8 +346,7 @@ ec_GFp_simple_group_check_discriminant(const EC_GROUP * group, BN_CTX * ctx) | |||
| 348 | err: | 346 | err: |
| 349 | if (ctx != NULL) | 347 | if (ctx != NULL) |
| 350 | BN_CTX_end(ctx); | 348 | BN_CTX_end(ctx); |
| 351 | if (new_ctx != NULL) | 349 | BN_CTX_free(new_ctx); |
| 352 | BN_CTX_free(new_ctx); | ||
| 353 | return ret; | 350 | return ret; |
| 354 | } | 351 | } |
| 355 | 352 | ||
| @@ -457,8 +454,7 @@ ec_GFp_simple_set_Jprojective_coordinates_GFp(const EC_GROUP * group, EC_POINT * | |||
| 457 | ret = 1; | 454 | ret = 1; |
| 458 | 455 | ||
| 459 | err: | 456 | err: |
| 460 | if (new_ctx != NULL) | 457 | BN_CTX_free(new_ctx); |
| 461 | BN_CTX_free(new_ctx); | ||
| 462 | return ret; | 458 | return ret; |
| 463 | } | 459 | } |
| 464 | 460 | ||
| @@ -506,8 +502,7 @@ ec_GFp_simple_get_Jprojective_coordinates_GFp(const EC_GROUP * group, const EC_P | |||
| 506 | ret = 1; | 502 | ret = 1; |
| 507 | 503 | ||
| 508 | err: | 504 | err: |
| 509 | if (new_ctx != NULL) | 505 | BN_CTX_free(new_ctx); |
| 510 | BN_CTX_free(new_ctx); | ||
| 511 | return ret; | 506 | return ret; |
| 512 | } | 507 | } |
| 513 | 508 | ||
| @@ -626,8 +621,7 @@ ec_GFp_simple_point_get_affine_coordinates(const EC_GROUP * group, const EC_POIN | |||
| 626 | 621 | ||
| 627 | err: | 622 | err: |
| 628 | BN_CTX_end(ctx); | 623 | BN_CTX_end(ctx); |
| 629 | if (new_ctx != NULL) | 624 | BN_CTX_free(new_ctx); |
| 630 | BN_CTX_free(new_ctx); | ||
| 631 | return ret; | 625 | return ret; |
| 632 | } | 626 | } |
| 633 | 627 | ||
| @@ -810,8 +804,7 @@ ec_GFp_simple_add(const EC_GROUP * group, EC_POINT * r, const EC_POINT * a, cons | |||
| 810 | end: | 804 | end: |
| 811 | if (ctx) /* otherwise we already called BN_CTX_end */ | 805 | if (ctx) /* otherwise we already called BN_CTX_end */ |
| 812 | BN_CTX_end(ctx); | 806 | BN_CTX_end(ctx); |
| 813 | if (new_ctx != NULL) | 807 | BN_CTX_free(new_ctx); |
| 814 | BN_CTX_free(new_ctx); | ||
| 815 | return ret; | 808 | return ret; |
| 816 | } | 809 | } |
| 817 | 810 | ||
| @@ -951,8 +944,7 @@ ec_GFp_simple_dbl(const EC_GROUP * group, EC_POINT * r, const EC_POINT * a, BN_C | |||
| 951 | 944 | ||
| 952 | err: | 945 | err: |
| 953 | BN_CTX_end(ctx); | 946 | BN_CTX_end(ctx); |
| 954 | if (new_ctx != NULL) | 947 | BN_CTX_free(new_ctx); |
| 955 | BN_CTX_free(new_ctx); | ||
| 956 | return ret; | 948 | return ret; |
| 957 | } | 949 | } |
| 958 | 950 | ||
| @@ -1071,8 +1063,7 @@ ec_GFp_simple_is_on_curve(const EC_GROUP * group, const EC_POINT * point, BN_CTX | |||
| 1071 | 1063 | ||
| 1072 | err: | 1064 | err: |
| 1073 | BN_CTX_end(ctx); | 1065 | BN_CTX_end(ctx); |
| 1074 | if (new_ctx != NULL) | 1066 | BN_CTX_free(new_ctx); |
| 1075 | BN_CTX_free(new_ctx); | ||
| 1076 | return ret; | 1067 | return ret; |
| 1077 | } | 1068 | } |
| 1078 | 1069 | ||
| @@ -1172,8 +1163,7 @@ ec_GFp_simple_cmp(const EC_GROUP * group, const EC_POINT * a, const EC_POINT * b | |||
| 1172 | 1163 | ||
| 1173 | end: | 1164 | end: |
| 1174 | BN_CTX_end(ctx); | 1165 | BN_CTX_end(ctx); |
| 1175 | if (new_ctx != NULL) | 1166 | BN_CTX_free(new_ctx); |
| 1176 | BN_CTX_free(new_ctx); | ||
| 1177 | return ret; | 1167 | return ret; |
| 1178 | } | 1168 | } |
| 1179 | 1169 | ||
| @@ -1211,8 +1201,7 @@ ec_GFp_simple_make_affine(const EC_GROUP * group, EC_POINT * point, BN_CTX * ctx | |||
| 1211 | 1201 | ||
| 1212 | err: | 1202 | err: |
| 1213 | BN_CTX_end(ctx); | 1203 | BN_CTX_end(ctx); |
| 1214 | if (new_ctx != NULL) | 1204 | BN_CTX_free(new_ctx); |
| 1215 | BN_CTX_free(new_ctx); | ||
| 1216 | return ret; | 1205 | return ret; |
| 1217 | } | 1206 | } |
| 1218 | 1207 | ||
| @@ -1377,16 +1366,14 @@ ec_GFp_simple_points_make_affine(const EC_GROUP * group, size_t num, EC_POINT * | |||
| 1377 | 1366 | ||
| 1378 | err: | 1367 | err: |
| 1379 | BN_CTX_end(ctx); | 1368 | BN_CTX_end(ctx); |
| 1380 | if (new_ctx != NULL) | 1369 | BN_CTX_free(new_ctx); |
| 1381 | BN_CTX_free(new_ctx); | ||
| 1382 | if (heap != NULL) { | 1370 | if (heap != NULL) { |
| 1383 | /* | 1371 | /* |
| 1384 | * heap[pow2/2] .. heap[pow2-1] have not been allocated | 1372 | * heap[pow2/2] .. heap[pow2-1] have not been allocated |
| 1385 | * locally! | 1373 | * locally! |
| 1386 | */ | 1374 | */ |
| 1387 | for (i = pow2 / 2 - 1; i > 0; i--) { | 1375 | for (i = pow2 / 2 - 1; i > 0; i--) { |
| 1388 | if (heap[i] != NULL) | 1376 | BN_clear_free(heap[i]); |
| 1389 | BN_clear_free(heap[i]); | ||
| 1390 | } | 1377 | } |
| 1391 | free(heap); | 1378 | free(heap); |
| 1392 | } | 1379 | } |
