summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/regress/lib/libcrypto/ec/ectest.c32
1 files changed, 15 insertions, 17 deletions
diff --git a/src/regress/lib/libcrypto/ec/ectest.c b/src/regress/lib/libcrypto/ec/ectest.c
index 212d5eef1a..427d1504b4 100644
--- a/src/regress/lib/libcrypto/ec/ectest.c
+++ b/src/regress/lib/libcrypto/ec/ectest.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ectest.c,v 1.30 2025/01/22 15:15:21 tb Exp $ */ 1/* $OpenBSD: ectest.c,v 1.31 2025/01/22 15:20:06 tb Exp $ */
2/* 2/*
3 * Originally written by Bodo Moeller for the OpenSSL project. 3 * Originally written by Bodo Moeller for the OpenSSL project.
4 */ 4 */
@@ -94,21 +94,22 @@
94 94
95/* test multiplication with group order, long and negative scalars */ 95/* test multiplication with group order, long and negative scalars */
96static void 96static void
97group_order_tests(EC_GROUP *group) 97group_order_tests(EC_GROUP *group, BN_CTX *ctx)
98{ 98{
99 BIGNUM *n1, *n2, *order; 99 BIGNUM *n1, *n2, *order;
100 EC_POINT *P = EC_POINT_new(group); 100 EC_POINT *P = EC_POINT_new(group);
101 EC_POINT *Q = EC_POINT_new(group); 101 EC_POINT *Q = EC_POINT_new(group);
102 BN_CTX *ctx;
103 102
104 if ((ctx = BN_CTX_new()) == NULL) 103 if (P == NULL || Q == NULL)
105 ABORT; 104 ABORT;
106 105
107 if ((n1 = BN_new()) == NULL) 106 BN_CTX_start(ctx);
107
108 if ((n1 = BN_CTX_get(ctx)) == NULL)
108 ABORT; 109 ABORT;
109 if ((n2 = BN_new()) == NULL) 110 if ((n2 = BN_CTX_get(ctx)) == NULL)
110 ABORT; 111 ABORT;
111 if ((order = BN_new()) == NULL) 112 if ((order = BN_CTX_get(ctx)) == NULL)
112 ABORT; 113 ABORT;
113 fprintf(stdout, "verify group order ..."); 114 fprintf(stdout, "verify group order ...");
114 fflush(stdout); 115 fflush(stdout);
@@ -154,10 +155,7 @@ group_order_tests(EC_GROUP *group)
154 fprintf(stdout, "ok\n"); 155 fprintf(stdout, "ok\n");
155 EC_POINT_free(P); 156 EC_POINT_free(P);
156 EC_POINT_free(Q); 157 EC_POINT_free(Q);
157 BN_free(n1); 158 BN_CTX_end(ctx);
158 BN_free(n2);
159 BN_free(order);
160 BN_CTX_free(ctx);
161} 159}
162 160
163static void 161static void
@@ -378,7 +376,7 @@ prime_field_tests(void)
378 ABORT; 376 ABORT;
379 fprintf(stdout, " ok\n"); 377 fprintf(stdout, " ok\n");
380 378
381 group_order_tests(group); 379 group_order_tests(group, ctx);
382 380
383 if ((P_160 = EC_GROUP_dup(group)) == NULL) 381 if ((P_160 = EC_GROUP_dup(group)) == NULL)
384 ABORT; 382 ABORT;
@@ -425,7 +423,7 @@ prime_field_tests(void)
425 ABORT; 423 ABORT;
426 fprintf(stdout, " ok\n"); 424 fprintf(stdout, " ok\n");
427 425
428 group_order_tests(group); 426 group_order_tests(group, ctx);
429 427
430 if ((P_192 = EC_GROUP_dup(group)) == NULL) 428 if ((P_192 = EC_GROUP_dup(group)) == NULL)
431 ABORT; 429 ABORT;
@@ -472,7 +470,7 @@ prime_field_tests(void)
472 ABORT; 470 ABORT;
473 fprintf(stdout, " ok\n"); 471 fprintf(stdout, " ok\n");
474 472
475 group_order_tests(group); 473 group_order_tests(group, ctx);
476 474
477 if ((P_224 = EC_GROUP_dup(group)) == NULL) 475 if ((P_224 = EC_GROUP_dup(group)) == NULL)
478 ABORT; 476 ABORT;
@@ -519,7 +517,7 @@ prime_field_tests(void)
519 ABORT; 517 ABORT;
520 fprintf(stdout, " ok\n"); 518 fprintf(stdout, " ok\n");
521 519
522 group_order_tests(group); 520 group_order_tests(group, ctx);
523 521
524 if ((P_256 = EC_GROUP_dup(group)) == NULL) 522 if ((P_256 = EC_GROUP_dup(group)) == NULL)
525 ABORT; 523 ABORT;
@@ -566,7 +564,7 @@ prime_field_tests(void)
566 ABORT; 564 ABORT;
567 fprintf(stdout, " ok\n"); 565 fprintf(stdout, " ok\n");
568 566
569 group_order_tests(group); 567 group_order_tests(group, ctx);
570 568
571 if ((P_384 = EC_GROUP_dup(group)) == NULL) 569 if ((P_384 = EC_GROUP_dup(group)) == NULL)
572 ABORT; 570 ABORT;
@@ -619,7 +617,7 @@ prime_field_tests(void)
619 ABORT; 617 ABORT;
620 fprintf(stdout, " ok\n"); 618 fprintf(stdout, " ok\n");
621 619
622 group_order_tests(group); 620 group_order_tests(group, ctx);
623 621
624 if ((P_521 = EC_GROUP_dup(group)) == NULL) 622 if ((P_521 = EC_GROUP_dup(group)) == NULL)
625 ABORT; 623 ABORT;