diff --git a/src/app/constant/JamiStrings.qml b/src/app/constant/JamiStrings.qml index 90e255d453e7d5d06c4e230100379e7afc534310..3e83a6c4747571ff4ef3cd755b013e23952b96a7 100644 --- a/src/app/constant/JamiStrings.qml +++ b/src/app/constant/JamiStrings.qml @@ -115,6 +115,7 @@ Item { property string verifyCertificatesServer: qsTr("Verify certificates for incoming TLS connections") property string verifyCertificatesClient: qsTr("Verify server TLS certificates") property string tlsRequireConnections: qsTr("Require certificate for incoming TLS connections") + property string disableSecureDlgCheck: qsTr("Disable secure dialog check for incoming TLS data") property string tlsProtocol: qsTr("TLS protocol method") property string audioDeviceSelector: qsTr("Audio input device selector") property string tlsServerName: qsTr("TLS server name") diff --git a/src/app/currentaccount.cpp b/src/app/currentaccount.cpp index 24eb9f63e33bb1686e3669c6c5089d5b32241f45..440744ef2ec06cfd2c051806ecab8681fb4152e7 100644 --- a/src/app/currentaccount.cpp +++ b/src/app/currentaccount.cpp @@ -141,6 +141,7 @@ CurrentAccount::updateData() set_verifyServerTLS(accConfig.TLS.verifyServer, true); set_verifyClientTLS(accConfig.TLS.verifyClient, true); set_requireClientCertificateTLS(accConfig.TLS.requireClientCertificate, true); + set_disableSecureDlgCheckTLS(accConfig.TLS.disableSecureDlgCheck, true); set_certificateListFileTLS(accConfig.TLS.certificateListFile, true); set_certificateFileTLS(accConfig.TLS.certificateFile, true); set_privateKeyFileTLS(accConfig.TLS.privateKeyFile, true); diff --git a/src/app/currentaccount.h b/src/app/currentaccount.h index 4141f8638c7772e774009709989b4826396719c7..4f99b10450a6aa022b4d0a7021f5fc42f9bb9540 100644 --- a/src/app/currentaccount.h +++ b/src/app/currentaccount.h @@ -148,6 +148,7 @@ class CurrentAccount final : public QObject QML_ACCOUNT_CONFIG_CATEGORY_SETTINGS_PROPERTY(bool, verifyServer, TLS) QML_ACCOUNT_CONFIG_CATEGORY_SETTINGS_PROPERTY(bool, verifyClient, TLS) QML_ACCOUNT_CONFIG_CATEGORY_SETTINGS_PROPERTY(bool, requireClientCertificate, TLS) + QML_ACCOUNT_CONFIG_CATEGORY_SETTINGS_PROPERTY(bool, disableSecureDlgCheck, TLS) QML_ACCOUNT_CONFIG_CATEGORY_SETTINGS_PROPERTY(QString, certificateListFile, TLS) QML_ACCOUNT_CONFIG_CATEGORY_SETTINGS_PROPERTY(QString, certificateFile, TLS) QML_ACCOUNT_CONFIG_CATEGORY_SETTINGS_PROPERTY(QString, privateKeyFile, TLS) diff --git a/src/app/settingsview/components/AdvancedSIPSecuritySettings.qml b/src/app/settingsview/components/AdvancedSIPSecuritySettings.qml index d155308f6dede1f88dc140428835ce886c433563..33ae056979f09d8152db69bee08f29eb66109702 100644 --- a/src/app/settingsview/components/AdvancedSIPSecuritySettings.qml +++ b/src/app/settingsview/components/AdvancedSIPSecuritySettings.qml @@ -247,6 +247,17 @@ ColumnLayout { onSwitchToggled: CurrentAccount.requireClientCertificate_TLS = checked } + ToggleSwitch { + id: disableSecureDlgCheckToggle + + labelText: JamiStrings.disableSecureDlgCheck + fontPointSize: JamiTheme.settingsFontSize + + checked: CurrentAccount.disableSecureDlgCheck_TLS + + onSwitchToggled: CurrentAccount.disableSecureDlgCheck_TLS = checked + } + SettingsComboBox { id: tlsProtocolComboBox diff --git a/src/libclient/accountmodel.cpp b/src/libclient/accountmodel.cpp index 32b7b50ca80b0db540e4b4880f6acc32d8a1b5c0..edcaa9149389fef194673e4cec46aa645b6009af 100644 --- a/src/libclient/accountmodel.cpp +++ b/src/libclient/accountmodel.cpp @@ -896,6 +896,8 @@ account::Info::fromDetails(const MapStringString& details) confProperties.TLS.verifyClient = toBool(details[ConfProperties::TLS::VERIFY_CLIENT]); confProperties.TLS.requireClientCertificate = toBool( details[ConfProperties::TLS::REQUIRE_CLIENT_CERTIFICATE]); + confProperties.TLS.disableSecureDlgCheck = toBool( + details[ConfProperties::TLS::DISABLE_SECURE_DLG_CHECK]); confProperties.TLS.negotiationTimeoutSec = toInt( details[ConfProperties::TLS::NEGOTIATION_TIMEOUT_SEC]); // DHT @@ -1018,6 +1020,8 @@ account::ConfProperties_t::toDetails() const details[ConfProperties::TLS::VERIFY_CLIENT] = toQString(this->TLS.verifyClient); details[ConfProperties::TLS::REQUIRE_CLIENT_CERTIFICATE] = toQString( this->TLS.requireClientCertificate); + details[ConfProperties::TLS::DISABLE_SECURE_DLG_CHECK] = toQString( + this->TLS.disableSecureDlgCheck); details[ConfProperties::TLS::NEGOTIATION_TIMEOUT_SEC] = toQString( this->TLS.negotiationTimeoutSec); // DHT diff --git a/src/libclient/api/account.h b/src/libclient/api/account.h index 3786348de7fa5e544293d3e41ed7caa67a268792..0503f7e75b28d502ae5efb0aaba4eda713a6150b 100644 --- a/src/libclient/api/account.h +++ b/src/libclient/api/account.h @@ -177,6 +177,7 @@ struct ConfProperties_t bool verifyServer; bool verifyClient; bool requireClientCertificate; + bool disableSecureDlgCheck; int negotiationTimeoutSec; } TLS; struct DHT_t