Beispiel #1
0
        /// <summary>
        /// Computes SHA512 of the file
        /// </summary>
        /// <returns>The human readable SHA512 checksum of the file</returns>
        public string sha512()
        {
            Hash h = new HashSHA512(task);

            return(h.digest(filename));
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            //args
            //Dir
            List <string> directory = new List <string>();
            int           count     = 0;

            for (int i = 0; i < args.Length; i++)
            {
                if (Directory.Exists(args[i]))
                {
                    directory.Add(args[i]);
                    count++;
                }
                else
                {
                    break;
                }
            }

            #region hash
            Hasher hash = new HashMD5();
            try
            {
                HashType hashType = (HashType)Enum.Parse(typeof(HashType), args[count], true);
                if (hashType == HashType.MD5)
                {
                    hash = new HashMD5();
                }
                if (hashType == HashType.SHA256)
                {
                    hash = new HashSHA256();
                }
                if (hashType == HashType.SHA512)
                {
                    hash = new HashSHA512();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Error parsing second command line argument Fill in one of these: " + HashType.MD5.ToString() + " " + HashType.SHA256 + " " + e);
                Console.ReadLine();
                Environment.Exit(1);
            }
            #endregion

            //initial vars
            string fileUnfinishedTag = "unf";
            string logFileName       = "MD5rebornLogs";

            //initial classes
            Logger logger = new FileLogger(logFileName);
            logSystemInfo(logger);

            Terminal terminal = new TerminalLocalScreen();

            //dirCheck
            DataChecker.DataChecker dataChecker = new DataCheckerLocalHDD(logger, directory, fileUnfinishedTag);

            folderState   state;
            List <string> files = new List <string>();

            dataChecker.GetStatus(out state, out files);

            if (state == folderState.finished)
            {
                tManager = new ThreadManager(logger, dataChecker, directory, fileUnfinishedTag, files[0], hash);
            }
            else //state.none
            {
                tManager = new ThreadManager(logger, dataChecker, directory, fileUnfinishedTag, hash);
            }

            //startAguments dir
            //make logger writes down basic info in a txt file like cores/os id etc

            //checklatestmake hash

            //depending on outcome -> fire up and finish files then fire up threadmanager

            //else fire up threadmanager and hash new files

            //fire up diffrent thread for console commands

            //fire up extra thread for displaying data
            tManager.Start();
        }