2 * rcracki_mt is a multithreaded implementation and fork of the original
\r
5 * Copyright (C) Zhu Shuanglei <shuanglei@hotmail.com>
\r
6 * Copyright Martin Westergaard Jørgensen <martinwj2005@gmail.com>
\r
7 * Copyright 2009, 2010 Daniël Niggebrugge <niggebrugge@fox-it.com>
\r
8 * Copyright 2009, 2010 James Nobis <frt@quelrod.net>
\r
10 * This file is part of racrcki_mt.
\r
12 * rcracki_mt is free software: you can redistribute it and/or modify
\r
13 * it under the terms of the GNU General Public License as published by
\r
14 * the Free Software Foundation, either version 2 of the License, or
\r
15 * (at your option) any later version.
\r
17 * rcracki_mt is distributed in the hope that it will be useful,
\r
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
20 * GNU General Public License for more details.
\r
22 * You should have received a copy of the GNU General Public License
\r
23 * along with rcracki_mt. If not, see <http://www.gnu.org/licenses/>.
\r
26 #ifndef _CHAINWALKSET_H
\r
27 #define _CHAINWALKSET_H
\r
33 unsigned char Hash[MAX_HASH_LEN];
\r
34 //int nHashLen; // Implied
\r
35 uint64* pIndexE; // mapStartPosIndexE, Len = nRainbowChainLen - 1
\r
42 virtual ~CChainWalkSet();
\r
45 string m_sHashRoutineName; // Discard all if not match
\r
46 string m_sPlainCharsetName; // Discard all if not match
\r
47 int m_nPlainLenMin; // Discard all if not match
\r
48 int m_nPlainLenMax; // Discard all if not match
\r
49 int m_nRainbowTableIndex; // Discard all if not match
\r
50 int m_nRainbowChainLen; // Discard all if not match
\r
51 list<ChainWalk> m_lChainWalk;
\r
53 string sPrecalcPathName;
\r
55 vector<string> vPrecalcFiles;
\r
59 bool FindInFile(uint64* pIndexE, unsigned char* pHash, int nHashLen);
\r
60 string CheckOrRotatePreCalcFile();
\r
61 void updateUsedPrecalcFiles();
\r
64 uint64* RequestWalk(unsigned char* pHash, int nHashLen,
\r
65 string sHashRoutineName,
\r
66 string sPlainCharsetName, int nPlainLenMin, int nPlainLenMax,
\r
67 int nRainbowTableIndex,
\r
68 int nRainbowChainLen,
\r
69 bool& fNewlyGenerated,
\r
72 void DiscardWalk(uint64* pIndexE);
\r
73 void StoreToFile(uint64* pIndexE, unsigned char* pHash, int nHashLen);
\r
74 void removePrecalcFiles();
\r