[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [messagelib] webengineviewer/src/checkphishingurl: Start to implement search on server
From:       Montel Laurent <montel () kde ! org>
Date:       2016-11-29 8:00:23
Message-ID: E1cBdKx-0008Q7-At () code ! kde ! org
[Download RAW message or body]

Git commit 9ba9d4a3d882e8a340a758a34d9af1e68973c855 by Montel Laurent.
Committed on 29/11/2016 at 08:00.
Pushed by mlaurent into branch 'master'.

Start to implement search on server

M  +2    -1    webengineviewer/src/checkphishingurl/autotests/localdatabasefiletest.cpp
 M  +9    -2    webengineviewer/src/checkphishingurl/localdatabasefile.cpp
M  +1    -1    webengineviewer/src/checkphishingurl/localdatabasefile.h
M  +13   -7    webengineviewer/src/checkphishingurl/localdatabasemanager.cpp
M  +2    -0    webengineviewer/src/checkphishingurl/localdatabasemanager.h

https://commits.kde.org/messagelib/9ba9d4a3d882e8a340a758a34d9af1e68973c855

diff --git a/webengineviewer/src/checkphishingurl/autotests/localdatabasefiletest.cpp \
b/webengineviewer/src/checkphishingurl/autotests/localdatabasefiletest.cpp index \
                ddb3264..a02ee59 100644
--- a/webengineviewer/src/checkphishingurl/autotests/localdatabasefiletest.cpp
+++ b/webengineviewer/src/checkphishingurl/autotests/localdatabasefiletest.cpp
@@ -118,7 +118,8 @@ void LocalDataBaseFileTest::shouldCheckHashBinaryFile()
     quint64 number = newFile.getUint64(4);
     QCOMPARE(number, static_cast<quint64>(9));
     int index = 4 + sizeof(quint64);
-    const QByteArray val = newFile.searchHash(4, hash);
+    QCOMPARE(index, 12);
+    const QByteArray val = newFile.searchHash(hash);
     qDebug() << "result : " << val;
     QCOMPARE(!val.isEmpty(), found);
     if (!val.isEmpty()) {
diff --git a/webengineviewer/src/checkphishingurl/localdatabasefile.cpp \
b/webengineviewer/src/checkphishingurl/localdatabasefile.cpp index 280ff9f..acacd9c \
                100644
--- a/webengineviewer/src/checkphishingurl/localdatabasefile.cpp
+++ b/webengineviewer/src/checkphishingurl/localdatabasefile.cpp
@@ -133,8 +133,15 @@ bool LocalDataBaseFile::reload()
     return d->reload();
 }
 
-QByteArray LocalDataBaseFile::searchHash(int posListOffset, const QByteArray \
                &hashToSearch)
-{
+QByteArray LocalDataBaseFile::searchHash(const QByteArray &hashToSearch)
+{
+    /* database file has:
+     * - one getUint16 => major
+     * - one getUint16 => minor
+     * - one getUint64 => number of item
+     * => 12
+     */
+    int posListOffset = 12;
     const int numHash = getUint64(posListOffset);
     qDebug() << " numHash "<< numHash;
     int begin = 0;
diff --git a/webengineviewer/src/checkphishingurl/localdatabasefile.h \
b/webengineviewer/src/checkphishingurl/localdatabasefile.h index 78d0781..1de9669 \
                100644
--- a/webengineviewer/src/checkphishingurl/localdatabasefile.h
+++ b/webengineviewer/src/checkphishingurl/localdatabasefile.h
@@ -56,7 +56,7 @@ public:
     quint64 getUint64(int offset) const;
     const char *getCharStar(int offset) const;
 
-    QByteArray searchHash(int posListOffset, const QByteArray &hashToSearch);
+    QByteArray searchHash(const QByteArray &hashToSearch);
 
     bool shouldCheck() const;
     bool checkFileChanged();
diff --git a/webengineviewer/src/checkphishingurl/localdatabasemanager.cpp \
b/webengineviewer/src/checkphishingurl/localdatabasemanager.cpp index \
                49255b0..54d7480 100644
--- a/webengineviewer/src/checkphishingurl/localdatabasemanager.cpp
+++ b/webengineviewer/src/checkphishingurl/localdatabasemanager.cpp
@@ -218,17 +218,18 @@ void LocalDataBaseManager::setDownloadProgress(bool \
downloadProgress)  void LocalDataBaseManager::checkUrl(const QUrl &url)
 {
     if (d->mDataBaseOk) {
-#if 0
-        QByteArray hash = createHash(url);
-        if (malwareFound(hash)) {
-            Q_EMIT checkUrlFinished(url, \
WebEngineViewer::LocalDataBaseManager::Malware); +        QByteArray hash;
+        QByteArray result = d->mFile.searchHash(hash);
+        if (hash.contains(result)) {
+            WebEngineViewer::SearchFullHashJob *job = new \
WebEngineViewer::SearchFullHashJob(this); +            \
job->setDatabaseState(QStringList() << d->mNewClientState); +            connect(job, \
&SearchFullHashJob::result, this, &LocalDataBaseManager::slotSearchOnServerResult); + \
job->start(); +            //TODO verify on server
         } else {
             Q_EMIT checkUrlFinished(url, \
WebEngineViewer::LocalDataBaseManager::UrlOk);  }
     } else {
-        Q_EMIT checkUrlFinished(url, \
                WebEngineViewer::LocalDataBaseManager::Unknown);
-#endif
-    } else {
         qCWarning(WEBENGINEVIEWER_LOG) << "Database not ok";
         Q_EMIT checkUrlFinished(url, \
WebEngineViewer::LocalDataBaseManager::Unknown);  }
@@ -236,3 +237,8 @@ void LocalDataBaseManager::checkUrl(const QUrl &url)
         d->mFile.reload();
     }
 }
+
+void LocalDataBaseManager::slotSearchOnServerResult(WebEngineViewer::SearchFullHashJob::UrlStatus \
status, const QByteArray &hash, const QStringList &listHash) +{
+    //TODO
+}
diff --git a/webengineviewer/src/checkphishingurl/localdatabasemanager.h \
b/webengineviewer/src/checkphishingurl/localdatabasemanager.h index af660f0..83a25fb \
                100644
--- a/webengineviewer/src/checkphishingurl/localdatabasemanager.h
+++ b/webengineviewer/src/checkphishingurl/localdatabasemanager.h
@@ -24,6 +24,7 @@
 #include "webengineviewer_export.h"
 #include <QUrl>
 #include "createphishingurldatabasejob.h"
+#include "searchfullhashjob.h"
 namespace WebEngineViewer
 {
 class LocalDataBaseManagerPrivate;
@@ -55,6 +56,7 @@ protected:
     virtual void downloadPartialDataBase();
 
 private:
+    void slotSearchOnServerResult(WebEngineViewer::SearchFullHashJob::UrlStatus \
                status, const QByteArray &hash, const QStringList &listHash);
     void slotCreateDataBaseFileNameFinished(bool finished, const QString \
&newClientState);  void slotDownloadDataBaseFinished(const \
WebEngineViewer::UpdateDataBaseInfo &infoDataBase, \
WebEngineViewer::CreatePhishingUrlDataBaseJob::DataBaseDownloadResult status);  void \
slotCheckDataBase();


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic