[SCM] kdeconnect packaging branch, master, updated. debian/0.9g-1-1183-g9d69498

Maximiliano Curia maxy at moszumanska.debian.org
Fri Oct 14 14:28:46 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/kdeconnect.git;a=commitdiff;h=eda2563

The following commit has been merged in the master branch:
commit eda2563d032956934158e8ad5637e611adf55c95
Author: Vineet Garg <grg.vineet at gmail.com>
Date:   Sun Jul 19 20:25:28 2015 +0530

    Fixed encryption info in cli
---
 cli/CMakeLists.txt        |  2 +-
 cli/kdeconnect-cli.cpp    | 25 +++++++++++++++++++------
 core/daemon.cpp           |  7 +++++++
 core/daemon.h             |  3 +++
 core/device.h             |  2 +-
 core/kdeconnectconfig.cpp |  2 +-
 core/kdeconnectconfig.h   |  2 +-
 7 files changed, 33 insertions(+), 10 deletions(-)

diff --git a/cli/CMakeLists.txt b/cli/CMakeLists.txt
index bc11e46..7ddf635 100644
--- a/cli/CMakeLists.txt
+++ b/cli/CMakeLists.txt
@@ -1,6 +1,6 @@
 
 add_executable(kdeconnect-cli kdeconnect-cli.cpp)
 
-target_link_libraries(kdeconnect-cli kdeconnectinterfaces Qt5::Network KF5::CoreAddons KF5::I18n)
+target_link_libraries(kdeconnect-cli kdeconnectinterfaces KF5::CoreAddons KF5::I18n)
 
 install(TARGETS kdeconnect-cli ${INSTALL_TARGETS_DEFAULT_ARGS})
diff --git a/cli/kdeconnect-cli.cpp b/cli/kdeconnect-cli.cpp
index d0a95cd..94c49e4 100644
--- a/cli/kdeconnect-cli.cpp
+++ b/cli/kdeconnect-cli.cpp
@@ -18,10 +18,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <QCryptographicHash>
 #include <QDBusMessage>
 #include <QDBusConnection>
 #include <QCoreApplication>
-#include <QSslCertificate>
 #include <QTextStream>
 
 #include <KAboutData>
@@ -148,11 +148,24 @@ int main(int argc, char** argv)
                     << ": " << idx.data(NotificationsModel::NameModelRole).toString() << endl;
             }
         } else if(parser.isSet("encryption-info")) {
-            QDBusMessage msg = QDBusMessage::createMethodCall("org.kde.kdeconnect", "/modules/kdeconnect/devices/"+device, "org.kde.kdeconnect.device", "certificate");
-            msg.setArguments(QVariantList() << QSsl::Pem);
-            QDBusMessage reply = QDBusConnection::sessionBus().call(msg);
-            QSslCertificate certificate = QSslCertificate::fromData(reply.arguments().first().toByteArray()).first();
-	        QTextStream(stderr) << certificate.toText() << endl;
+			DeviceDbusInterface dev(device);
+			QDBusPendingReply<QByteArray> devReply = dev.certificate(1); // QSsl::Der = 1
+			devReply.waitForFinished();
+			if (devReply.value().isEmpty()) {
+				QTextStream(stderr) << i18n("The other device doesn\'t use a recent version of KDE Connect, using the legacy encryption method.") << endl;
+			} else {
+				QByteArray remoteCertificate = QCryptographicHash::hash(devReply.value(), QCryptographicHash::Sha1).toHex();
+				for (int i=2 ; i<remoteCertificate.size() ; i+=3) remoteCertificate.insert(i, ':'); // Improve readability
+
+				DaemonDbusInterface iface;
+				QDBusPendingReply<QByteArray> ifaceReply = iface.certificate(1); // QSsl::Der = 1
+				ifaceReply.waitForFinished();
+				QByteArray myCertificate = QCryptographicHash::hash(ifaceReply.value(), QCryptographicHash::Sha1).toHex();
+				for (int i=2 ; i<myCertificate.size() ; i+=3) myCertificate.insert(i, ':'); // Improve readability
+
+				QTextStream(stderr) << i18n("SHA1 fingerprint of your device certificate is : ") << myCertificate << endl;
+				QTextStream(stderr) << i18n("SHA1 fingerprint of remote device certificate is : ") << remoteCertificate << endl;
+			}
         } else {
             QTextStream(stderr) << i18n("Nothing to be done") << endl;
         }
