summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorjsing <>2025-03-24 12:49:13 +0000
committerjsing <>2025-03-24 12:49:13 +0000
commite8c19f02f4b0497ce5d3eca5d72b3cdaeaff9f09 (patch)
treef59ba7a56147b665a68f54d995cf8120a86282f9 /src/lib
parentdc037c8e2a8b5d7ac5744a0331ea0a65978e2a72 (diff)
downloadopenbsd-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.c7
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: