[SCM] ktp-common-internals packaging branch, master, updated. debian/15.12.1-2-1839-gf0635e9

Maximiliano Curia maxy at moszumanska.debian.org
Mon May 9 09:08:23 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-common-internals.git;a=commitdiff;h=fb1837f

The following commit has been merged in the master branch:
commit fb1837fbb803013b9a7b8ad2b81bbd3bcbbdc062
Author: Marcin Ziemiński <zieminn at gmail.com>
Date:   Fri Aug 8 15:29:15 2014 +0200

    Implemented SMP protocol handling.
    
    Signed-off-by: Marcin Ziemiński <zieminn at gmail.com>
---
 otr-proxy/KTpProxy/otr-manager.cpp               |  39 +++-
 otr-proxy/KTpProxy/otr-proxy-channel-adaptee.cpp |  35 +++
 otr-proxy/KTpProxy/otr-proxy-channel-adaptee.h   |  11 +
 otr-proxy/KTpProxy/otr-session.cpp               |  98 ++++++--
 otr-proxy/KTpProxy/otr-session.h                 |  27 ++-
 otr-proxy/KTpProxy/svc-channel-proxy.cpp         |  46 ++++
 otr-proxy/KTpProxy/svc-channel-proxy.h           | 187 ++++++++++++++--
 otr-proxy/spec/ChannelProxy_Interface_OTR.xml    |  85 +++++++
 otr-proxy/test/lib/test-session.cpp              |   6 -
 otr-proxy/test/lib/test-session.h                |   1 -
 otr-proxy/test/otr-test.cpp                      | 272 ++++++++++++++++++++++-
 11 files changed, 744 insertions(+), 63 deletions(-)

