File: ThreadCalcHash.h

package info (click to toggle)
qcalcfilehash 1.1.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 272 kB
  • sloc: cpp: 862; xml: 26; makefile: 4
file content (58 lines) | stat: -rw-r--r-- 1,607 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#ifndef THREADCALCHASH_H
#define THREADCALCHASH_H

#include <QThread>

enum class HASH_ALGORITHM : int {
    Crc8,
    Crc32,
    Md4,
    Md5,
    Sha1,
    Sha224,
    Sha256,
    Sha384,
    Sha512,
    md_gost94,
    md_gost12_256,
    md_gost12_512
};

class ThreadCalcHash : public QThread {
    Q_OBJECT
    public:
        ThreadCalcHash();
        ~ThreadCalcHash();
        void run();

        void setFilename(QString filename);
        void setHashAlgorithm(HASH_ALGORITHM algorithm);

    private:
        QString _filename;
        HASH_ALGORITHM _hashAlgorithm;

        std::string opensslEvp(const std::string &filename,const std::string &digest);

        std::string getCrc8FromFile(const std::string &filename);
        std::string getCrc32FromFile(const std::string &filename);
        std::string getMD4FromFile(const std::string &filename);
        std::string getMD5FromFile(const std::string &filename);
        std::string getSHA1FromFile(const std::string &filename);
        std::string getSHA224FromFile(const std::string &filename);
        std::string getSHA256FromFile(const std::string &filename);
        std::string getSHA384FromFile(const std::string &filename);
        std::string getSHA512FromFile(const std::string &filename);

        std::string getGost94FromFile(const std::string &filename);
        std::string getGost12_256FromFile(const std::string &filename);
        std::string getGost12_512FromFile(const std::string &filename);
    private slots:

    signals:
        void changeValue(int);
        void result(QString);

};

#endif // THREADCALCHASH_H