diff --git a/src/account.cpp b/src/account.cpp index 8cc01fd1f0dbde1c33eb314c40f4fceca3e3c21a..9bf165f2e5a770649083759a206b5027f67c013a 100644 --- a/src/account.cpp +++ b/src/account.cpp @@ -660,12 +660,6 @@ QString Account::password() const return ""; } -/// -bool Account::isDisplaySasOnce() const -{ - return d_ptr->accountDetail(DRing::Account::ConfProperties::ZRTP::DISPLAY_SAS_ONCE) IS_TRUE; -} - ///Return the account security fallback bool Account::isSrtpRtpFallback() const { @@ -678,24 +672,6 @@ bool Account::isSrtpEnabled() const return d_ptr->accountDetail(DRing::Account::ConfProperties::SRTP::ENABLED) IS_TRUE; } -/// -bool Account::isZrtpDisplaySas () const -{ - return d_ptr->accountDetail(DRing::Account::ConfProperties::ZRTP::DISPLAY_SAS) IS_TRUE; -} - -///Return if the other side support warning -bool Account::isZrtpNotSuppWarning() const -{ - return d_ptr->accountDetail(DRing::Account::ConfProperties::ZRTP::NOT_SUPP_WARNING) IS_TRUE; -} - -/// -bool Account::isZrtpHelloHash() const -{ - return d_ptr->accountDetail(DRing::Account::ConfProperties::ZRTP::HELLO_HASH) IS_TRUE; -} - ///Return if the account is using a STUN server bool Account::isSipStunEnabled() const { @@ -1109,16 +1085,8 @@ QVariant Account::roleData(int role) const return isTlsRequireClientCertificate(); case CAST(Account::Role::TlsEnabled): return isTlsEnabled(); - case CAST(Account::Role::DisplaySasOnce): - return isDisplaySasOnce(); case CAST(Account::Role::SrtpRtpFallback): return isSrtpRtpFallback(); - case CAST(Account::Role::ZrtpDisplaySas): - return isZrtpDisplaySas(); - case CAST(Account::Role::ZrtpNotSuppWarning): - return isZrtpNotSuppWarning(); - case CAST(Account::Role::ZrtpHelloHash): - return isZrtpHelloHash(); case CAST(Account::Role::SipStunEnabled): return isSipStunEnabled(); case CAST(Account::Role::PublishedSameAsLocal): @@ -1647,12 +1615,6 @@ void Account::setTlsEnabled(bool detail) d_ptr->regenSecurityValidation(); } -void Account::setDisplaySasOnce(bool detail) -{ - d_ptr->setAccountProperty(DRing::Account::ConfProperties::ZRTP::DISPLAY_SAS_ONCE, (detail)TO_BOOL); - d_ptr->regenSecurityValidation(); -} - void Account::setSrtpRtpFallback(bool detail) { d_ptr->setAccountProperty(DRing::Account::ConfProperties::SRTP::RTP_FALLBACK, (detail)TO_BOOL); @@ -1665,24 +1627,6 @@ void Account::setSrtpEnabled(bool detail) d_ptr->regenSecurityValidation(); } -void Account::setZrtpDisplaySas(bool detail) -{ - d_ptr->setAccountProperty(DRing::Account::ConfProperties::ZRTP::DISPLAY_SAS, (detail)TO_BOOL); - d_ptr->regenSecurityValidation(); -} - -void Account::setZrtpNotSuppWarning(bool detail) -{ - d_ptr->setAccountProperty(DRing::Account::ConfProperties::ZRTP::NOT_SUPP_WARNING, (detail)TO_BOOL); - d_ptr->regenSecurityValidation(); -} - -void Account::setZrtpHelloHash(bool detail) -{ - d_ptr->setAccountProperty(DRing::Account::ConfProperties::ZRTP::HELLO_HASH, (detail)TO_BOOL); - d_ptr->regenSecurityValidation(); -} - void Account::setSipStunEnabled(bool detail) { d_ptr->setAccountProperty(DRing::Account::ConfProperties::STUN::ENABLED, (detail)TO_BOOL); @@ -1992,21 +1936,9 @@ void Account::setRoleData(int role, const QVariant& value) case CAST(Account::Role::TlsEnabled): setTlsEnabled(value.toBool()); break; - case CAST(Account::Role::DisplaySasOnce): - setDisplaySasOnce(value.toBool()); - break; case CAST(Account::Role::SrtpRtpFallback): setSrtpRtpFallback(value.toBool()); break; - case CAST(Account::Role::ZrtpDisplaySas): - setZrtpDisplaySas(value.toBool()); - break; - case CAST(Account::Role::ZrtpNotSuppWarning): - setZrtpNotSuppWarning(value.toBool()); - break; - case CAST(Account::Role::ZrtpHelloHash): - setZrtpHelloHash(value.toBool()); - break; case CAST(Account::Role::SipStunEnabled): setSipStunEnabled(value.toBool()); break; @@ -2165,11 +2097,11 @@ Account::EditState Account::editState() const /** * This method can be used to query if a field is available or not in current * context. This could be extended over time. For now, it only handle the fields - * related to SDES and ZRTP. + * related to SDES. * * @todo Support of the private key password is necessary * - * @param role An sdes or zrtp related Account::Role + * @param role An SDES related Account::Role * @return if the field is available in the current context */ Account::RoleState Account::roleState(Account::Role role) const @@ -2225,31 +2157,15 @@ Account::RoleState Account::roleState(Account::Role role) const //Supported security fields enum class Fields { SDES_FALLBACK_RTP , - ZRTP_SAS_ONCE , - ZRTP_DISPLAY_SAS , - ZRTP_WARN_SUPPORTED, - ZTRP_SEND_HELLO , COUNT__ }; //Mapping between the roles and the fields Fields f = Fields::COUNT__; switch(role) { - case Account::Role::DisplaySasOnce : - f = Fields::ZRTP_SAS_ONCE ; - break; case Account::Role::SrtpRtpFallback : f = Fields::SDES_FALLBACK_RTP ; break; - case Account::Role::ZrtpDisplaySas : - f = Fields::ZRTP_DISPLAY_SAS ; - break; - case Account::Role::ZrtpNotSuppWarning: - f = Fields::ZRTP_WARN_SUPPORTED; - break; - case Account::Role::ZrtpHelloHash : - f = Fields::ZTRP_SEND_HELLO ; - break; } #pragma GCC diagnostic pop #pragma GCC diagnostic pop @@ -2264,16 +2180,11 @@ Account::RoleState Account::roleState(Account::Role role) const //Matrix used to define if a field is enabled static const Matrix2D<KeyExchangeModel::Type, Fields, Account::RoleState> enabledFields={{ - /* ______________________> SDES_FALLBACK_RTP */ - /* / ________________> ZRTP_ASK_USER */ - /* / / ___________> ZRTP_DISPLAY_SAS */ - /* / / / ______> ZRTP_WARN_SUPPORTED */ - /* / / / / _> ZTRP_SEND_HELLO */ - /* / / / / / */ - /* \/ \/ \/ \/ \/ */ - /*Type::ZRTP*/ {{un ,rw ,rw ,rw ,rw }}, - /*Type::SDES*/ {{rw ,un ,un ,un ,un }}, - /*Type::NONE*/ {{un ,un ,un ,un ,un }}, + /* ______________________> SDES_FALLBACK_RTP */ + /* / */ + /* \/ */ + /*Type::SDES*/ {{rw}}, + /*Type::NONE*/ {{un}}, }}; const QModelIndex idx = keyExchangeModel()->selectionModel()->currentIndex(); diff --git a/src/account.h b/src/account.h index e5239f0d4f0e8cdb5508aa4df14de5177ff3a01e..df54ca8440bc06d0ba340dd3bb9c81e2429b0fd3 100644 --- a/src/account.h +++ b/src/account.h @@ -119,11 +119,7 @@ class LIB_EXPORT Account : public ItemBase { Q_PROPERTY(bool tlsVerifyClient READ isTlsVerifyClient WRITE setTlsVerifyClient ) Q_PROPERTY(bool tlsRequireClientCertificate READ isTlsRequireClientCertificate WRITE setTlsRequireClientCertificate ) Q_PROPERTY(bool tlsEnabled READ isTlsEnabled WRITE setTlsEnabled ) - Q_PROPERTY(bool displaySasOnce READ isDisplaySasOnce WRITE setDisplaySasOnce ) Q_PROPERTY(bool srtpRtpFallback READ isSrtpRtpFallback WRITE setSrtpRtpFallback ) - Q_PROPERTY(bool zrtpDisplaySas READ isZrtpDisplaySas WRITE setZrtpDisplaySas ) - Q_PROPERTY(bool zrtpNotSuppWarning READ isZrtpNotSuppWarning WRITE setZrtpNotSuppWarning ) - Q_PROPERTY(bool zrtpHelloHash READ isZrtpHelloHash WRITE setZrtpHelloHash ) Q_PROPERTY(bool sipStunEnabled READ isSipStunEnabled WRITE setSipStunEnabled ) Q_PROPERTY(bool publishedSameAsLocal READ isPublishedSameAsLocal WRITE setPublishedSameAsLocal ) Q_PROPERTY(bool ringtoneEnabled READ isRingtoneEnabled WRITE setRingtoneEnabled ) @@ -243,11 +239,7 @@ class LIB_EXPORT Account : public ItemBase { TlsVerifyClient , TlsRequireClientCertificate , TlsEnabled , - DisplaySasOnce , SrtpRtpFallback , - ZrtpDisplaySas , - ZrtpNotSuppWarning , - ZrtpHelloHash , SipStunEnabled , PublishedSameAsLocal , RingtoneEnabled , @@ -377,12 +369,8 @@ class LIB_EXPORT Account : public ItemBase { QString mailbox () const; QString proxy () const; QString password () const; - bool isDisplaySasOnce () const; bool isSrtpRtpFallback () const; bool isSrtpEnabled () const; - bool isZrtpDisplaySas () const; - bool isZrtpNotSuppWarning () const; - bool isZrtpHelloHash () const; bool isSipStunEnabled () const; QString sipStunServer () const; int registrationExpire () const; @@ -488,12 +476,8 @@ class LIB_EXPORT Account : public ItemBase { void setTlsVerifyClient (bool detail); void setTlsRequireClientCertificate (bool detail); void setTlsEnabled (bool detail); - void setDisplaySasOnce (bool detail); void setSrtpRtpFallback (bool detail); void setSrtpEnabled (bool detail); - void setZrtpDisplaySas (bool detail); - void setZrtpNotSuppWarning (bool detail); - void setZrtpHelloHash (bool detail); void setSipStunEnabled (bool detail); void setPublishedSameAsLocal (bool detail); void setRingtoneEnabled (bool detail); diff --git a/src/accountmodel.cpp b/src/accountmodel.cpp index 363a23bdcaeb4b9c58d1dbff5c5fa8bec6dc9318..0191c3a6dfbad82e95210badde9b621cb330abbc 100644 --- a/src/accountmodel.cpp +++ b/src/accountmodel.cpp @@ -132,11 +132,7 @@ QHash<int,QByteArray> AccountModel::roleNames() const roles.insert(CAST(Account::Role::TlsVerifyClient ) ,QByteArray("tlsVerifyClient" )); roles.insert(CAST(Account::Role::TlsRequireClientCertificate ) ,QByteArray("tlsRequireClientCertificate" )); roles.insert(CAST(Account::Role::TlsEnabled ) ,QByteArray("tlsEnabled" )); - roles.insert(CAST(Account::Role::DisplaySasOnce ) ,QByteArray("displaySasOnce" )); roles.insert(CAST(Account::Role::SrtpRtpFallback ) ,QByteArray("srtpRtpFallback" )); - roles.insert(CAST(Account::Role::ZrtpDisplaySas ) ,QByteArray("zrtpDisplaySas" )); - roles.insert(CAST(Account::Role::ZrtpNotSuppWarning ) ,QByteArray("zrtpNotSuppWarning" )); - roles.insert(CAST(Account::Role::ZrtpHelloHash ) ,QByteArray("zrtpHelloHash" )); roles.insert(CAST(Account::Role::SipStunEnabled ) ,QByteArray("sipStunEnabled" )); roles.insert(CAST(Account::Role::PublishedSameAsLocal ) ,QByteArray("publishedSameAsLocal" )); roles.insert(CAST(Account::Role::RingtoneEnabled ) ,QByteArray("ringtoneEnabled" )); diff --git a/src/keyexchangemodel.cpp b/src/keyexchangemodel.cpp index 7e81b80265dd0d00bdc30b83c97ca0823998570d..76b89f90530a7b485b170a005927a3854451beeb 100644 --- a/src/keyexchangemodel.cpp +++ b/src/keyexchangemodel.cpp @@ -37,14 +37,12 @@ public: class Name { public: constexpr static const char* NONE = "None"; - constexpr static const char* ZRTP = "ZRTP"; constexpr static const char* SDES = "SDES"; }; class DaemonName { public: constexpr static const char* NONE = "" ; - constexpr static const char* ZRTP = "zrtp"; constexpr static const char* SDES = "sdes"; }; @@ -106,8 +104,6 @@ QVariant KeyExchangeModel::data( const QModelIndex& index, int role) const switch (method) { case KeyExchangeModel::Type::NONE: return KeyExchangeModelPrivate::Name::NONE; - case KeyExchangeModel::Type::ZRTP: - return KeyExchangeModelPrivate::Name::ZRTP; case KeyExchangeModel::Type::SDES: return KeyExchangeModelPrivate::Name::SDES; case KeyExchangeModel::Type::COUNT__: @@ -125,12 +121,6 @@ int KeyExchangeModel::rowCount( const QModelIndex& parent ) const return parent.isValid()?0:2; } -Qt::ItemFlags KeyExchangeModel::flags( const QModelIndex& index ) const -{ - if (!index.isValid()) return Qt::NoItemFlags; - return index.row()!=(int)KeyExchangeModel::Type::ZRTP?(Qt::ItemIsEnabled|Qt::ItemIsSelectable):Qt::NoItemFlags; -} - bool KeyExchangeModel::setData( const QModelIndex& index, const QVariant &value, int role) { Q_UNUSED(index) @@ -151,8 +141,6 @@ const char* KeyExchangeModelPrivate::toDaemonName(KeyExchangeModel::Type type) switch (type) { case KeyExchangeModel::Type::NONE: return KeyExchangeModelPrivate::DaemonName::NONE; - case KeyExchangeModel::Type::ZRTP: - return KeyExchangeModelPrivate::DaemonName::ZRTP; case KeyExchangeModel::Type::SDES: return KeyExchangeModelPrivate::DaemonName::SDES; case KeyExchangeModel::Type::COUNT__: @@ -167,8 +155,6 @@ KeyExchangeModel::Type KeyExchangeModelPrivate::fromDaemonName(const QString& na return KeyExchangeModel::Type::NONE; else if (name == KeyExchangeModelPrivate::DaemonName::SDES) return KeyExchangeModel::Type::SDES; - else if (name == KeyExchangeModelPrivate::DaemonName::ZRTP) - return KeyExchangeModel::Type::ZRTP; qDebug() << "Undefined Key exchange mechanism" << name; return KeyExchangeModel::Type::NONE; } diff --git a/src/keyexchangemodel.h b/src/keyexchangemodel.h index c2aeb9a8a09ac4977fba704a20060f5e557c605a..0550597200da1869824780de0f132aa465f17157 100644 --- a/src/keyexchangemodel.h +++ b/src/keyexchangemodel.h @@ -43,19 +43,14 @@ public: ///@enum Type Every supported encryption types enum class Type { - ZRTP = 0, + NONE = 0, SDES = 1, - NONE = 2, COUNT__, }; ///@enum Options Every Key exchange options enum class Options { RTP_FALLBACK = 0, - DISPLAY_SAS = 1, - NOT_SUPP_WARNING = 2, - HELLO_HASH = 3, - DISPLAY_SAS_ONCE = 4, COUNT__, }; @@ -66,7 +61,6 @@ public: //Model functions virtual QVariant data ( const QModelIndex& index, int role = Qt::DisplayRole ) const override; virtual int rowCount ( const QModelIndex& parent = QModelIndex() ) const override; - virtual Qt::ItemFlags flags ( const QModelIndex& index ) const override; virtual bool setData ( const QModelIndex& index, const QVariant &value, int role) override; virtual QHash<int,QByteArray> roleNames() const override; diff --git a/src/qtwrapper/callmanager_wrap.h b/src/qtwrapper/callmanager_wrap.h index 5537e3417322796f04a3f86953350af544b5e409..a61e060ede026a1a92311ca14a347de26f5a7913 100644 --- a/src/qtwrapper/callmanager_wrap.h +++ b/src/qtwrapper/callmanager_wrap.h @@ -146,82 +146,34 @@ public: Q_EMIT recordingStateChanged(QString(callID.c_str()), recordingState); }); }), - exportable_callback<CallSignal::SecureSdesOn>( - [this] (const std::string &callID) { - QTimer::singleShot(0, [this,callID] { - LOG_DRING_SIGNAL("secureSdesOn",QString(callID.c_str())); - Q_EMIT secureSdesOn(QString(callID.c_str())); - }); - }), - exportable_callback<CallSignal::SecureSdesOff>( - [this] (const std::string &callID) { - QTimer::singleShot(0, [this,callID] { - LOG_DRING_SIGNAL("secureSdesOff",QString(callID.c_str())); - Q_EMIT secureSdesOff(QString(callID.c_str())); - }); - }), - exportable_callback<CallSignal::SecureZrtpOn>( - [this] (const std::string &callID, const std::string &cipher) { - QTimer::singleShot(0, [this,callID,cipher] { - LOG_DRING_SIGNAL2("secureZrtpOn",QString(callID.c_str()), QString(cipher.c_str())); - Q_EMIT secureZrtpOn(QString(callID.c_str()), QString(cipher.c_str())); - }); - }), - exportable_callback<CallSignal::SecureZrtpOff>( - [this] (const std::string &callID) { - QTimer::singleShot(0, [this,callID] { - Q_EMIT secureZrtpOff(QString(callID.c_str())); - }); - }), - exportable_callback<CallSignal::ShowSAS>( - [this] (const std::string &callID, const std::string &sas, bool verified) { - QTimer::singleShot(0, [this,callID, sas, verified] { - LOG_DRING_SIGNAL3("showSAS",QString(callID.c_str()), QString(sas.c_str()), verified); - Q_EMIT showSAS(QString(callID.c_str()), QString(sas.c_str()), verified); - }); - }), - exportable_callback<CallSignal::ZrtpNotSuppOther>( - [this] (const std::string &callID) { - QTimer::singleShot(0, [this,callID] { - LOG_DRING_SIGNAL("zrtpNotSuppOther",QString(callID.c_str())); - Q_EMIT zrtpNotSuppOther(QString(callID.c_str())); - }); - }), - exportable_callback<CallSignal::ZrtpNegotiationFailed>( - [this] (const std::string &callID, const std::string &reason, const std::string &severity) { - QTimer::singleShot(0, [this,callID, reason, severity] { - LOG_DRING_SIGNAL3("zrtpNegotiationFailed",QString(callID.c_str()), QString(reason.c_str()), QString(severity.c_str())); - Q_EMIT zrtpNegotiationFailed(QString(callID.c_str()), QString(reason.c_str()), QString(severity.c_str())); - }); - }), - exportable_callback<CallSignal::RtcpReportReceived>( - [this] (const std::string &callID, const std::map<std::string, int>& report) { + exportable_callback<CallSignal::RtcpReportReceived>( + [this] (const std::string &callID, const std::map<std::string, int>& report) { QTimer::singleShot(0, [this,callID, report] { LOG_DRING_SIGNAL2("onRtcpReportReceived",QString(callID.c_str()), convertStringInt(report)); Q_EMIT onRtcpReportReceived(QString(callID.c_str()), convertStringInt(report)); }); - }), - exportable_callback<CallSignal::PeerHold>( - [this] (const std::string &callID, bool state) { + }), + exportable_callback<CallSignal::PeerHold>( + [this] (const std::string &callID, bool state) { QTimer::singleShot(0, [this,callID, state] { LOG_DRING_SIGNAL2("peerHold",QString(callID.c_str()), state); Q_EMIT peerHold(QString(callID.c_str()), state); }); - }), - exportable_callback<CallSignal::AudioMuted>( - [this] (const std::string &callID, bool state) { + }), + exportable_callback<CallSignal::AudioMuted>( + [this] (const std::string &callID, bool state) { QTimer::singleShot(0, [this,callID, state] { LOG_DRING_SIGNAL2("audioMuted",QString(callID.c_str()), state); Q_EMIT audioMuted(QString(callID.c_str()), state); }); - }), - exportable_callback<CallSignal::VideoMuted>( - [this] (const std::string &callID, bool state) { + }), + exportable_callback<CallSignal::VideoMuted>( + [this] (const std::string &callID, bool state) { QTimer::singleShot(0, [this,callID, state] { LOG_DRING_SIGNAL2("videoMuted",QString(callID.c_str()), state); Q_EMIT videoMuted(QString(callID.c_str()), state); }); - }) + }) }; } @@ -235,11 +187,6 @@ public Q_SLOTS: // METHODS return DRing::accept(callID.toStdString()); } - void acceptEnrollment(const QString &callID, bool accepted) - { - DRing::acceptEnrollment(callID.toStdString(), accepted); - } - bool addMainParticipant(const QString &confID) { return DRing::addMainParticipant(confID.toStdString()); @@ -383,16 +330,6 @@ public Q_SLOTS: // METHODS return DRing::refuse(callID.toStdString()); } - void requestGoClear(const QString &callID) - { - DRing::requestGoClear(callID.toStdString()); - } - - void resetSASVerified(const QString &callID) - { - DRing::resetSASVerified(callID.toStdString()); - } - void sendTextMessage(const QString &callID, const QMap<QString,QString> &message, bool isMixed) { DRing::sendTextMessage( @@ -400,16 +337,6 @@ public Q_SLOTS: // METHODS ); } - void setConfirmGoClear(const QString &callID) - { - DRing::setConfirmGoClear(callID.toStdString()); - } - - void setSASVerified(const QString &callID) - { - DRing::setSASVerified(callID.toStdString()); - } - bool startRecordedFilePlayback(const QString &filepath) { // TODO: Change method name to match API @@ -467,15 +394,7 @@ Q_SIGNALS: // SIGNALS void conferenceRemoved(const QString &confID); void newCallCreated(const QString &accountID, const QString &callID, const QString &to); void recordingStateChanged(const QString &callID, bool recordingState); - void secureSdesOn(const QString &callID); - void secureSdesOff(const QString &callID); - void secureZrtpOn(const QString &callID, const QString &cipher); - void secureZrtpOff(const QString &callID); - void showSAS(const QString &callID, const QString &sas, bool verified); - void zrtpNotSuppOther(const QString &callID); - void zrtpNegotiationFailed(const QString &callID, const QString &reason, const QString &severity); void onRtcpReportReceived(const QString &callID, MapStringInt report); - void confirmGoClear(const QString &callID); void audioMuted(const QString &callID, bool state); void videoMuted(const QString &callID, bool state); void peerHold(const QString &callID, bool state); diff --git a/src/securityevaluationmodel.cpp b/src/securityevaluationmodel.cpp index 05168b32ac718d05df65ac2eef1f0b2eee021296..06aa33dda71d784bd9a7d4418f7944dbb0bbe95e 100644 --- a/src/securityevaluationmodel.cpp +++ b/src/securityevaluationmodel.cpp @@ -34,7 +34,7 @@ #include <QtAlgorithms> const QString SecurityEvaluationModelPrivate::messages[enum_class_size<SecurityEvaluationModel::AccountSecurityChecks>()] = { - /*SRTP_ENABLED */QObject::tr("Your media streams are not encrypted, please enable ZRTP or SDES"), + /*SRTP_ENABLED */QObject::tr("Your media streams are not encrypted, please enable SDES"), /*TLS_ENABLED */QObject::tr("TLS is disabled, the negotiation won't be encrypted. Your communication will be vulnerable to " "snooping"), /*CERTIFICATE_MATCH */QObject::tr("Your certificate and authority don't match, if your certificate require an authority, it won't work"),