diff --git a/otr-proxy/KTpProxy/otr-manager.cpp b/otr-proxy/KTpProxy/otr-manager.cpp
index 5bf6024..2aaa8ae 100644
--- a/otr-proxy/KTpProxy/otr-manager.cpp
+++ b/otr-proxy/KTpProxy/otr-manager.cpp
@@ -207,12 +207,41 @@ namespace {
             ConnContext *context, unsigned short progress_percent,
             char *question)
     {
-        Q_UNUSED(opdata);
-        Q_UNUSED(smp_event);
-        Q_UNUSED(context);
         Q_UNUSED(progress_percent);
-        Q_UNUSED(question);
-        // TODO
+
+        Session *session = reinterpret_cast<Session*>(opdata);
+        kDebug() << session->context().accountName;
+
+        switch (smp_event) {
+            case OTRL_SMPEVENT_NONE:
+                break;
+            case OTRL_SMPEVENT_ASK_FOR_SECRET:
+                session->onSMPQuery(QLatin1String(""));
+                break;
+            case OTRL_SMPEVENT_ASK_FOR_ANSWER:
+                session->onSMPQuery(QLatin1String(question));
+                break;
+            case OTRL_SMPEVENT_IN_PROGRESS:
+                break;
+            case OTRL_SMPEVENT_SUCCESS:
+                session->onSMPFinished(true);
+                break;
+            case OTRL_SMPEVENT_FAILURE:
+                session->onSMPFinished(false);
+                break;
+            case OTRL_SMPEVENT_ABORT:
+                session->abortSMPAuthentiaction(context);
+                session->onSMPAborted();
+                break;
+            case OTRL_SMPEVENT_CHEATED:
+                session->abortSMPAuthentiaction(context);
+                session->onSMPCheated();
+                break;
+            case OTRL_SMPEVENT_ERROR:
+                session->abortSMPAuthentiaction(context);
+                session->onSMPError();
+                break;
+        }
     }
 
     void handle_msg_event(void *opdata, OtrlMessageEvent msg_event,
diff --git a/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.cpp b/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.cpp
index 2a2807e..604fbd3 100644
--- a/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.cpp
+++ b/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.cpp
@@ -110,6 +110,11 @@ OtrProxyChannel::Adaptee::Adaptee(OtrProxyChannel *pc,
     connect(chan.data(), SIGNAL(invalidated(Tp::DBusProxy*,const QString&,const QString&)), SLOT(onChannelClosed()));
     connect(&otrSes, SIGNAL(trustLevelChanged(TrustLevel)), SLOT(onTrustLevelChanged(TrustLevel)));
     connect(&otrSes, SIGNAL(sessionRefreshed()), SIGNAL(sessionRefreshed()));
+    connect(&otrSes, SIGNAL(peerAuthenticationRequested(const QString&)), SIGNAL(peerAuthenticationRequested(const QString&)));
+    connect(&otrSes, SIGNAL(peerAuthenticationConcluded(bool)), SIGNAL(peerAuthenticationConcluded(bool)));
+    connect(&otrSes, SIGNAL(peerAuthenticationAborted()), SIGNAL(peerAuthenticationAborted()));
+    connect(&otrSes, SIGNAL(peerAuthenticationError()), SIGNAL(peerAuthenticationError()));
+    connect(&otrSes, SIGNAL(peerAuthenticationCheated()), SIGNAL(peerAuthenticationCheated()));
 
     sender = channel->connection()->selfHandle();
 }
@@ -190,6 +195,11 @@ void OtrProxyChannel::Adaptee::disconnectProxy(
     disconnect(chan.data(), SIGNAL(pendingMessageRemoved(const Tp::ReceivedMessage&)),
             this, SLOT(onPendingMessageRemoved(const Tp::ReceivedMessage&)));
 
+    disconnect(ps, SIGNAL(keyGenerationStarted(const QString&)),
+            this, SLOT(onKeyGenerationStarted(const QString&)));
+    disconnect(ps, SIGNAL(keyGenerationFinished(const QString&, bool)), this,
+            SLOT(onKeyGenerationFinished(const QString&, bool)));
+
     isConnected = false;
     messages.clear();
     context->setFinished();
@@ -335,6 +345,31 @@ void OtrProxyChannel::Adaptee::trustFingerprint(const QString& fingerprint, bool
     context->setFinished();
 }
 
+void OtrProxyChannel::Adaptee::startPeerAuthentication(const QString &question, const QString &secret,
+        const Tp::Service::ChannelProxyInterfaceOTRAdaptor::StartPeerAuthenticationContextPtr &ctx)
+{
+    if(question.isEmpty()) {
+        otrSes.initSMPSecret(secret);
+    } else {
+        otrSes.initSMPQuery(question, secret);
+    }
+    ctx->setFinished();
+}
+
+void OtrProxyChannel::Adaptee::respondPeerAuthentication(const QString &secret,
+        const Tp::Service::ChannelProxyInterfaceOTRAdaptor::RespondPeerAuthenticationContextPtr &ctx)
+{
+    otrSes.respondSMPAuthentication(secret);
+    ctx->setFinished();
+}
+
+void OtrProxyChannel::Adaptee::abortPeerAuthentication(
+        const Tp::Service::ChannelProxyInterfaceOTRAdaptor::AbortPeerAuthenticationContextPtr &ctx)
+{
+    otrSes.abortSMPAuthentiaction();
+    ctx->setFinished();
+}
+
 void OtrProxyChannel::Adaptee::onMessageReceived(const Tp::ReceivedMessage &receivedMessage)
 {
     const uint id = receivedMessage.header()[QLatin1String("pending-message-id")].variant().toUInt(nullptr);
diff --git a/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.h b/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.h
index a2949f3..9777eb1 100644
--- a/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.h
+++ b/otr-proxy/KTpProxy/otr-proxy-channel-adaptee.h
@@ -78,6 +78,12 @@ class OtrProxyChannel::Adaptee : public QObject
         void trustFingerprint(const QString& fingerprint, bool trust,
                 const Tp::Service::ChannelProxyInterfaceOTRAdaptor::TrustFingerprintContextPtr &context);
 
+        void startPeerAuthentication(const QString &question, const QString &secret,
+                const Tp::Service::ChannelProxyInterfaceOTRAdaptor::StartPeerAuthenticationContextPtr &ctx);
+        void respondPeerAuthentication(const QString &secret,
+                const Tp::Service::ChannelProxyInterfaceOTRAdaptor::RespondPeerAuthenticationContextPtr &ctx);
+        void abortPeerAuthentication(const Tp::Service::ChannelProxyInterfaceOTRAdaptor::AbortPeerAuthenticationContextPtr &ctx);
+
         void onMessageReceived(const Tp::ReceivedMessage &receivedMessage);
         void onPendingMessageRemoved(const Tp::ReceivedMessage &receivedMessage);
         void onPendingSendFinished(Tp::PendingOperation *pendingSend);
@@ -95,6 +101,11 @@ class OtrProxyChannel::Adaptee : public QObject
         void sessionRefreshed();
         void closed();
         void trustLevelChanged(uint trustLevel);
+        void peerAuthenticationRequested(const QString&);
+        void peerAuthenticationConcluded(bool);
+        void peerAuthenticationAborted();
+        void peerAuthenticationError();
+        void peerAuthenticationCheated();
 
     private:
         Tp::Service::ChannelProxyInterfaceOTRAdaptor *adaptor;
diff --git a/otr-proxy/KTpProxy/otr-session.cpp b/otr-proxy/KTpProxy/otr-session.cpp
index 25a2dad..8e3ac7d 100644
--- a/otr-proxy/KTpProxy/otr-session.cpp
+++ b/otr-proxy/KTpProxy/otr-session.cpp
@@ -98,11 +98,7 @@ namespace OTR
 
     Fingerprint* Session::getFingerprint() const
     {
-        ConnContext *context = otrl_context_find(userstate->userState(),
-                ctx.recipientName.toLocal8Bit(),
-                ctx.accountName.toLocal8Bit(),
-                ctx.protocol.toLocal8Bit(),
-                instance, 0, NULL, NULL, NULL);
+        ConnContext *context = findContext();
 
         if(context && context->active_fingerprint) {
             return context->active_fingerprint;
@@ -111,6 +107,15 @@ namespace OTR
         }
     }
 
+    ConnContext* Session::findContext() const
+    {
+        return otrl_context_find(userstate->userState(),
+                ctx.recipientName.toLocal8Bit(),
+                ctx.accountName.toLocal8Bit(),
+                ctx.protocol.toLocal8Bit(),
+                instance, 0, NULL, NULL, NULL);
+    }
+
     QString Session::remoteFingerprint() const
     {
         Fingerprint *fp = getFingerprint();
@@ -132,12 +137,7 @@ namespace OTR
             return;
         }
 
-        ConnContext *context = otrl_context_find(userstate->userState(),
-                ctx.recipientName.toLocal8Bit(),
-                ctx.accountName.toLocal8Bit(),
-                ctx.protocol.toLocal8Bit(),
-                instance, 0, NULL, NULL, NULL);
-
+        ConnContext *context = findContext();
         otrl_context_force_plaintext(context);
     }
 
@@ -262,6 +262,45 @@ namespace OTR
         return result;
     }
 
+    void Session::initSMPQuery(const QString &question, const QString &secret)
+    {
+        otrl_message_initiate_smp_q(userstate->userState(),
+                &global::appOps,
+                this,
+                findContext(),
+                (const char*)question.toLocal8Bit().data(),
+                (unsigned char*)secret.toLocal8Bit().data(),
+                secret.length());
+    }
+
+    void Session::initSMPSecret(const QString &secret)
+    {
+        otrl_message_initiate_smp(userstate->userState(),
+                &global::appOps,
+                this,
+                findContext(),
+                (unsigned char*)secret.toLocal8Bit().data(),
+                secret.length());
+    }
+
+    void Session::abortSMPAuthentiaction(ConnContext *context)
+    {
+        if(context == NULL) {
+            context = findContext();
+        }
+        otrl_message_abort_smp(userstate->userState(), &global::appOps, this, context);
+    }
+
+    void Session::respondSMPAuthentication(const QString &answer)
+    {
+        otrl_message_respond_smp(userstate->userState(),
+                &global::appOps,
+                this,
+                findContext(),
+                (unsigned char*)answer.toLocal8Bit().data(),
+                answer.length());
+    }
+
     TrustFpResult Session::trustFingerprint(bool trust)
     {
         Fingerprint* fp = getFingerprint();
@@ -287,17 +326,42 @@ namespace OTR
         if(context != nullptr) {
             instance = context->their_instance;
         }
-        emit trustLevelChanged(trustLevel);
+        Q_EMIT trustLevelChanged(trustLevel);
     }
 
     void Session::onSessionRefreshed()
     {
-        emit sessionRefreshed();
+        Q_EMIT sessionRefreshed();
     }
 
     void Session::onNewFingerprintReceived(const QString &fingerprint)
     {
-        emit newFingerprintReceived(fingerprint);
+        Q_EMIT newFingerprintReceived(fingerprint);
+    }
+
+    void Session::onSMPFinished(bool success)
+    {
+        Q_EMIT authenticationFinished(success);
+    }
+
+    void Session::onSMPError()
+    {
+        Q_EMIT authenticationError();
+    }
+
+    void Session::onSMPAborted()
+    {
+        Q_EMIT authenticationAborted();
+    }
+
+    void Session::onSMPCheated()
+    {
+        Q_EMIT authenticationCheated();
+    }
+
+    void Session::onSMPQuery(const QString &question)
+    {
+        Q_EMIT authenticationRequested(question);
     }
 
     // -------- ProxySession --------------------------------------------
@@ -312,12 +376,6 @@ namespace OTR
         pca->processOTRmessage(message);
     }
 
