]> git.sesse.net Git - freerainbowtables/blobdiff - Client Applications/rcracki_mt/CrackEngine.cpp
backport rcracki_mt trunk from rcracki.sourceforge.net
[freerainbowtables] / Client Applications / rcracki_mt / CrackEngine.cpp
index 0343588f38015dcead7af0a10818659b97a01cc4..8cc5305355d388c592b5930c5b046efe45202eb1 100644 (file)
@@ -999,6 +999,7 @@ void CCrackEngine::SearchRainbowTable(string sPathName, CHashSet& hs)
        FILE* file = fopen(sPathName.c_str(), "rb");\r
        if (file != NULL)\r
        {\r
+               // XXX file type detection code needs a serious overhaul\r
                // File length check\r
                bool doOldFormat = CChainWalkContext::isOldFormat();\r
                bool doRti2Format = CChainWalkContext::isRti2Format();\r
@@ -1011,7 +1012,6 @@ void CCrackEngine::SearchRainbowTable(string sPathName, CHashSet& hs)
                else\r
                        sizeOfChain = 8;\r
 \r
-               //if (nFileLen % 8 != 0 || nRainbowChainCount * 8 != nFileLen)\r
                if ( ( (unsigned long)nFileLen % sizeOfChain != 0 || nRainbowChainCount * sizeOfChain != (unsigned long)nFileLen) && doRti2Format == false )\r
                        printf("file length mismatch\n");\r
                else\r
@@ -1030,10 +1030,7 @@ void CCrackEngine::SearchRainbowTable(string sPathName, CHashSet& hs)
                        {\r
                                RTI2Reader *pReader = NULL;\r
 \r
-                               if(doRti2Format) {\r
-                                       pReader = new RTI2Reader(sPathName);\r
-\r
-                               }\r
+                               if(doRti2Format)\r
 \r
                                if (debug)\r
                                {\r
@@ -1045,11 +1042,11 @@ void CCrackEngine::SearchRainbowTable(string sPathName, CHashSet& hs)
 \r
                                static CMemoryPool mp(bytesForChainWalkSet, debug, maxMem);\r
                                RainbowChainO* pChain = NULL;\r
-                               if(doRti2Format) {\r
+                               if(doRti2Format)\r
                                        pChain = (RainbowChainO*)mp.Allocate(pReader->GetChainsLeft() * 16, nAllocatedSize);\r
-                               } else {\r
+                               else\r
                                        pChain = (RainbowChainO*)mp.Allocate(nFileLen, nAllocatedSize);\r
-                               }\r
+\r
                                #if defined(_WIN32) && !defined(__GNUC__)\r
                                        if (debug) printf("Allocated %I64 bytes, filelen %ld\n", nAllocatedSize, nFileLen);\r
                                #else\r
@@ -1091,11 +1088,12 @@ void CCrackEngine::SearchRainbowTable(string sPathName, CHashSet& hs)
                                                printf("%u bytes read, disk access time: %.2f s\n", nDataRead, fTime);\r
                                                m_fTotalDiskAccessTime += fTime;\r
 \r
-                                               int nRainbowChainCountRead = nDataRead / 16;\r
+                                               int nRainbowChainCountRead;\r
 \r
-                                               if(doRti2Format) {\r
+                                               if(doRti2Format)\r
                                                        nRainbowChainCountRead = nDataRead / 8;\r
-                                               }\r
+                                               else\r
+                                                       nRainbowChainCountRead = nDataRead / 16;\r
 \r
                                                // Verify table chunk\r
                                                if (!fVerified)\r
@@ -1241,7 +1239,6 @@ void CCrackEngine::SearchRainbowTable(string sPathName, CHashSet& hs)
                                                                {\r
                                                                        nAllocatedSize = nAllocatedSize / sizeOfChain * sizeOfChain;            // Round to sizeOfChain boundary\r
 \r
-                                                                       //fseek(file, 0, SEEK_SET);\r
                                                                        //bool fVerified = false;\r
                                                                        uint32 nProcessedChains = 0;\r
                                                                        while ( ftell(file) != nFileLen \r
@@ -1373,6 +1370,7 @@ void CCrackEngine::Run(vector<string> vPathName, CHashSet& hs, int i_maxThreads,
        // Reset statistics\r
        ResetStatistics();\r
 \r
+       // XXX it's not like the STL has a sort method...\r
        // Sort vPathName (CChainWalkSet need it)\r
        uint32 i, j;\r
        for (i = 0; i < vPathName.size() - 1; i++)\r
@@ -1435,7 +1433,7 @@ float CCrackEngine::GetStatTotalPrecalculationTime()
        return m_fTotalPrecalculationTime;\r
 }\r
 \r
-int CCrackEngine::GetStatTotalChainWalkStep()\r
+uint64 CCrackEngine::GetStatTotalChainWalkStep()\r
 {\r
        return m_nTotalChainWalkStep;\r
 }\r
@@ -1445,7 +1443,7 @@ int CCrackEngine::GetStatTotalFalseAlarm()
        return m_nTotalFalseAlarm;\r
 }\r
 \r
-int CCrackEngine::GetStatTotalChainWalkStepDueToFalseAlarm()\r
+uint64 CCrackEngine::GetStatTotalChainWalkStepDueToFalseAlarm()\r
 {\r
        return m_nTotalChainWalkStepDueToFalseAlarm;\r
 }\r