diff --git a/core/daemon.cpp b/core/daemon.cpp
index e4c173b..233d35f 100644
--- a/core/daemon.cpp
+++ b/core/daemon.cpp
@@ -129,6 +129,13 @@ QStringList Daemon::devices(bool onlyReachable, bool onlyVisible) const
     return ret;
 }
 
+QByteArray Daemon::certificate(int format) const
+{
+	if (format == QSsl::Pem) return KdeConnectConfig::instance()->certificate().toPem();
+	else return KdeConnectConfig::instance()->certificate().toDer();
+}
+
+
 void Daemon::onNewDeviceLink(const NetworkPackage& identityPackage, DeviceLink* dl)
 {
     const QString& id = identityPackage.get<QString>("deviceId");
diff --git a/core/daemon.h b/core/daemon.h
index db65b49..ec4b57d 100644
--- a/core/daemon.h
+++ b/core/daemon.h
@@ -62,6 +62,9 @@ public Q_SLOTS:
     //Returns a list of ids. The respective devices can be manipulated using the dbus path: "/modules/kdeconnect/Devices/"+id
     Q_SCRIPTABLE QStringList devices(bool onlyReachable = false, bool onlyVisible = false) const;
 
+	//Exposing kdeconnectconfig through daemon, needed to show certificate hash in cli, but this can be extended to name, id, public key etc. if needed
+	Q_SCRIPTABLE QByteArray certificate(int format) const;
+
     virtual void requestPairing(Device *d) = 0;
     virtual void reportError(const QString &title, const QString &description) = 0;
     virtual QNetworkAccessManager* networkAccessManager();
diff --git a/core/device.h b/core/device.h
index 5d738c1..4416b1f 100644
--- a/core/device.h
+++ b/core/device.h
@@ -87,7 +87,7 @@ public:
     QString type() const { return type2str(m_deviceType); }
     QCA::PublicKey publicKey() const { return m_publicKey; }
     QSslCertificate certificate() const { return m_certificate; }
-    Q_SCRIPTABLE QByteArray certificate(int format) const { return (format == QSsl::Pem) ? m_certificate.toPem() : m_certificate.toDer() ;} // To expose certificate through dbus
+    Q_SCRIPTABLE QByteArray certificate(int format) const { return (format == QSsl::Pem) ? m_certificate.toPem() : m_certificate.toDer() ;} // To expose certificate through dbus for cli
     QString iconName() const;
     QString statusIconName() const;
 
diff --git a/core/kdeconnectconfig.cpp b/core/kdeconnectconfig.cpp
index 7f0bf3e..e835a26 100644
--- a/core/kdeconnectconfig.cpp
+++ b/core/kdeconnectconfig.cpp
@@ -22,7 +22,6 @@
 
 #include <KLocalizedString>
 
-#include <QtCrypto>
 #include <QFile>
 #include <QDebug>
 #include <QFileInfo>
@@ -297,3 +296,4 @@ QDir KdeConnectConfig::pluginConfigDir(QString deviceId, QString pluginName)
     return QDir(pluginConfigDir);
 }
 
+
diff --git a/core/kdeconnectconfig.h b/core/kdeconnectconfig.h
index 0042efd..1292ff9 100644
--- a/core/kdeconnectconfig.h
+++ b/core/kdeconnectconfig.h
@@ -23,7 +23,7 @@
 
 #include <QtCrypto>
 #include <QDir>
-#include <QtNetwork/qsslcertificate.h>
+#include <QSslCertificate>
 
 #include "kdeconnectcore_export.h"
 

-- 
kdeconnect packaging



More information about the pkg-kde-commits mailing list