diff --git a/src/owe.c b/src/owe.c index eed3e266..faa4e17d 100644 --- a/src/owe.c +++ b/src/owe.c @@ -45,6 +45,20 @@ struct owe_sm { static bool owe_reset(struct owe_sm *owe) { + if (owe->hs->force_default_owe_group) { + if (owe->retry != 0) { + l_warn("Forced default OWE group but was rejected!"); + return false; + } + + l_debug("Forcing default OWE group 19"); + + owe->retry++; + owe->group = 19; + + goto get_curve; + } + /* * Reset OWE with a different curve group and generate a new key pair */ @@ -52,6 +66,8 @@ static bool owe_reset(struct owe_sm *owe) return false; owe->group = owe->ecc_groups[owe->retry]; + +get_curve: owe->curve = l_ecc_curve_from_ike_group(owe->group); if (owe->private)