Exemplo n.º 1
0
        public static void FilesHmac()
        {
            string passwd;
            string option;
            int    rdopiton;
            int    i;

            Console.WriteLine("+----------------------------------------------------------+");
            Console.WriteLine("|      Gerar Hmac dos ficheriros da directoria             |");
            Console.WriteLine("+----------------------------------------------------------+");

            List <Dir> directories = AjudanteParaBD.SelectDirsWithUsername(DataBaseFunctions.userLog);

            if (directories == null)
            {
                Console.WriteLine("Erro durante a leitura da base de dados.");
                return;
            }
            if (directories.Count == 0)
            {
                Console.WriteLine("Erro! Voce nao tem nenhuma diretoria adicionada.");
                return;
            }

            for (i = 0; i < directories.Count; i++)
            {
                Console.WriteLine(i + " - " + directories[i].path);
            }
            do
            {
                Console.WriteLine("Escolha uma direcotria!");
                option = Console.ReadLine();


                rdopiton = int.Parse(option);
            } while (rdopiton > i);

            Console.WriteLine("Introduza a password com que pretende gerar os HMAC");

            passwd = Console.ReadLine();

            var hmacs = HMac.hmac(directories[rdopiton].path, passwd);

            foreach (var hmac in hmacs)
            {
                Console.WriteLine(hmac);
                AjudanteParaBD.InsertFileHMAC(new FileHmac(hmac.Key, hmac.Value, directories[rdopiton].path));
            }
        }
Exemplo n.º 2
0
        public static void Verificarhmac()
        {
            Console.WriteLine("+----------------------------------------------------------+");
            Console.WriteLine("|               Ler Directoria                             |");
            Console.WriteLine("+----------------------------------------------------------+");

            List <Dir> directories = AjudanteParaBD.SelectDirsWithUsername(DataBaseFunctions.userLog);
            int        index       = 0;

            if (directories == null)
            {
                Console.WriteLine("Erro durante a leitura da base de dados.");
                return;
            }
            if (directories.Count == 0)
            {
                Console.WriteLine("Erro! Voce nao tem nenhuma diretoria adicionada.");
                return;
            }

            for (int i = 0; i < directories.Count; i++)
            {
                Console.WriteLine(i + " - " + directories[i].path);
            }

            do
            {
                Console.Write("Diretoria a verificar: ");
                index = int.Parse(Console.ReadLine());

                if (index > directories.Count - 1 || index < 0)
                {
                    Console.WriteLine("Erro! Escolha uma opcao valida.");
                }
            } while (index > directories.Count - 1 || index < 0);

            Console.WriteLine(string.Empty);
            Console.WriteLine("Diretoria escolhida: " + directories[index].path.ToString());

            Console.WriteLine("Introduza a sua palavra pass com que gerou os HMAC");
            string pass = Console.ReadLine();

            DataBaseFunctions.VerificarIntegridadeHMAC(directories[index], pass);
        }
        protected override void OnStart(string[] args)
        {
            mode = string.Empty;
            key  = string.Empty;
            string directory = string.Empty;

            username         = string.Empty;
            password         = string.Empty;
            dataBasePassword = string.Empty;

            if (args.Length != 5 && args.Length != 6)
            {
                OnStop();
                return;
            }

            mode = args[0].ToLower();

            if (mode.Equals("sha256"))
            {
                username         = args[1];
                password         = args[2];
                directory        = args[3];
                dataBasePassword = args[4];
            }
            else if (mode.Equals("hmac"))
            {
                key              = args[1];
                username         = args[2];
                password         = args[3];
                directory        = args[4];
                dataBasePassword = args[5];
            }
            else
            {
                OnStop();
                return;
            }

            if (!File.Exists(Directories.databaseAES))
            {
                OnStop();
                return;
            }

            DecryptFileBD();

            if (!Login(username, password))
            {
                OnStop();
                return;
            }

            var dirs = AjudanteParaBD.SelectDirsWithUsername(username);

            foreach (Dir d in dirs)
            {
                if (d.path.Equals(directory))
                {
                    dir = d;
                }
            }

            if (dir == null)
            {
                OnStop();
                return;
            }

            timer.Start();
        }