summaryrefslogtreecommitdiffstats
path: root/src/crypto/ec/ec.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/crypto/ec/ec.c')
-rw-r--r--src/crypto/ec/ec.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/crypto/ec/ec.c b/src/crypto/ec/ec.c
index 5e30730..f38eba6 100644
--- a/src/crypto/ec/ec.c
+++ b/src/crypto/ec/ec.c
@@ -289,6 +289,12 @@ EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a,
int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator,
const BIGNUM *order, const BIGNUM *cofactor) {
+ if (group->curve_name != NID_undef) {
+ /* |EC_GROUP_set_generator| should only be used with |EC_GROUP|s returned
+ * by |EC_GROUP_new_curve_GFp|. */
+ return 0;
+ }
+
if (group->generator == NULL) {
group->generator = EC_POINT_new(group);
if (group->generator == NULL) {