]> git.sesse.net Git - freerainbowtables/blob - Server Applications/rsearchi/CrackEngine.h
Fixed shortcuts
[freerainbowtables] / Server Applications / rsearchi / CrackEngine.h
1 /*
2    RainbowCrack - a general propose implementation of Philippe Oechslin's faster time-memory trade-off technique.
3
4    Copyright (C) Zhu Shuanglei <shuanglei@hotmail.com>
5 */
6
7 #ifndef _CRACKENGINE_H
8 #define _CRACKENGINE_H
9
10 #include "Public.h"
11 #include "HashSet.h"
12 #include "ChainWalkContext.h"
13 #include "MemoryPool.h"
14 #include "ChainWalkSet.h"
15
16 class CCrackEngine
17 {
18 public:
19         CCrackEngine();
20         virtual ~CCrackEngine();
21
22 private:
23         CChainWalkSet m_cws;
24
25         // Statistics
26         float m_fTotalDiskAccessTime;
27         float m_fTotalCryptanalysisTime;
28         int m_nTotalChainWalkStep;
29         int m_nTotalFalseAlarm;
30         int m_nTotalChainWalkStepDueToFalseAlarm;
31         FILE *m_fChains;
32 private:
33         void ResetStatistics();
34         RainbowChain *BinarySearch(RainbowChain *pChain, int nChainCountRead, uint64 nIndex, IndexChain *pIndex, int nIndexSize, int nIndexStart);
35         void SearchTableChunk(RainbowChain* pChain, int nRainbowChainLen, int nRainbowChainCount, CHashSet& hs, IndexChain *pIndex, int nIndexSize, int nChainStart);
36
37 public:
38         void SearchRainbowTable(string sPathName, CHashSet& hs);
39         void Run(vector<string> vPathName, CHashSet& hs);
40         float GetStatTotalDiskAccessTime();
41         float GetStatTotalCryptanalysisTime();
42         int   GetStatTotalChainWalkStep();
43         int   GetStatTotalFalseAlarm();
44         int   GetStatTotalChainWalkStepDueToFalseAlarm();
45 };
46
47 #endif