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 | |
| 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')
| -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: |
