checkbrute/src/mainthread.h
2020-10-24 23:51:02 +02:00

62 lines
1.9 KiB
C++

/*****************************************************************************
* checkbrute Checksum Bruteforcing Tool
* Copyright (C) 2020 Syping
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* This software is provided as-is, no warranties are given to you, we are not
* responsible for anything with use of the software, you are self responsible.
*****************************************************************************/
#ifndef MAINTHREAD_H
#define MAINTHREAD_H
// Qt includes
#include <QEventLoop>
#include <QObject>
// checkbrute includes
#include "brutethread.h"
#include "checksum.h"
class mainthread : public QObject
{
Q_OBJECT
public:
explicit mainthread(const QString &bruteforceFile, const QString &checksumsFile, const QString &algorithms, const QString &start, const QString &stop, const QString &lenghts, const QString &threads, bool strictHash, const std::map<std::string,checksum*> &checksum_map);
bool isInitialised();
void run();
public slots:
void threadFinished();
void matched();
private:
std::map<std::string,checksum*> checksum_map;
QVector<checksum*> checksum_vector;
QVector<QByteArray> checksums;
QVector<brutelength> lengths;
QByteArray fileContent;
QEventLoop eventLoop;
bool doneThreads;
bool initialised;
bool strictHash;
quint8 mthreads;
quint8 threads;
quint64 found;
quint64 begin;
quint64 end;
signals:
void finished();
};
#endif // MAINTHREAD_H