예제 #1
0
        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;
            }
        }
예제 #2
0
        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);
                        }
                    }
                }


                // ‭26214400‬bytes = 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);
            }
        }
예제 #3
0
        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();
            // ‭26214400‬bytes = 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;
                    }
                }
            }
        }