Ejemplo 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));
            }
        }
Ejemplo n.º 2
0
        public static void VerificarIntegridadeHMAC(Dir dir, string key)
        {
            var currentfiles  = HMac.hmac(dir.path, key);
            var databaseFiles = AjudanteParaBD.SelectFileHMACWithDir(dir.path);


            foreach (var f in databaseFiles)
            {
                //Se foi eliminado
                if (!currentfiles.Keys.Contains(f.path))
                {
                    Console.WriteLine("Removido o ficheiro \'" + f.path + "\' da base de dados.");
                    AjudanteParaBD.DeleteFileHMAC(f);

                    continue;
                }

                // Se existir vamos ver se foi alterado
                if (!currentfiles[f.path].Equals(f.hmac))
                {
                    Console.WriteLine("O ficheiro \'" + f.path + "\'  sofreu alteracoes.");
                    AjudanteParaBD.UpdateFileHMAC(new FileHmac(f.path, currentfiles[f.path], dir.path));
                }
                else
                {
                    Console.WriteLine("O ficheiro \'" + f.path + "\' não sofreu alteracoes.");
                }

                currentfiles.Remove(f.path);
            }

            // Se ainda houver ficheiros, são os que foram adicionados
            foreach (string file in currentfiles.Keys)
            {
                Console.WriteLine("Adicionado o ficheiro \'" + file + "\' a base de dados.");
                AjudanteParaBD.InsertFileHMAC(new FileHmac(file, currentfiles[file], dir.path));
            }
        }
Ejemplo n.º 3
0
        public string[] VerificarIntegridadeHMAC()
        {
            var currentfiles  = HMac.hmac(dir.path, key);
            var databaseFiles = AjudanteParaBD.SelectFileHMACWithDir(dir.path);

            var lines = new List <string>();

            foreach (var f in databaseFiles)
            {
                //Se foi eliminado
                if (!currentfiles.Keys.Contains(f.path))
                {
                    lines.Add(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " - Removido o ficheiro \'" + f.path + "\' da base de dados.");
                    AjudanteParaBD.DeleteFileHMAC(f);

                    continue;
                }

                // Se existir vamos ver se foi alterado
                if (!currentfiles[f.path].Equals(f.hmac))
                {
                    lines.Add(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " - O ficheiro \'" + f.path + "\' sofreu alteracoes.");
                    AjudanteParaBD.UpdateFileHMAC(new FileHmac(f.path, currentfiles[f.path], dir.path));
                }

                currentfiles.Remove(f.path);
            }

            // Se ainda houver ficheiros, são os que foram adicionados
            foreach (string file in currentfiles.Keys)
            {
                lines.Add(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + " - Adicionado o ficheiro \'" + file + "\' a base de dados.");
                AjudanteParaBD.InsertFileHMAC(new FileHmac(file, currentfiles[file], dir.path));
            }

            return(lines.ToArray());
        }