[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