public static bool Login(string username, string password) { string op = string.Empty; User user = AjudanteParaBD.SelectUserWithUsername(username); Console.Clear(); if (user == null) { Console.WriteLine("\nErro! O utilizador inserido nao existe."); return(false); } //calcula o rep da palavra passe introduzida string insertedRep = SHA256Code.GenerateFromText(SHA256Code.GenerateFromText(password) + user.salt); if (user.rep.Equals(insertedRep)) { Console.WriteLine("\nLogin efetuado com sucesso!\n"); userLog = username; return(true); } else { Console.WriteLine("\nDados invalidos! Tente novamente.\n"); return(false); } }
private bool Login(string username, string password) { User user = AjudanteParaBD.SelectUserWithUsername(username); string insertedRep = SHA256Code.GenerateFromText(SHA256Code.GenerateFromText(password) + user.salt); return(user.rep.Equals(insertedRep)); }
private static bool CreateDataBase() { if (!File.Exists(Directories.database)) { AjudanteParaBD.OnCreate(); return(true); } else { return(false); } }
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)); } }
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); }
public static bool Register(User user) { if (AjudanteParaBD.SelectUserWithUsername(user.username) != null) { Console.WriteLine("\nErro! O username \"" + user.username + "\" não está disponivel!"); Console.WriteLine("Por-favor introduza outro username!"); return(false); } if (AjudanteParaBD.InsertUser(user) != -1) { Console.WriteLine("Registo efetuado com sucesso!"); return(true); } Console.WriteLine("Registo efetuado sem sucesso!"); return(false); }
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()); }
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(); }
private static string ReceberDiretoria() { Console.WriteLine("+----------------------------------------------------------+"); Console.WriteLine("| Ler Directoria |"); Console.WriteLine("+----------------------------------------------------------+"); string mainPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); string sql = string.Empty; string option = string.Empty; string relativePath = string.Empty; do { Console.WriteLine("Deseja criar uma pasta na raiz do programa sim(S) não(N)"); option = Console.ReadLine().ToLower(); if (option.Equals("s")) { Console.WriteLine("Qual será o nome da pasta que ira conter os ficheiros a verificar?"); relativePath = Console.ReadLine(); while (Directory.Exists(relativePath)) { Console.WriteLine("Já existe uma pasta com esse nome, por favor dê outro nome!"); relativePath = Console.ReadLine(); } Console.WriteLine("A sua pasta foi criada em: "); Console.WriteLine(mainPath + "\\" + relativePath); // Adicionar esta directoria à base de dados Dir dir = new Dir(mainPath + "\\" + relativePath, DataBaseFunctions.userLog); if (AjudanteParaBD.InsertDirectory(dir) == -1) { Console.WriteLine("Erro ao criar a diretoria"); return(string.Empty); } Directory.CreateDirectory(relativePath); return(mainPath + "\\" + relativePath); } else if (option.Equals("n")) { Console.WriteLine("Introduza o caminho absoluto da diretoria que pretende verificar."); Console.WriteLine("Ex.: C:/Caminho/Completo/Ate/A/Diretoria"); Console.Write("Introduzido:"); mainPath = Console.ReadLine(); while (!Directory.Exists(mainPath)) { Console.WriteLine("O caminho introduzido não existe na sua maquina"); Console.WriteLine("Introduza o caminho absoluto da pasta que você deseja verificar"); Console.Write("Introduzido:"); mainPath = Console.ReadLine(); } // Adicionar esta directoria à base de dados Dir dir = new Dir(mainPath, DataBaseFunctions.userLog); if (AjudanteParaBD.InsertDirectory(dir) == -1) { Console.WriteLine("Erro ao adicionar a diretoria na base de dados."); return(string.Empty); } return(mainPath); } } while (true); }