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)); } }
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()); }