Index: plasma-nm-5.15.5/vpn/strongswan/nm-strongswan-service.h =================================================================== --- plasma-nm-5.15.5/vpn/strongswan/nm-strongswan-service.h +++ plasma-nm-5.15.5/vpn/strongswan/nm-strongswan-service.h @@ -37,6 +37,9 @@ #define NM_STRONGSWAN_INNERIP "virtual" #define NM_STRONGSWAN_ENCAP "encap" #define NM_STRONGSWAN_IPCOMP "ipcomp" +#define NM_STRONGSWAN_PROPOSAL "proposal" +#define NM_STRONGSWAN_IKE "ike" +#define NM_STRONGSWAN_ESP "esp" #define NM_STRONGSWAN_AUTH_KEY "key" #define NM_STRONGSWAN_AUTH_AGENT "agent" Index: plasma-nm-5.15.5/vpn/strongswan/strongswanprop.ui =================================================================== --- plasma-nm-5.15.5/vpn/strongswan/strongswanprop.ui +++ plasma-nm-5.15.5/vpn/strongswan/strongswanprop.ui @@ -6,8 +6,8 @@ 0 0 - 490 - 460 + 518 + 581 @@ -287,6 +287,50 @@ + + + + + Enable Custom Cipher Proposals + + + true + + + + + + + + IKE: + + + + + + + A list of proposals for IKE separated by ";" + + + + + + + ESP: + + + + + + + A list of proposals for ESP separated by ";" + + + + + + + Index: plasma-nm-5.15.5/vpn/strongswan/strongswanwidget.cpp =================================================================== --- plasma-nm-5.15.5/vpn/strongswan/strongswanwidget.cpp +++ plasma-nm-5.15.5/vpn/strongswan/strongswanwidget.cpp @@ -49,6 +49,7 @@ // Connect for validity check connect(d->ui.leGateway, &QLineEdit::textChanged, this, &StrongswanSettingWidget::slotWidgetChanged); + connect(d->ui.proposal, &QGroupBox::toggled, this, &SettingWidget::settingChanged); KAcceleratorManager::manage(this); @@ -97,6 +98,9 @@ d->ui.innerIP->setChecked(dataMap[NM_STRONGSWAN_INNERIP] == "yes"); d->ui.udpEncap->setChecked(dataMap[NM_STRONGSWAN_ENCAP] == "yes"); d->ui.ipComp->setChecked(dataMap[NM_STRONGSWAN_IPCOMP] == "yes"); + d->ui.proposal->setChecked(dataMap[NM_STRONGSWAN_PROPOSAL] == "yes"); + d->ui.ike->setText(dataMap[NM_STRONGSWAN_IKE]); + d->ui.esp->setText(dataMap[NM_STRONGSWAN_ESP]); } void StrongswanSettingWidget::loadSecrets(const NetworkManager::Setting::Ptr &setting) @@ -148,6 +152,12 @@ data.insert(NM_STRONGSWAN_INNERIP, d->ui.innerIP->isChecked() ? "yes" : "no"); data.insert(NM_STRONGSWAN_ENCAP, d->ui.udpEncap->isChecked() ? "yes" : "no"); data.insert(NM_STRONGSWAN_IPCOMP, d->ui.ipComp->isChecked() ? "yes" : "no"); + if (d->ui.proposal->isChecked()) { + data.insert(NM_STRONGSWAN_PROPOSAL, "yes"); + data.insert(NM_STRONGSWAN_IKE, d->ui.ike->text()); + data.insert(NM_STRONGSWAN_ESP, d->ui.esp->text()); + } else + data.insert(NM_STRONGSWAN_PROPOSAL, "no"); // save it all setting.setData(data);