private void btEnviaEmail_Click(object sender, EventArgs e) { string conteudo = richTexto2.Text; if (conteudo.Length > 0) { ArrayList trash = new ArrayList(); //nao é usada, criada somente para passagem de argumento obrigatoria SMTPEnvioTexto obj = new SMTPEnvioTexto(conteudo, trash, usuario, DarkTheme); obj.ShowDialog(); } else { MessageBox.ShowMessageBoxOK("error", "Cifre algo primeiro ...", "Erro", DarkTheme); return; } }
private void btDescripta_Click(object sender, EventArgs e) { try { if (File.Exists(@"C:\iCrypto\" + "ZipadoAES.rar")) { File.Delete(@"C:\iCrypto\" + "ZipadoAES.rar"); } int nlinhas = dgvAESFiles.Rows.Count; ArrayList apagar_linha = new ArrayList(); ArrayList arquivos_email = new ArrayList(); for (int i = 0; i < nlinhas; i++) { lblStatus.Text = ""; // Encripta o arquivo com nomearquivo.extensao.aes string fileName = dgvAESFiles.Rows[i].Cells[0].Value.ToString(); if (!fileName.Contains(".aes")) { MessageBox.ShowMessageBoxOK("error", "Arquivo " + fileName + " sem extensão .aes. Impossível de descriptografar.", "Erro", DarkTheme); DataGridViewRow obj = dgvAESFiles.Rows[i]; dgvAESFiles.Rows.Remove(obj); dgvAESFiles.Refresh(); nlinhas -= 1; i -= 1; lblStatus.Text = "Sem .aes"; lblStatus.ForeColor = Color.Red; continue; } if (!File.Exists(dgvAESFiles.Rows[i].Cells[3].Value.ToString() + @"\" + fileName)) { apagar_linha.Add(fileName); continue; } arquivo_original = fileName; //DECRIPTA O ARQUIVO string caminho_inteiro = dgvAESFiles.Rows[i].Cells[3].Value.ToString() + @"\" + arquivo_original; // VOLTAR ARQUI DEPOIS... PRECISO FAZER COM QUE NAO SEJA OBRIGATORIAMENTE JogaemBancoArquivo("Descriptografar", fileName, fileName.Replace(".aes", "")); banco.Close(); // verifica se a checkbox está ativa, se estiver, add na arraylist para enviar o email posteriormente if (chkEnviaArquivo.Checked) { arquivos_email.Add(caminho_inteiro.Replace(".aes", "")); } // VAI RODAR O DATAGRID INTEIRO, VERIFICANDO CADA ARQUIVO DO ARRAYLIST A SER APAGADO, E APAGA. for (int y = 0; y < dgvAESFiles.Rows.Count; y++) { if (dgvAESFiles["colunaArquivo", y].Value == arquivo_original) { apagar_linha.Add(arquivo_original); //linha x coluna 1 } } try { byte[] memoryReturn = DescriptaArquivo(caminho_inteiro); File.WriteAllBytes(caminho_inteiro.Replace(".aes", ""), memoryReturn.ToArray()); // joga o conteudo descriptografado no arquivo original } catch (UnauthorizedAccessException) { MessageBox.ShowMessageBoxOK("error", "Erro. Verifique se o arquivo " + caminho_inteiro + " está funcional.", "Erro", DarkTheme); DataGridViewRow linha = dgvAESFiles.Rows[i]; dgvAESFiles.Rows.Remove(linha); return; } FileInfo infos = new FileInfo(caminho_inteiro); dgvAESFiles.Rows.Add(infos.Name.Replace(".aes", ""), infos.Length.ToString(), infos.Extension, infos.DirectoryName); dgvAESFiles.Refresh(); IncrementaProgressBar(); progressBarFile.Value = 0; lblStatus.Text = "Descriptografado"; lblStatus.ForeColor = Color.Green; } tbArquivo.Clear(); // DELEÇÃO foreach (string arquivos in apagar_linha) { // busca pela linha for (int i = 0; i < dgvAESFiles.Rows.Count; i++) { if (dgvAESFiles["colunaArquivo", i].Value.ToString().Equals(arquivos)) { DataGridViewRow obj = dgvAESFiles.Rows[i]; dgvAESFiles.Rows.Remove(obj); } } } // 26214400bytes = 25MB (MAXIMO) if (chkEnviaArquivo.Checked) { // necessário calcular o espaço de todos arquivos no array, para ver se // passa de 25MB if (VerificaMBArquivos(arquivos_email) && error == 0) { SMTPEnvioTexto envioEmail = new SMTPEnvioTexto("", arquivos_email, usuario, DarkTheme); envioEmail.ShowDialog(); } else { if (error == 1) { return; } // comprime o arquivo /* * DialogResult retorno = System.Windows.Forms.MessageBox.Show("Arquivos resultam em um espaço maior que 25MB.. Deseja " + * "comprimir esses arquivos ? ", "Aviso", MessageBoxButtons.YesNo, * MessageBoxIcon.Question); */ string defaultDirectory = @"C:\iCrypto\AESFile\"; if (MessageBox.ShowMessageBoxYesNo("question", "Arquivos resultam em um espaço maior que 25MB.. Deseja " + "comprimir esses arquivos ? ", "Aviso", DarkTheme).Equals("sim")) { if (File.Exists(defaultDirectory + "ZipadoAES.rar")) { File.Delete(defaultDirectory + "ZipadoAES.rar"); } if (!Directory.Exists(defaultDirectory)) { Directory.CreateDirectory(defaultDirectory); } else { Directory.Delete(defaultDirectory, true); Directory.CreateDirectory(defaultDirectory); } foreach (string complete_file in arquivos_email) { string only_Name = complete_file.Split('\\')[complete_file.Split('\\').Length - 1];//Somente o nome do arquivo File.Copy(complete_file, defaultDirectory + only_Name, true); } File.Delete(defaultDirectory + "ZipadoAES.rar"); ZipFile.CreateFromDirectory(defaultDirectory, @"C:\iCrypto\" + "ZipadoAES.rar"); ArrayList tmp = new ArrayList() { @"C:\iCrypto\ZipadoAES.rar" }; if (!VerificaMBArquivos(tmp)) { MessageBox.ShowMessageBoxOK("error", "Arquivo comprimido maior que 25MB, impossível ser enviado.", "Erro", DarkTheme); return; } else { SMTPEnvioTexto envioEmail = new SMTPEnvioTexto("", tmp, usuario, DarkTheme); envioEmail.ShowDialog(); } // APAGA O ZIPADO (QUE É UM ARQUIVO TEMPORARIO) File.Delete(@"C:\iCrypto\ZipadoAES.rar"); } else { return; } } } } catch (System.Security.SecurityException) { lblStatus.Text = "Erro em descriptografar"; lblStatus.ForeColor = Color.Red; return; } catch (CryptographicException) { MessageBox.ShowMessageBoxOK("error", "Erro ao descriptografar. Chave pode estar errada.", "Erro", DarkTheme); } }
private void btEncripta_Click(object sender, EventArgs e) { if (File.Exists(@"C:\iCrypto\" + "ZipadoAES.rar")) { File.Delete(@"C:\iCrypto\" + "ZipadoAES.rar"); } ArrayList apagar_linha = new ArrayList(); ArrayList arquivos_email = new ArrayList(); int nlinhas = dgvAESFiles.Rows.Count; for (int i = 0; i < nlinhas; i++) { // Encripta o arquivo com nomearquivo.extensao.aes string fileName = dgvAESFiles.Rows[i].Cells[0].Value.ToString(); // VERIFICA SE O ARQUIVO EXISTE, SE NÃO EXISTIR, TIRE DA LISTA // Por que? R: O usuario pode ter excluido o arquivo. if (!File.Exists(dgvAESFiles.Rows[i].Cells[3].Value.ToString() + @"\" + fileName)) { apagar_linha.Add(fileName); continue; } // PROCESSO DE ENCRIPTAR O ARQUIVO if (fileName.Contains(".aes")) { lblStatus.Text = "Ambíguo"; DataGridViewRow linha = dgvAESFiles.Rows[i]; dgvAESFiles.Rows.Remove(linha); lblStatus.ForeColor = System.Drawing.Color.Red; nlinhas -= 1; i -= 1; continue; } string arquivo_en = EncriptaArquivo(fileName, dgvAESFiles.Rows[i].Cells[3].Value.ToString()); // JOGA O NOME DO ARQUIVO NO BANCO JogaemBancoArquivo("Criptografar", fileName, arquivo_en.Split('\\')[arquivo_en.Split('\\').Length - 1]); banco.Close(); // verifica se a checkbox está ativa, se estiver, add na arraylist para enviar o email posteriormente if (chkEnviaArquivo.Checked) { arquivos_email.Add(arquivo_en); } // Apagar arquivos do datagrid arquivo_original = fileName; for (int y = 0; y < dgvAESFiles.Rows.Count; y++) { if (dgvAESFiles["colunaArquivo", y].Value == arquivo_original) { apagar_linha.Add(arquivo_original); //linha x coluna 1 } } FileInfo infos = new FileInfo(arquivo_en); dgvAESFiles.Rows.Add(infos.Name, infos.Length.ToString(), infos.Extension, infos.DirectoryName); dgvAESFiles.Refresh(); IncrementaProgressBar(); // Reseta Progressbar e mostra o "LOG" progressBarFile.Value = 0; lblStatus.Text = "Encriptado"; lblStatus.ForeColor = Color.Green; } // apagar todos encriptados (do arraylist que deve ser apagado) foreach (string arquivos in apagar_linha) { // busca pela linha for (int i = 0; i < dgvAESFiles.Rows.Count; i++) { if (dgvAESFiles["colunaArquivo", i].Value.ToString().Equals(arquivos)) { DataGridViewRow obj = dgvAESFiles.Rows[i]; dgvAESFiles.Rows.Remove(obj); } } } tbArquivo.Clear(); // 26214400bytes = 25MB (MAXIMO) if (chkEnviaArquivo.Checked) { // necessário calcular o espaço de todos arquivos no array, para ver se // passa de 25MB if (VerificaMBArquivos(arquivos_email)) { SMTPEnvioTexto envioEmail = new SMTPEnvioTexto("", arquivos_email, usuario, DarkTheme); envioEmail.ShowDialog(); } else { if (error == 1) { return; } // comprime o arquivo /* * DialogResult retorno = System.Windows.Forms.MessageBox.Show("Arquivos resultam em um espaço maior que 25MB.. Deseja " + * "comprimir esses arquivos ? ", "Aviso", MessageBoxButtons.YesNo, * MessageBoxIcon.Question); */ string defaultDirectory = @"C:\iCrypto\AESFile\"; if (MessageBox.ShowMessageBoxYesNo("question", "Arquivos resultam em um espaço maior que 25MB.. Deseja " + "comprimir esses arquivos ? ", "Aviso", DarkTheme).Equals("sim")) { if (File.Exists(@"C:\iCrypto\" + "ZipadoAES.rar")) { File.Delete(@"C:\iCrypto\" + "ZipadoAES.rar"); } if (!Directory.Exists(defaultDirectory)) { Directory.CreateDirectory(defaultDirectory); } else { Directory.Delete(defaultDirectory, true); Directory.CreateDirectory(defaultDirectory); } System.Threading.Thread.Sleep(900); foreach (string complete_file in arquivos_email) { string only_Name = complete_file.Split('\\')[complete_file.Split('\\').Length - 1];//Somente o nome do arquivo File.Copy(complete_file, defaultDirectory + only_Name, true); } System.Threading.Thread.Sleep(900); ZipFile.CreateFromDirectory(defaultDirectory, @"C:\iCrypto\" + "ZipadoAES.rar"); ArrayList tmp = new ArrayList() { @"C:\iCrypto\ZipadoAES.rar" }; if (!VerificaMBArquivos(tmp)) { MessageBox.ShowMessageBoxOK("error", "Arquivo comprimido maior que 25MB, impossível ser enviado.", "Erro", DarkTheme); return; } else { SMTPEnvioTexto envioEmail = new SMTPEnvioTexto("", tmp, usuario, DarkTheme); envioEmail.ShowDialog(); } // APAGA O ZIPADO (QUE É UM ARQUIVO TEMPORARIO) File.Delete(@"C:\iCrypto\ZipadoAES.rar"); } else { MessageBox.ShowMessageBoxOK("error", "Impossível de ser anexado.", "Erro", DarkTheme); return; } } } }