diff options
author | tb <> | 2025-01-01 09:57:02 +0000 |
---|---|---|
committer | tb <> | 2025-01-01 09:57:02 +0000 |
commit | 183ebcd147bfd493e4856f28b1ff4c9c6dbd0730 (patch) | |
tree | 9af62a1a58881fed0768c163faef515fca142874 /src/lib | |
parent | 4f4db522b10347e779e635569d9938a60931b0d1 (diff) | |
download | openbsd-183ebcd147bfd493e4856f28b1ff4c9c6dbd0730.tar.gz openbsd-183ebcd147bfd493e4856f28b1ff4c9c6dbd0730.tar.bz2 openbsd-183ebcd147bfd493e4856f28b1ff4c9c6dbd0730.zip |
Garbage collect .group_init()
For both in-tree methods these are just complicated ways of zeroing part
of the group object. The group is allocated with calloc(), so it's all
entirely pointless.
ok jsing
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/libcrypto/ec/ec_lib.c | 12 | ||||
-rw-r--r-- | src/lib/libcrypto/ec/ec_local.h | 3 | ||||
-rw-r--r-- | src/lib/libcrypto/ec/ecp_methods.c | 25 |
3 files changed, 3 insertions, 37 deletions
diff --git a/src/lib/libcrypto/ec/ec_lib.c b/src/lib/libcrypto/ec/ec_lib.c index 6644c4dfc7..aeb627dfba 100644 --- a/src/lib/libcrypto/ec/ec_lib.c +++ b/src/lib/libcrypto/ec/ec_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ec_lib.c,v 1.91 2024/12/12 10:02:00 tb Exp $ */ | 1 | /* $OpenBSD: ec_lib.c,v 1.92 2025/01/01 09:57:02 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 | */ |
@@ -84,10 +84,6 @@ EC_GROUP_new(const EC_METHOD *meth) | |||
84 | ECerror(EC_R_SLOT_FULL); | 84 | ECerror(EC_R_SLOT_FULL); |
85 | goto err; | 85 | goto err; |
86 | } | 86 | } |
87 | if (meth->group_init == NULL) { | ||
88 | ECerror(ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); | ||
89 | goto err; | ||
90 | } | ||
91 | if ((group = calloc(1, sizeof(*group))) == NULL) { | 87 | if ((group = calloc(1, sizeof(*group))) == NULL) { |
92 | ECerror(ERR_R_MALLOC_FAILURE); | 88 | ECerror(ERR_R_MALLOC_FAILURE); |
93 | goto err; | 89 | goto err; |
@@ -95,15 +91,9 @@ EC_GROUP_new(const EC_METHOD *meth) | |||
95 | 91 | ||
96 | group->meth = meth; | 92 | group->meth = meth; |
97 | 93 | ||
98 | BN_init(&group->order); | ||
99 | BN_init(&group->cofactor); | ||
100 | |||
101 | group->asn1_flag = OPENSSL_EC_NAMED_CURVE; | 94 | group->asn1_flag = OPENSSL_EC_NAMED_CURVE; |
102 | group->asn1_form = POINT_CONVERSION_UNCOMPRESSED; | 95 | group->asn1_form = POINT_CONVERSION_UNCOMPRESSED; |
103 | 96 | ||
104 | if (!meth->group_init(group)) | ||
105 | goto err; | ||
106 | |||
107 | return group; | 97 | return group; |
108 | 98 | ||
109 | err: | 99 | err: |
diff --git a/src/lib/libcrypto/ec/ec_local.h b/src/lib/libcrypto/ec/ec_local.h index ea1cd7adad..bce3f31d4d 100644 --- a/src/lib/libcrypto/ec/ec_local.h +++ b/src/lib/libcrypto/ec/ec_local.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ec_local.h,v 1.43 2024/12/12 10:00:15 tb Exp $ */ | 1 | /* $OpenBSD: ec_local.h,v 1.44 2025/01/01 09:57:02 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 | */ |
@@ -88,7 +88,6 @@ __BEGIN_HIDDEN_DECLS | |||
88 | struct ec_method_st { | 88 | struct ec_method_st { |
89 | int field_type; | 89 | int field_type; |
90 | 90 | ||
91 | int (*group_init)(EC_GROUP *); | ||
92 | void (*group_finish)(EC_GROUP *); | 91 | void (*group_finish)(EC_GROUP *); |
93 | int (*group_copy)(EC_GROUP *, const EC_GROUP *); | 92 | int (*group_copy)(EC_GROUP *, const EC_GROUP *); |
94 | 93 | ||
diff --git a/src/lib/libcrypto/ec/ecp_methods.c b/src/lib/libcrypto/ec/ecp_methods.c index 591d895c58..333922d351 100644 --- a/src/lib/libcrypto/ec/ecp_methods.c +++ b/src/lib/libcrypto/ec/ecp_methods.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ecp_methods.c,v 1.15 2025/01/01 09:31:05 tb Exp $ */ | 1 | /* $OpenBSD: ecp_methods.c,v 1.16 2025/01/01 09:57:02 tb 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. |
@@ -84,16 +84,6 @@ | |||
84 | * representation (i.e. 'encoding' means multiplying by some factor R). | 84 | * representation (i.e. 'encoding' means multiplying by some factor R). |
85 | */ | 85 | */ |
86 | 86 | ||
87 | static int | ||
88 | ec_group_init(EC_GROUP *group) | ||
89 | { | ||
90 | BN_init(&group->p); | ||
91 | BN_init(&group->a); | ||
92 | BN_init(&group->b); | ||
93 | group->a_is_minus3 = 0; | ||
94 | return 1; | ||
95 | } | ||
96 | |||
97 | static void | 87 | static void |
98 | ec_group_finish(EC_GROUP *group) | 88 | ec_group_finish(EC_GROUP *group) |
99 | { | 89 | { |
@@ -1536,17 +1526,6 @@ ec_mont_group_clear(EC_GROUP *group) | |||
1536 | group->mont_one = NULL; | 1526 | group->mont_one = NULL; |
1537 | } | 1527 | } |
1538 | 1528 | ||
1539 | static int | ||
1540 | ec_mont_group_init(EC_GROUP *group) | ||
1541 | { | ||
1542 | int ok; | ||
1543 | |||
1544 | ok = ec_group_init(group); | ||
1545 | group->mont_ctx = NULL; | ||
1546 | group->mont_one = NULL; | ||
1547 | return ok; | ||
1548 | } | ||
1549 | |||
1550 | static void | 1529 | static void |
1551 | ec_mont_group_finish(EC_GROUP *group) | 1530 | ec_mont_group_finish(EC_GROUP *group) |
1552 | { | 1531 | { |
@@ -1682,7 +1661,6 @@ ec_mont_field_set_to_one(const EC_GROUP *group, BIGNUM *r, BN_CTX *ctx) | |||
1682 | 1661 | ||
1683 | static const EC_METHOD ec_GFp_simple_method = { | 1662 | static const EC_METHOD ec_GFp_simple_method = { |
1684 | .field_type = NID_X9_62_prime_field, | 1663 | .field_type = NID_X9_62_prime_field, |
1685 | .group_init = ec_group_init, | ||
1686 | .group_finish = ec_group_finish, | 1664 | .group_finish = ec_group_finish, |
1687 | .group_copy = ec_group_copy, | 1665 | .group_copy = ec_group_copy, |
1688 | .group_set_curve = ec_group_set_curve, | 1666 | .group_set_curve = ec_group_set_curve, |
@@ -1719,7 +1697,6 @@ LCRYPTO_ALIAS(EC_GFp_simple_method); | |||
1719 | 1697 | ||
1720 | static const EC_METHOD ec_GFp_mont_method = { | 1698 | static const EC_METHOD ec_GFp_mont_method = { |
1721 | .field_type = NID_X9_62_prime_field, | 1699 | .field_type = NID_X9_62_prime_field, |
1722 | .group_init = ec_mont_group_init, | ||
1723 | .group_finish = ec_mont_group_finish, | 1700 | .group_finish = ec_mont_group_finish, |
1724 | .group_copy = ec_mont_group_copy, | 1701 | .group_copy = ec_mont_group_copy, |
1725 | .group_set_curve = ec_mont_group_set_curve, | 1702 | .group_set_curve = ec_mont_group_set_curve, |