[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