]> git.sesse.net Git - freerainbowtables/blobdiff - Client Applications/rcracki_mt/RTI2Reader.h
rcracki_mt updated to rti2
[freerainbowtables] / Client Applications / rcracki_mt / RTI2Reader.h
diff --git a/Client Applications/rcracki_mt/RTI2Reader.h b/Client Applications/rcracki_mt/RTI2Reader.h
new file mode 100644 (file)
index 0000000..6934e6c
--- /dev/null
@@ -0,0 +1,42 @@
+#ifndef __RTI2READER_H__
+#define __RTI2READER_H__
+
+#include "Public.h"
+#include <string>
+#ifdef WIN32
+#include <io.h>
+#endif
+#include <vector>
+#include "BaseRTReader.h"
+using namespace std;
+
+typedef struct 
+{
+       char header[4];
+       unsigned char rti_startptlength, rti_endptlength, rti_cplength, rti_index_numchainslength;
+       uint64 prefixstart;
+       unsigned int *m_cppos;
+} RTI2Header;
+
+class RTI2Reader : BaseRTReader
+{
+private:
+       FILE *m_pFile;
+       unsigned int m_chainPosition;
+       unsigned char *m_pPos, *m_pChainPos;
+       static RTI2Header *m_pHeader;
+       unsigned char *m_pIndex;
+       unsigned int m_chainsizebytes;
+       unsigned int m_indexrowsizebytes;
+       
+
+public:
+       RTI2Reader(string Filename);
+       ~RTI2Reader(void);
+       int ReadChains(unsigned int &numChains, RainbowChainO *pData);
+       unsigned int GetChainsLeft();
+       static RTI2Header *GetHeader() { return m_pHeader; }
+};
+
+
+#endif