]> git.sesse.net Git - freerainbowtables/commitdiff
added distrrtgen_flash
authorMartin Westergaard Jorgensen <martinwj2005@gmail.com>
Thu, 20 Aug 2009 05:35:42 +0000 (07:35 +0200)
committerMartin Westergaard Jorgensen <martinwj2005@gmail.com>
Thu, 20 Aug 2009 05:35:42 +0000 (07:35 +0200)
BOINC software/BOINC client apps/distrrtgen_flash/Makefile [new file with mode: 0644]
BOINC software/BOINC client apps/distrrtgen_flash/charset.txt [new file with mode: 0644]
BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.cpp [new file with mode: 0644]
BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.h [new file with mode: 0644]
BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.ncb [new file with mode: 0644]
BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.sln [new file with mode: 0644]
BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.suo [new file with mode: 0644]
BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.vcproj [new file with mode: 0644]
BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.vcproj.MWJ-PC.mwj.user [new file with mode: 0644]

diff --git a/BOINC software/BOINC client apps/distrrtgen_flash/Makefile b/BOINC software/BOINC client apps/distrrtgen_flash/Makefile
new file mode 100644 (file)
index 0000000..0963011
--- /dev/null
@@ -0,0 +1,32 @@
+# This should work on Linux.  Modify as needed for other platforms.
+
+BOINC_DIR = /home/frt/server_stable
+BOINC_API_DIR = $(BOINC_DIR)/api
+BOINC_LIB_DIR = $(BOINC_DIR)/lib
+
+CXXFLAGS = -g \
+    -DAPP_GRAPHICS \
+    -I$(BOINC_DIR) \
+    -I$(BOINC_LIB_DIR) \
+    -I$(BOINC_API_DIR) \
+    -L$(BOINC_API_DIR) \
+    -L$(BOINC_LIB_DIR) \
+    -L /usr/X11R6/lib \
+    -L.
+
+
+PROGS = distrrtgen \
+
+all: $(PROGS)
+
+libstdc++.a:
+       ln -s `g++ -print-file-name=libstdc++.a`
+
+clean:
+       /bin/rm -f $(PROGS) *.o
+
+distclean:
+       /bin/rm -f $(PROGS) *.o libstdc++.a
+
+distrrtgen: distrrtgen.o libstdc++.a $(BOINC_API_DIR)/libboinc_api.a $(BOINC_LIB_DIR)/libboinc.a
+       $(CXX) Public.cpp ChainWalkContext.cpp HashAlgorithm.cpp HashRoutine.cpp md5.cpp $(CXXFLAGS) -o distrrtgen distrrtgen.o libstdc++.a -pthread -lboinc_api -lboinc -lssl -O3
diff --git a/BOINC software/BOINC client apps/distrrtgen_flash/charset.txt b/BOINC software/BOINC client apps/distrrtgen_flash/charset.txt
new file mode 100644 (file)
index 0000000..6e749fa
--- /dev/null
@@ -0,0 +1,34 @@
+# charset configuration file for DistrRTgen v3.2 by Martin Westergaard (martinwj2005@gmail.com)
+
+byte                        = []
+alpha                       = [ABCDEFGHIJKLMNOPQRSTUVWXYZ]
+alpha-space                 = [ABCDEFGHIJKLMNOPQRSTUVWXYZ ]
+alpha-numeric               = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]
+alpha-numeric-space         = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ]
+alpha-numeric-symbol14      = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=]
+alpha-numeric-symbol14-space= [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+= ]
+all                         = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/]
+all-space                   = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ]
+alpha-numeric-symbol32-space = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ]
+lm-frt-cp437                = [ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|}~\80\8e\8f\90\92\99\9a\9b\9c\9d\9e\9f¥àáâãäæçèéêëî]
+lm-frt-cp850                = [ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|}~\80\8e\8f\90\92\99\9a\9c\9d\9f¥µ¶·½¾ÇÏÑÒÓÔÕÖ×ØÞàáâãåæèéêëíï]
+lm-frt-cp437-850            = [ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|}~\80\8e\8f\90\92\99\9a\9b\9c\9d\9e\9f¥µ¶·½¾ÇÏÑÒÓÔÕÖ×ØÞàáâãäåæçèéêëíîï]
+
+numeric                     = [0123456789]
+numeric-space               = [0123456789 ]
+loweralpha                  = [abcdefghijklmnopqrstuvwxyz]
+loweralpha-space            = [abcdefghijklmnopqrstuvwxyz ]
+loweralpha-numeric          = [abcdefghijklmnopqrstuvwxyz0123456789]
+loweralpha-numeric-space    = [abcdefghijklmnopqrstuvwxyz0123456789 ]
+loweralpha-numeric-symbol14 = [abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_+=]
+loweralpha-numeric-all             = [abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/]
+loweralpha-numeric-symbol32-space= [abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ]
+
+mixalpha                    = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]
+mixalpha-space              = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ]
+mixalpha-numeric            = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]
+mixalpha-numeric-space      = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ]
+mixalpha-numeric-symbol14   = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=]
+mixalpha-numeric-all        = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/]
+mixalpha-numeric-symbol32-space  = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ]
+mixalpha-numeric-all-space  = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ]
diff --git a/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.cpp b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.cpp
new file mode 100644 (file)
index 0000000..5271512
--- /dev/null
@@ -0,0 +1,345 @@
+// This file is part of BOINC.
+// http://boinc.berkeley.edu
+// Copyright (C) 2008 University of California
+//
+// BOINC is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation,
+// either version 3 of the License, or (at your option) any later version.
+//
+// BOINC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
+// This program serves as both
+// - An example BOINC application, illustrating the use of the BOINC API
+// - A program for testing various features of BOINC
+//
+// NOTE: this file exists as both
+// boinc/apps/upper_case.C
+// and
+// boinc_samples/example_app/uc2.C
+// If you update one, please update the other!
+
+// The program converts a mixed-case file to upper case:
+// read "in", convert to upper case, write to "out"
+//
+// command line options
+// -run_slow: sleep 1 second after each character
+// -cpu_time N: use about N CPU seconds after copying files
+// -early_exit: exit(10) after 30 chars
+// -early_crash: crash after 30 chars
+//
+
+#ifdef _WIN32
+#include "boinc_win.h"
+#else
+#include "config.h"
+#include <cstdio>
+#include <cctype>
+#include <ctime>
+#include <cstring>
+#include <cstdlib>
+#include <csignal>
+#include <unistd.h>
+#endif
+
+#include <string>
+#include <fstream>
+#include <iostream>
+#include "str_util.h"
+#include "util.h"
+#include "filesys.h"
+#include "boinc_api.h"
+#include "Public.h"
+// Rainbowcrack code
+#include "ChainWalkContext.h"
+typedef unsigned int uint32;
+//typedef unsigned __int64 uint64;
+
+
+using std::string;
+
+/*
+bool early_exit = false;
+bool early_crash = false;
+bool early_sleep = false;
+double cpu_time = 20, comp_result;
+*/
+int QuickSortPartition(RainbowChainCP* pChain, int nLow, int nHigh)
+{
+       int nRandomIndex = nLow + ((unsigned int)rand() * (RAND_MAX + 1) + (unsigned int)rand()) % (nHigh - nLow + 1);
+       RainbowChainCP TempChain;
+       TempChain = pChain[nLow];
+       pChain[nLow] = pChain[nRandomIndex];
+       pChain[nRandomIndex] = TempChain;
+
+       TempChain = pChain[nLow];
+       uint64 nPivotKey = pChain[nLow].nIndexE;
+       while (nLow < nHigh)
+       {
+               while (nLow < nHigh && pChain[nHigh].nIndexE >= nPivotKey)
+                       nHigh--;
+               pChain[nLow] = pChain[nHigh];
+               while (nLow < nHigh && pChain[nLow].nIndexE <= nPivotKey)
+                       nLow++;
+               pChain[nHigh] = pChain[nLow];
+       }
+       pChain[nLow] = TempChain;
+       return nLow;
+}
+
+void QuickSort(RainbowChainCP* pChain, int nLow, int nHigh)
+{
+       if (nLow < nHigh)
+       {
+               int nPivotLoc = QuickSortPartition(pChain, nLow, nHigh);
+               QuickSort(pChain, nLow, nPivotLoc - 1);
+               QuickSort(pChain, nPivotLoc + 1, nHigh);
+       }
+}
+
+int main(int argc, char **argv) {    
+    int retval;
+    double fd;
+    char output_path[512], chkpt_path[512];
+    FILE* state;       
+    retval = boinc_init();
+    if (retval) {
+        fprintf(stderr, "boinc_init returned %d\n", retval);
+        exit(retval);
+    }
+       
+
+    // get size of input file (used to compute fraction done)
+    //
+    //file_size(input_path, fsize);
+
+    // See if there's a valid checkpoint file.
+    // If so seek input file and truncate output file
+    //
+
+
+       if(argc < 10)
+       {
+               fprintf(stderr, "Not enough parameters");
+               return -1;
+       }
+       string sHashRoutineName, sCharsetName, sSalt, sCheckPoints;
+       uint32 nRainbowChainCount, nPlainLenMin, nPlainLenMax, nRainbowTableIndex, nRainbowChainLen;
+       uint64 nChainStart;
+       sHashRoutineName = argv[1];
+       sCharsetName = argv[2];
+       nPlainLenMin = atoi(argv[3]);
+       nPlainLenMax = atoi(argv[4]);
+       nRainbowTableIndex = atoi(argv[5]);
+       nRainbowChainLen = atoi(argv[6]);
+       nRainbowChainCount = atoi(argv[7]);
+#ifdef _WIN32
+
+       nChainStart = _atoi64(argv[8]);
+
+#else
+       nChainStart = atoll(argv[8]);
+#endif
+       sCheckPoints = argv[9];
+       vector<int> vCPPositions;
+       char *cp = strtok((char *)sCheckPoints.c_str(), ",");
+       while(cp != NULL)
+       {
+               vCPPositions.push_back(atoi(cp));
+               cp = strtok(NULL, ",");
+       }
+       if(argc == 11)
+       {
+               sSalt = argv[10];
+       }
+       //std::cout << "Starting ChainGenerator" << std::endl;
+       // Setup CChainWalkContext
+       //std::cout << "ChainGenerator started." << std::endl;
+
+       if (!CChainWalkContext::SetHashRoutine(sHashRoutineName))
+       {
+               fprintf(stderr, "hash routine %s not supported\n", sHashRoutineName.c_str());
+               return 1;
+       }
+       //std::cout << "Hash routine validated" << std::endl;
+
+       if (!CChainWalkContext::SetPlainCharset(sCharsetName, nPlainLenMin, nPlainLenMax))
+       {       
+               std::cerr << "charset " << sCharsetName << " not supported" << std::endl;
+               return 2;
+       }
+       //std::cout << "Plain charset validated" << std::endl;
+
+       if (!CChainWalkContext::SetRainbowTableIndex(nRainbowTableIndex))
+       {
+               std::cerr << "invalid rainbow table index " << nRainbowTableIndex << std::endl;
+               return 3;
+       }
+       //std::cout << "Rainbowtable index validated" << std::endl;
+
+       if(sHashRoutineName == "mscache")// || sHashRoutineName == "lmchall" || sHashRoutineName == "halflmchall")
+       {
+               // Convert username to unicode
+               const char *szSalt = sSalt.c_str();
+               int salt_length = strlen(szSalt);
+               unsigned char cur_salt[256];
+               for (int i=0; i<salt_length; i++)
+               {
+                       cur_salt[i*2] = szSalt[i];
+                       cur_salt[i*2+1] = 0x00;
+               }
+               CChainWalkContext::SetSalt(cur_salt, salt_length*2);
+       }
+       else if(sHashRoutineName == "halflmchall")
+       { // The salt is hardcoded into the hash routine
+       //      CChainWalkContext::SetSalt((unsigned char*)&salt, 8);
+       }
+       else if(sHashRoutineName == "oracle")
+       {
+               CChainWalkContext::SetSalt((unsigned char *)sSalt.c_str(), sSalt.length());
+       }
+       //std::cout << "Opening chain file" << std::endl;
+
+       
+       // Open file
+//     fclose(fopen(sFilename.c_str(), "a"));
+//     FILE* file = fopen(sFilename.c_str(), "r+b");
+    boinc_resolve_filename("result", output_path, sizeof(output_path));
+       fclose(boinc_fopen(output_path, "a"));
+       FILE *outfile = boinc_fopen(output_path, "r+b");
+       
+       if (outfile == NULL)
+       {
+               std::cerr << "failed to create " << output_path << std::endl;
+               return 4;
+       }
+       
+       
+       // Check existing chains
+       unsigned int nDataLen = (unsigned int)GetFileLen(outfile);
+       unsigned int nFileLen;
+       
+       // Round to boundary
+       nDataLen = nDataLen / 18 * 18;
+       if ((int)nDataLen == nRainbowChainCount * 18)
+       {               
+               std::cerr << "precomputation of this rainbow table already finished" << std::endl;
+               fclose(outfile);
+               return 0;
+       }
+       nChainStart += (nDataLen / 18);
+       fseek(outfile, nDataLen, SEEK_SET);
+       size_t nReturn;
+       CChainWalkContext cwc;
+       uint64 nIndex[2];
+       time_t tStart = time(NULL);
+//     std::cout << "Starting to generate chains" << std::endl;
+       for(int nCurrentCalculatedChains = nDataLen / 18; nCurrentCalculatedChains < nRainbowChainCount; nCurrentCalculatedChains++)
+       {               
+               int cpcheck = 0;
+               unsigned short checkpoint = 0;
+               fd = (double)nCurrentCalculatedChains / (double)nRainbowChainCount;
+               boinc_fraction_done(fd);
+               cwc.SetIndex(nChainStart++); // use a given index now!
+               nIndex[0] = cwc.GetIndex();
+               
+               for (int nPos = 0; nPos < nRainbowChainLen - 1; nPos++)
+               {
+               //      std::cout << "IndexToPlain()" << std::endl;
+                       cwc.IndexToPlain();
+               //      std::cout << "PlainToHash()" << std::endl;
+                       cwc.PlainToHash();
+               //      std::cout << "HashToIndex()" << std::endl;
+                       cwc.HashToIndex(nPos);
+                       if(cpcheck < vCPPositions.size() && nPos == vCPPositions[cpcheck])
+                       {
+                               
+                               checkpoint |= (1 << cpcheck) & (unsigned short)cwc.GetIndex() << cpcheck;
+                               cpcheck++;
+                       }
+               }
+               //std::cout << "GetIndex()" << std::endl;
+
+               nIndex[1] = cwc.GetIndex();
+               // Write chain to disk
+               if ((nReturn = fwrite(nIndex, 1, 16, outfile)) != 16)
+               {
+                       std::cerr << "disk write fail" << std::endl;
+                       fclose(outfile);
+                       return 9;
+               }
+               if((nReturn = fwrite(&checkpoint, 1, 2, outfile)) != 2)
+               {
+                       std::cerr << "disk write fail" << std::endl;
+                       fclose(outfile);
+                       return 9;
+               }
+//             fflush(file);
+       }
+       //std::cout << "Generation completed" << std::endl;
+    fseek(outfile, 0, SEEK_SET);
+       nFileLen = GetFileLen(outfile);
+       nRainbowChainCount = nFileLen / 18;
+
+       RainbowChainCP* pChain = (RainbowChainCP*)new unsigned char[sizeof(RainbowChainCP) * nRainbowChainCount];
+
+       if (pChain != NULL)
+       {
+               // Load file
+               fseek(outfile, 0, SEEK_SET);
+               for(int i = 0; i < nRainbowChainCount; i++)
+               {
+                       if(fread(&pChain[i], 1, 16, outfile) != 16)
+                       {
+                               printf("disk read fail\n");
+                               return 9;
+                       }
+                       if(fread(&pChain[i].nCheckPoint, 1, sizeof(pChain[i].nCheckPoint), outfile) != 2)
+                       {
+                               printf("disk read fail\n");
+                               return 9;
+                       }
+               }
+
+               // Sort file
+               QuickSort(pChain, 0, nRainbowChainCount - 1);
+
+               // Write file
+               fseek(outfile, 0, SEEK_SET);
+               for(int i = 0; i < nRainbowChainCount; i++)
+               {
+                       fwrite(&pChain[i], 1, 16, outfile);
+                       fwrite(&pChain[i].nCheckPoint, 2, 1, outfile);
+               }
+               delete[] pChain;
+       }
+
+       fclose(outfile);
+    
+       // main loop - read characters, convert to UC, write
+    //
+
+    boinc_fraction_done(1);
+    boinc_finish(0);
+}
+
+#ifdef _WIN32
+int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR Args, int WinMode) {
+    LPSTR command_line;
+    char* argv[100];
+    int argc;
+
+    command_line = GetCommandLine();
+    argc = parse_command_line( command_line, argv );
+    return main(argc, argv);
+}
+#endif
+
+const char *BOINC_RCSID_33ac47a071 = "$Id: upper_case.C 12135 2007-02-21 20:04:14Z davea $";
+
diff --git a/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.h b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.h
new file mode 100644 (file)
index 0000000..d360617
--- /dev/null
@@ -0,0 +1,29 @@
+// This file is part of BOINC.
+// http://boinc.berkeley.edu
+// Copyright (C) 2008 University of California
+//
+// BOINC is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation,
+// either version 3 of the License, or (at your option) any later version.
+//
+// BOINC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with BOINC.  If not, see <http://www.gnu.org/licenses/>.
+
+#include "boinc_api.h"
+
+struct UC_SHMEM {
+    double update_time;
+    double fraction_done;
+    double cpu_time;
+    BOINC_STATUS status;
+    int countdown;
+        // graphics app sets this to 5 repeatedly,
+        // main program decrements it once/sec.
+        // If it's zero, don't bother updating shmem
+};
diff --git a/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.ncb b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.ncb
new file mode 100644 (file)
index 0000000..099aba7
Binary files /dev/null and b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.ncb differ
diff --git a/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.sln b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.sln
new file mode 100644 (file)
index 0000000..24b2d5b
--- /dev/null
@@ -0,0 +1,62 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "distrrtgen", "distrrtgen.vcproj", "{A3BDF5F8-4D0A-4B27-B1D9-7E77CBDA86C7}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "index_calculator", "..\index_calculator\index_calculator.vcproj", "{C7A957CF-9FDC-4C72-9C3E-7C029E915D1E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rti2rto", "..\..\standalone\rti2rto\rti2rto.vcproj", "{E0FBC06A-C902-4468-A614-CBF9F591AA7C}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "convertrti2", "..\..\standalone\converti2\converti2.vcproj", "{066FD6F1-5990-47AD-B095-7AE0029CF5AE}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsearch", "..\..\standalone\rsearch\rsearch.vcproj", "{40F12861-0A31-4E0E-8324-24F897271C8E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rtperfectp", "..\..\standalone\rtperfectp\rtperfectp.vcproj", "{9725038C-A07B-40DD-87CD-3A119021A244}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rcracki", "..\..\standalone\rcracki\rcracki.vcproj", "{966DA4B4-E13C-449D-9A93-303C6FEA25C4}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "chain_checker", "..\chain_checker\chain_checker.vcproj", "{74C09EAC-2EA2-4548-9B61-0FEE56147DFE}"
+EndProject
+Global
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution
+               Debug|Win32 = Debug|Win32
+               Release|Win32 = Release|Win32
+       EndGlobalSection
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution
+               {A3BDF5F8-4D0A-4B27-B1D9-7E77CBDA86C7}.Debug|Win32.ActiveCfg = Debug|Win32
+               {A3BDF5F8-4D0A-4B27-B1D9-7E77CBDA86C7}.Debug|Win32.Build.0 = Debug|Win32
+               {A3BDF5F8-4D0A-4B27-B1D9-7E77CBDA86C7}.Release|Win32.ActiveCfg = Release|Win32
+               {A3BDF5F8-4D0A-4B27-B1D9-7E77CBDA86C7}.Release|Win32.Build.0 = Release|Win32
+               {C7A957CF-9FDC-4C72-9C3E-7C029E915D1E}.Debug|Win32.ActiveCfg = Debug|Win32
+               {C7A957CF-9FDC-4C72-9C3E-7C029E915D1E}.Debug|Win32.Build.0 = Debug|Win32
+               {C7A957CF-9FDC-4C72-9C3E-7C029E915D1E}.Release|Win32.ActiveCfg = Release|Win32
+               {C7A957CF-9FDC-4C72-9C3E-7C029E915D1E}.Release|Win32.Build.0 = Release|Win32
+               {E0FBC06A-C902-4468-A614-CBF9F591AA7C}.Debug|Win32.ActiveCfg = Debug|Win32
+               {E0FBC06A-C902-4468-A614-CBF9F591AA7C}.Debug|Win32.Build.0 = Debug|Win32
+               {E0FBC06A-C902-4468-A614-CBF9F591AA7C}.Release|Win32.ActiveCfg = Release|Win32
+               {E0FBC06A-C902-4468-A614-CBF9F591AA7C}.Release|Win32.Build.0 = Release|Win32
+               {066FD6F1-5990-47AD-B095-7AE0029CF5AE}.Debug|Win32.ActiveCfg = Debug|Win32
+               {066FD6F1-5990-47AD-B095-7AE0029CF5AE}.Debug|Win32.Build.0 = Debug|Win32
+               {066FD6F1-5990-47AD-B095-7AE0029CF5AE}.Release|Win32.ActiveCfg = Release|Win32
+               {066FD6F1-5990-47AD-B095-7AE0029CF5AE}.Release|Win32.Build.0 = Release|Win32
+               {40F12861-0A31-4E0E-8324-24F897271C8E}.Debug|Win32.ActiveCfg = Debug|Win32
+               {40F12861-0A31-4E0E-8324-24F897271C8E}.Debug|Win32.Build.0 = Debug|Win32
+               {40F12861-0A31-4E0E-8324-24F897271C8E}.Release|Win32.ActiveCfg = Release|Win32
+               {40F12861-0A31-4E0E-8324-24F897271C8E}.Release|Win32.Build.0 = Release|Win32
+               {9725038C-A07B-40DD-87CD-3A119021A244}.Debug|Win32.ActiveCfg = Debug|Win32
+               {9725038C-A07B-40DD-87CD-3A119021A244}.Debug|Win32.Build.0 = Debug|Win32
+               {9725038C-A07B-40DD-87CD-3A119021A244}.Release|Win32.ActiveCfg = Release|Win32
+               {9725038C-A07B-40DD-87CD-3A119021A244}.Release|Win32.Build.0 = Release|Win32
+               {966DA4B4-E13C-449D-9A93-303C6FEA25C4}.Debug|Win32.ActiveCfg = Debug|Win32
+               {966DA4B4-E13C-449D-9A93-303C6FEA25C4}.Debug|Win32.Build.0 = Debug|Win32
+               {966DA4B4-E13C-449D-9A93-303C6FEA25C4}.Release|Win32.ActiveCfg = Release|Win32
+               {966DA4B4-E13C-449D-9A93-303C6FEA25C4}.Release|Win32.Build.0 = Release|Win32
+               {74C09EAC-2EA2-4548-9B61-0FEE56147DFE}.Debug|Win32.ActiveCfg = Debug|Win32
+               {74C09EAC-2EA2-4548-9B61-0FEE56147DFE}.Debug|Win32.Build.0 = Debug|Win32
+               {74C09EAC-2EA2-4548-9B61-0FEE56147DFE}.Release|Win32.ActiveCfg = Release|Win32
+               {74C09EAC-2EA2-4548-9B61-0FEE56147DFE}.Release|Win32.Build.0 = Release|Win32
+       EndGlobalSection
+       GlobalSection(SolutionProperties) = preSolution
+               HideSolutionNode = FALSE
+       EndGlobalSection
+EndGlobal
diff --git a/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.suo b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.suo
new file mode 100644 (file)
index 0000000..cfac2c8
Binary files /dev/null and b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.suo differ
diff --git a/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.vcproj b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.vcproj
new file mode 100644 (file)
index 0000000..aeff305
--- /dev/null
@@ -0,0 +1,290 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9,00"
+       Name="distrrtgen"
+       ProjectGUID="{A3BDF5F8-4D0A-4B27-B1D9-7E77CBDA86C7}"
+       RootNamespace="distrrtgen"
+       Keyword="Win32Proj"
+       TargetFrameworkVersion="196613"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1"
+                       CharacterSet="0"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="/boinc/lib;/boinc/api;&quot;/boinc/zip&quot;;&quot;/boinc/client/win&quot;;&quot;/boinc/&quot;;../../rt api"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_MT;_CONSOLE"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="1"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               DebugInformationFormat="4"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="libcmtd.lib libcpmtd.lib kernel32.lib user32.lib ole32.lib delayimp.lib ..\lib_debug\libboinc_staticcrt.lib ..\lib_debug\libboincapi_staticcrt.lib c:/openssl/lib/libeay32.lib"
+                               LinkIncremental="0"
+                               IgnoreAllDefaultLibraries="true"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1"
+                       CharacterSet="0"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               InlineFunctionExpansion="2"
+                               EnableIntrinsicFunctions="true"
+                               FavorSizeOrSpeed="1"
+                               WholeProgramOptimization="true"
+                               AdditionalIncludeDirectories="/boinc/lib;/boinc/api;/boinc/zip;/boinc/client/win;/boinc/;&quot;C:\Users\mwj\git\Common\rt api&quot;"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_MT;_CONSOLE"
+                               RuntimeLibrary="0"
+                               EnableFunctionLevelLinking="true"
+                               EnableEnhancedInstructionSet="2"
+                               UsePrecompiledHeader="0"
+                               WarningLevel="3"
+                               Detect64BitPortabilityProblems="true"
+                               DebugInformationFormat="3"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="odbc32.lib odbccp32.lib libcmt.lib libcpmt.lib ..\lib_release\libboinc_staticcrt.lib ..\lib_release\libboincapi_staticcrt.lib"
+                               LinkIncremental="0"
+                               IgnoreAllDefaultLibraries="true"
+                               GenerateDebugInformation="true"
+                               SubSystem="2"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               RandomizedBaseAddress="1"
+                               DataExecutionPrevention="0"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source Files"
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+                       >
+                       <File
+                               RelativePath="..\..\..\Common\rt api\ChainWalkContext.cpp"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\Common\rt api\des_enc.c"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\Common\rt api\des_setkey.c"
+                               >
+                       </File>
+                       <File
+                               RelativePath=".\distrrtgen.cpp"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\Common\rt api\ecb_enc.c"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\Common\rt api\HashAlgorithm.cpp"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\Common\rt api\HashRoutine.cpp"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\Common\rt api\md4.cpp"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\Common\rt api\md5.cpp"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\Common\rt api\Public.cpp"
+                               >
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Header Files"
+                       Filter="h;hpp;hxx;hm;inl;inc;xsd"
+                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+                       >
+                       <File
+                               RelativePath="..\..\..\Common\rt api\ChainWalkContext.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\Common\rt api\des.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\Common\rt api\des_locl.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath=".\distrrtgen.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\Common\rt api\HashAlgorithm.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\Common\rt api\HashRoutine.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\Common\rt api\md4.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\Common\rt api\md5.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\Common\rt api\podd.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\Common\rt api\Public.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\Common\rt api\sk.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\..\..\Common\rt api\spr.h"
+                               >
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Resource Files"
+                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+                       >
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.vcproj.MWJ-PC.mwj.user b/BOINC software/BOINC client apps/distrrtgen_flash/distrrtgen.vcproj.MWJ-PC.mwj.user
new file mode 100644 (file)
index 0000000..15b19f6
--- /dev/null
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioUserFile
+       ProjectType="Visual C++"
+       Version="9,00"
+       ShowAllFiles="false"
+       >
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       >
+                       <DebugSettings
+                               Command="$(TargetPath)"
+                               WorkingDirectory=""
+                               CommandArguments=""
+                               Attach="false"
+                               DebuggerType="3"
+                               Remote="1"
+                               RemoteMachine="MWJ-PC"
+                               RemoteCommand=""
+                               HttpUrl=""
+                               PDBPath=""
+                               SQLDebugging=""
+                               Environment=""
+                               EnvironmentMerge="true"
+                               DebuggerFlavor=""
+                               MPIRunCommand=""
+                               MPIRunArguments=""
+                               MPIRunWorkingDirectory=""
+                               ApplicationCommand=""
+                               ApplicationArguments=""
+                               ShimCommand=""
+                               MPIAcceptMode=""
+                               MPIAcceptFilter=""
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       >
+                       <DebugSettings
+                               Command="$(TargetPath)"
+                               WorkingDirectory=""
+                               CommandArguments=""
+                               Attach="false"
+                               DebuggerType="3"
+                               Remote="1"
+                               RemoteMachine="MWJ-PC"
+                               RemoteCommand=""
+                               HttpUrl=""
+                               PDBPath=""
+                               SQLDebugging=""
+                               Environment=""
+                               EnvironmentMerge="true"
+                               DebuggerFlavor=""
+                               MPIRunCommand=""
+                               MPIRunArguments=""
+                               MPIRunWorkingDirectory=""
+                               ApplicationCommand=""
+                               ApplicationArguments=""
+                               ShimCommand=""
+                               MPIAcceptMode=""
+                               MPIAcceptFilter=""
+                       />
+               </Configuration>
+       </Configurations>
+</VisualStudioUserFile>