diff options
author | jsing <> | 2025-03-24 12:49:13 +0000 |
---|---|---|
committer | jsing <> | 2025-03-24 12:49:13 +0000 |
commit | e8c19f02f4b0497ce5d3eca5d72b3cdaeaff9f09 (patch) | |
tree | f59ba7a56147b665a68f54d995cf8120a86282f9 /src/lib | |
parent | dc037c8e2a8b5d7ac5744a0331ea0a65978e2a72 (diff) | |
download | openbsd-e8c19f02f4b0497ce5d3eca5d72b3cdaeaff9f09.tar.gz openbsd-e8c19f02f4b0497ce5d3eca5d72b3cdaeaff9f09.tar.bz2 openbsd-e8c19f02f4b0497ce5d3eca5d72b3cdaeaff9f09.zip |
Check group generator in EC_POINT_mul().
When a non-NULL generator scalar is passed to EC_POINT_mul(), the group's
generator will be used in multiplication. Add a check that ensures that the
group generator is non-NULL, in order to avoid needing to handle this
elsewhere (currently in the lower level point multiplication code).
ok tb@
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/libcrypto/ec/ec_lib.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/libcrypto/ec/ec_lib.c b/src/lib/libcrypto/ec/ec_lib.c index 315a8130cf..598038de1d 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.121 2025/03/09 15:42:19 tb Exp $ */ | 1 | /* $OpenBSD: ec_lib.c,v 1.122 2025/03/24 12:49:13 jsing 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 | */ |
@@ -1319,6 +1319,11 @@ EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *g_scalar, | |||
1319 | goto err; | 1319 | goto err; |
1320 | } | 1320 | } |
1321 | 1321 | ||
1322 | if (g_scalar != NULL && group->generator == NULL) { | ||
1323 | ECerror(EC_R_UNDEFINED_GENERATOR); | ||
1324 | goto err; | ||
1325 | } | ||
1326 | |||
1322 | if (g_scalar != NULL && point == NULL && p_scalar == NULL) { | 1327 | if (g_scalar != NULL && point == NULL && p_scalar == NULL) { |
1323 | /* | 1328 | /* |
1324 | * In this case we want to compute g_scalar * GeneratorPoint: | 1329 | * In this case we want to compute g_scalar * GeneratorPoint: |