-    void ProxySession::handleSmpEvent(OtrlSMPEvent smpEvent)
-    {
-        // TODO implement
-        Q_UNUSED(smpEvent);
-    }
-
     int ProxySession::recipientStatus() const
     {
         if(pca->channel()->hasChatStateInterface()) {
diff --git a/otr-proxy/KTpProxy/otr-session.h b/otr-proxy/KTpProxy/otr-session.h
index 2d3c43a..eb1a5b7 100644
--- a/otr-proxy/KTpProxy/otr-session.h
+++ b/otr-proxy/KTpProxy/otr-session.h
@@ -79,27 +79,45 @@ namespace OTR
             void stopSession();
             CryptResult encrypt(Message &message);
             CryptResult decrypt(Message &message);
-            void initSMPQuery();
-            void initSMPSecret();
+
+            void initSMPQuery(const QString &question, const QString &secret);
+            void initSMPSecret(const QString &secret);
+            void abortSMPAuthentiaction(ConnContext *context = NULL);
+            void respondSMPAuthentication(const QString &answer);
+
             TrustFpResult trustFingerprint(bool trust);
 
-            // functions called by libotr
+            // functions called by libotr ---------------------------------------
             virtual void handleMessage(const Message &message) = 0;
-            virtual void handleSmpEvent(OtrlSMPEvent smpEvent) = 0;
             virtual int recipientStatus() const = 0;
             virtual unsigned int maxMessageSize() const = 0;
+
             void onTrustLevelChanged(TrustLevel trustLevel, const ConnContext *context);
             void onSessionRefreshed();
             void onNewFingerprintReceived(const QString &fingeprint);
 
+            void onSMPFinished(bool success);
+            void onSMPError();
+            void onSMPAborted();
+            void onSMPCheated();
+            void onSMPQuery(const QString &question);
+
         private:
             Fingerprint* getFingerprint() const;
+            ConnContext* findContext() const;
 
         Q_SIGNALS:
             void trustLevelChanged(TrustLevel trustLevel);
             void sessionRefreshed();
             void newFingerprintReceived(const QString &fingeprint);
 
+            void authenticationFinished(bool success);
+            void authenticationError();
+            void authenticationAborted();
+            void authenticationCheated();
+            /** empty string if secret */
+            void authenticationRequested(const QString &question);
+
         private:
             otrl_instag_t instance;
             SessionContext ctx;
@@ -114,7 +132,6 @@ namespace OTR
             ProxySession(OtrProxyChannel::Adaptee *pca, const SessionContext &ctx, Manager *parent);
 
             virtual void handleMessage(const Message &message) override;
-            virtual void handleSmpEvent(OtrlSMPEvent smpEvent) override;
             virtual int recipientStatus() const override;
             virtual unsigned int maxMessageSize() const override;
 
diff --git a/otr-proxy/KTpProxy/svc-channel-proxy.cpp b/otr-proxy/KTpProxy/svc-channel-proxy.cpp
index fa38008..a424648 100644
--- a/otr-proxy/KTpProxy/svc-channel-proxy.cpp
+++ b/otr-proxy/KTpProxy/svc-channel-proxy.cpp
@@ -14,6 +14,11 @@ ChannelProxyInterfaceOTRAdaptor::ChannelProxyInterfaceOTRAdaptor(const QDBusConn
     connect(adaptee, SIGNAL(messageSent(const Tp::MessagePartList&, uint, const QString&)), SIGNAL(MessageSent(const Tp::MessagePartList&, uint, const QString&)));
     connect(adaptee, SIGNAL(messageReceived(const Tp::MessagePartList&)), SIGNAL(MessageReceived(const Tp::MessagePartList&)));
     connect(adaptee, SIGNAL(pendingMessagesRemoved(const Tp::UIntList&)), SIGNAL(PendingMessagesRemoved(const Tp::UIntList&)));
+    connect(adaptee, SIGNAL(peerAuthenticationRequested(const QString&)), SIGNAL(PeerAuthenticationRequested(const QString&)));
+    connect(adaptee, SIGNAL(peerAuthenticationConcluded(bool)), SIGNAL(PeerAuthenticationConcluded(bool)));
+    connect(adaptee, SIGNAL(peerAuthenticationAborted()), SIGNAL(PeerAuthenticationAborted()));
+    connect(adaptee, SIGNAL(peerAuthenticationError()), SIGNAL(PeerAuthenticationError()));
+    connect(adaptee, SIGNAL(peerAuthenticationCheated()), SIGNAL(PeerAuthenticationCheated()));
     connect(adaptee, SIGNAL(sessionRefreshed()), SIGNAL(SessionRefreshed()));
     connect(adaptee, SIGNAL(trustLevelChanged(uint)), SIGNAL(TrustLevelChanged(uint)));
 }
@@ -147,5 +152,46 @@ void ChannelProxyInterfaceOTRAdaptor::TrustFingerprint(const QString& fingerprin
         Q_ARG(Tp::Service::ChannelProxyInterfaceOTRAdaptor::TrustFingerprintContextPtr, ctx));
 }
 
+void ChannelProxyInterfaceOTRAdaptor::StartPeerAuthentication(const QString& question, const QString& secret, const QDBusMessage& dbusMessage)
+{
+    if (!adaptee()->metaObject()->indexOfMethod("startPeerAuthentication(QString,QString,Tp::Service::ChannelProxyInterfaceOTRAdaptor::StartPeerAuthenticationContextPtr)") == -1) {
+        dbusConnection().send(dbusMessage.createErrorReply(TP_QT_ERROR_NOT_IMPLEMENTED, QLatin1String("Not implemented")));
+        return;
+    }
+
+    StartPeerAuthenticationContextPtr ctx = StartPeerAuthenticationContextPtr(
+            new Tp::MethodInvocationContext<  >(dbusConnection(), dbusMessage));
+    QMetaObject::invokeMethod(adaptee(), "startPeerAuthentication",
+        Q_ARG(QString, question), Q_ARG(QString, secret),
+        Q_ARG(Tp::Service::ChannelProxyInterfaceOTRAdaptor::StartPeerAuthenticationContextPtr, ctx));
+}
+
+void ChannelProxyInterfaceOTRAdaptor::RespondPeerAuthentication(const QString& secret, const QDBusMessage& dbusMessage)
+{
+    if (!adaptee()->metaObject()->indexOfMethod("respondPeerAuthentication(QString,Tp::Service::ChannelProxyInterfaceOTRAdaptor::RespondPeerAuthenticationContextPtr)") == -1) {
+        dbusConnection().send(dbusMessage.createErrorReply(TP_QT_ERROR_NOT_IMPLEMENTED, QLatin1String("Not implemented")));
+        return;
+    }
+
+    RespondPeerAuthenticationContextPtr ctx = RespondPeerAuthenticationContextPtr(
+            new Tp::MethodInvocationContext<  >(dbusConnection(), dbusMessage));
+    QMetaObject::invokeMethod(adaptee(), "respondPeerAuthentication",
+        Q_ARG(QString, secret),
+        Q_ARG(Tp::Service::ChannelProxyInterfaceOTRAdaptor::RespondPeerAuthenticationContextPtr, ctx));
+}
+
+void ChannelProxyInterfaceOTRAdaptor::AbortPeerAuthentication(const QDBusMessage& dbusMessage)
+{
+    if (!adaptee()->metaObject()->indexOfMethod("abortPeerAuthentication(Tp::Service::ChannelProxyInterfaceOTRAdaptor::AbortPeerAuthenticationContextPtr)") == -1) {
+        dbusConnection().send(dbusMessage.createErrorReply(TP_QT_ERROR_NOT_IMPLEMENTED, QLatin1String("Not implemented")));
+        return;
+    }
+
+    AbortPeerAuthenticationContextPtr ctx = AbortPeerAuthenticationContextPtr(
+            new Tp::MethodInvocationContext<  >(dbusConnection(), dbusMessage));
+    QMetaObject::invokeMethod(adaptee(), "abortPeerAuthentication",
+        Q_ARG(Tp::Service::ChannelProxyInterfaceOTRAdaptor::AbortPeerAuthenticationContextPtr, ctx));
+}
+
 }
 }
diff --git a/otr-proxy/KTpProxy/svc-channel-proxy.h b/otr-proxy/KTpProxy/svc-channel-proxy.h
index d4a6d6f..31f8a21 100644
--- a/otr-proxy/KTpProxy/svc-channel-proxy.h
+++ b/otr-proxy/KTpProxy/svc-channel-proxy.h
@@ -59,6 +59,14 @@ class TP_QT_EXPORT ChannelProxyInterfaceOTRAdaptor : public Tp::AbstractAdaptor
 "      <arg direction=\"in\" type=\"s\" name=\"fingerprint\"/>
"
 "      <arg direction=\"in\" type=\"b\" name=\"trust\"/>
"
 "    </method>
"
+"    <method name=\"StartPeerAuthentication\">
"
+"      <arg direction=\"in\" type=\"s\" name=\"question\"/>
"
+"      <arg direction=\"in\" type=\"s\" name=\"secret\"/>
"
+"    </method>
"
+"    <method name=\"RespondPeerAuthentication\">
"
+"      <arg direction=\"in\" type=\"s\" name=\"secret\"/>
"
+"    </method>
"
+"    <method name=\"AbortPeerAuthentication\"/>
"
 "    <signal name=\"MessageSent\">
"
 "      <arg type=\"aa{sv}\" name=\"content\">
"
 "        <annotation value=\"Tp::MessagePartList\" name=\"com.trolltech.QtDBus.QtTypeName.In0\"/>
"
@@ -74,6 +82,15 @@ class TP_QT_EXPORT ChannelProxyInterfaceOTRAdaptor : public Tp::AbstractAdaptor
 "    <signal name=\"PendingMessagesRemoved\">
"
 "      <arg type=\"au\" name=\"messageIDs\"/>
"
 "    </signal>
"
+"    <signal name=\"PeerAuthenticationRequested\">
"
+"      <arg type=\"s\" name=\"question\"/>
"
+"    </signal>
"
+"    <signal name=\"PeerAuthenticationConcluded\">
"
+"      <arg type=\"b\" name=\"authenticated\"/>
"
+"    </signal>
"
+"    <signal name=\"PeerAuthenticationAborted\"/>
"
+"    <signal name=\"PeerAuthenticationError\"/>
"
+"    <signal name=\"PeerAuthenticationCheated\"/>
"
 "    <signal name=\"SessionRefreshed\"/>
"
 "    <signal name=\"TrustLevelChanged\">
"
 "      <arg type=\"u\" name=\"trustLevel\"/>
"
@@ -98,6 +115,9 @@ public:
     typedef Tp::MethodInvocationContextPtr<  > InitializeContextPtr;
     typedef Tp::MethodInvocationContextPtr<  > StopContextPtr;
     typedef Tp::MethodInvocationContextPtr<  > TrustFingerprintContextPtr;
+    typedef Tp::MethodInvocationContextPtr<  > StartPeerAuthenticationContextPtr;
+    typedef Tp::MethodInvocationContextPtr<  > RespondPeerAuthenticationContextPtr;
+    typedef Tp::MethodInvocationContextPtr<  > AbortPeerAuthenticationContextPtr;
 
 public: // PROPERTIES
     /**
@@ -106,7 +126,7 @@ public: // PROPERTIES
      * Adaptees should export this property as a Qt property named
      * 'wrappedChannel' with type QDBusObjectPath.
      *
-     * 
+     *
      * \htmlonly
      * <p>Object path of the channel this proxy is created for.</p>
      * \endhtmlonly
@@ -120,7 +140,7 @@ public: // PROPERTIES
      * Adaptees should export this property as a Qt property named
      * 'connected' with type bool.
      *
-     * 
+     *
      * \htmlonly
      * <p>TRUE if the proxy is connected</p>
      * \endhtmlonly
@@ -134,11 +154,11 @@ public: // PROPERTIES
      * Adaptees should export this property as a Qt property named
      * 'pendingMessages' with type Tp::MessagePartListList.
      *
-     * 
+     *
      * \htmlonly
      * <p>
      *   The same as:
-     *    \endhtmlonly ChannelInterfaceMessagesInterface \htmlonly 
+     *    \endhtmlonly ChannelInterfaceMessagesInterface \htmlonly
      * </p>
      * \endhtmlonly
      *
@@ -151,7 +171,7 @@ public: // PROPERTIES
      * Adaptees should export this property as a Qt property named
      * 'trustLevel' with type uint.
      *
-     * 
+     *
      * \htmlonly
      * <p>The current trust level of this channel:
      *     0=TRUST_NOT_PRIVATE, 1=TRUST_UNVERIFIED, 2=TRUST_PRIVATE,
@@ -169,7 +189,7 @@ public: // PROPERTIES
      * Adaptees should export this property as a Qt property named
      * 'localFingerprint' with type QString.
      *
-     * 
+     *
      * \htmlonly
      * <p>User's current fingerprint. The first element is a human readable
      * fingerprint that can be displayed to the user so he can communicate it
@@ -186,11 +206,11 @@ public: // PROPERTIES
      * Adaptees should export this property as a Qt property named
      * 'remoteFingerprint' with type QString.
      *
-     * 
+     *
      * \htmlonly
      * <p>The current fingerprint of the remote contact. Should be displayed
      *   to the user to update its trust level. It is shown in human readable format i.e.
-     *   :e .</p>
+     *   :e '12345678 12345678 12345678 12345678 12345678'.</p>
      * \endhtmlonly
      *
      * 
eturn The value of exported property 
-- 
ktp-common-internals packaging



More information about the pkg-kde-commits mailing list