/// <summary> /// Encriptação automática do relatório (sem a necessidade de informar a chave pública). /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_encriptar_relatorio_Click(object sender, EventArgs e) { RSA_Processo decriptacao_titulo = new RSA_Processo(); RSA_Processo decriptacao_data = new RSA_Processo(); RSA_Processo decriptacao_descricao = new RSA_Processo(); titulo.Text = decriptacao_titulo.Encriptacao(titulo.Text, false, (int)Chaves_Padronizadas.PUBLICA, (int)Chaves_Padronizadas.MISTA); data.Text = decriptacao_data.Encriptacao(data.Text, false, (int)Chaves_Padronizadas.PUBLICA, (int)Chaves_Padronizadas.MISTA); relatorio_descricao.Text = decriptacao_descricao.Encriptacao(relatorio_descricao.Text, false, (int)Chaves_Padronizadas.PUBLICA, (int)Chaves_Padronizadas.MISTA); flowLayoutPanel1.AutoScroll = true; }
/// <summary> /// Descriptação do relatório. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_descriptar_relatorio_Click(object sender, EventArgs e) { // Chave-privada não informada. if (chave_privada_relatorio.Text.Equals("")) { var retornos = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 12, 1); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); if (cumi.Check_Status() == true) { try { cumi.Pensar_Fala(2, 12); } catch { cumi.Pensar_Fala(2, 16); var retornos1 = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 16, 3); MessageBox.Show(retornos1.Item1, retornos1.Item2, MessageBoxButtons.OK, MessageBoxIcon.Error); } } } // Chave-privada informada. else { try { RSA_Processo criptacao_titulo = new RSA_Processo(); RSA_Processo criptacao_data = new RSA_Processo(); RSA_Processo criptacao_descricao = new RSA_Processo(); titulo.Text = criptacao_titulo.Decriptacao(titulo.Text, false, Convert.ToInt32(chave_privada_relatorio.Text), (int)Chaves_Padronizadas.MISTA); data.Text = criptacao_data.Decriptacao(data.Text, false, Convert.ToInt32(chave_privada_relatorio.Text), (int)Chaves_Padronizadas.MISTA); relatorio_descricao.Text = criptacao_descricao.Decriptacao(relatorio_descricao.Text, false, Convert.ToInt32(chave_privada_relatorio.Text), (int)Chaves_Padronizadas.MISTA); } catch { relatorio_descricao.Text = "X??????X"; //exemplo disso ocorrer: quando um caractere-letra é passado como chave. } finally { flowLayoutPanel1.AutoScroll = false; } } chave_privada_relatorio.Text = ""; }
/// <summary> /// Encriptação da mensagem. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_encriptar_Click(object sender, EventArgs e) { // Caso algum input não tenha sido informado if ((chave_publica.Text.Equals("")) || (chave_mista.Text.Equals("")) || (msg_descriptada_en.Text.Equals(""))) { // Caso a mensagem, a chave-mista e a pública não sejam informadas if ((chave_publica.Text.Equals("")) && (chave_mista.Text.Equals("")) && (msg_descriptada_en.Text.Equals(""))) { var retornos = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 3, 1); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); if (cumi.Check_Status() == true) { try { cumi.Pensar_Fala(2, 3); } catch { cumi.Pensar_Fala(2, 16); var retornos1 = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 16, 3); MessageBox.Show(retornos1.Item1, retornos1.Item2, MessageBoxButtons.OK, MessageBoxIcon.Error); } } } // Caso uma delas não tenha sido informada else if ((chave_publica.Text.Equals("")) ^ (chave_mista.Text.Equals("")) ^ (msg_descriptada_en.Text.Equals(""))) { /* Chave-Pública */ if (chave_publica.Text.Equals("")) { var retornos = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 11, 1); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); try { cumi.Pensar_Fala(2, 11); } catch { cumi.Pensar_Fala(2, 16); var retornos1 = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 16, 3); MessageBox.Show(retornos1.Item1, retornos1.Item2, MessageBoxButtons.OK, MessageBoxIcon.Error); } } /* Chave-Mista */ else if (chave_mista.Text.Equals("")) { var retornos = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 10, 1); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); if (cumi.Check_Status() == true) { try { cumi.Pensar_Fala(2, 10); } catch { cumi.Pensar_Fala(2, 16); var retornos1 = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 16, 3); MessageBox.Show(retornos1.Item1, retornos1.Item2, MessageBoxButtons.OK, MessageBoxIcon.Error); } } } /* Mensagem Decriptada */ else { var retornos = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 17, 1); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); if (cumi.Check_Status() == true) { try { cumi.Pensar_Fala(2, 17); } catch { cumi.Pensar_Fala(2, 16); var retornos1 = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 16, 3); MessageBox.Show(retornos1.Item1, retornos1.Item2, MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } // Caso duas não tenham sido informadas else { /* Chave-Mista e Pública */ if (chave_mista.Text.Equals("") && chave_publica.Text.Equals("")) { var retornos = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 8, 1); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); if (cumi.Check_Status() == true) { try { cumi.Pensar_Fala(2, 8); } catch { cumi.Pensar_Fala(2, 16); var retornos1 = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 16, 3); MessageBox.Show(retornos1.Item1, retornos1.Item2, MessageBoxButtons.OK, MessageBoxIcon.Error); } } } /* Chave-Mista e Mensagm Decriptada */ else if (chave_mista.Text.Equals("") && msg_descriptada_en.Text.Equals("")) { var retornos = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 5, 1); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); if (cumi.Check_Status() == true) { try { cumi.Pensar_Fala(2, 5); } catch { cumi.Pensar_Fala(2, 16); var retornos1 = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 16, 3); MessageBox.Show(retornos1.Item1, retornos1.Item2, MessageBoxButtons.OK, MessageBoxIcon.Error); } } } /* Chave-Pública e Mensagem Decriptada */ else if (chave_publica.Text.Equals("") && msg_descriptada_en.Text.Equals("")) { var retornos = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 6, 1); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); if (cumi.Check_Status() == true) { try { cumi.Pensar_Fala(2, 6); } catch { cumi.Pensar_Fala(2, 16); var retornos1 = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 16, 3); MessageBox.Show(retornos1.Item1, retornos1.Item2, MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } } // Caso ambas sejam informadas, finalmente a encriptação ocorre. else { // Se a encriptação ocorrer normalmente, a mensagem encriptada é exibida. try { RSA_Processo criptacao_msg_decriptada = new RSA_Processo(); msg_encriptada_en.Text = criptacao_msg_decriptada.Encriptacao(msg_descriptada_en.Text, false, Convert.ToInt32(chave_publica.Text), Convert.ToInt32(chave_mista.Text)); } catch { msg_encriptada_en.Text = "X??????X"; // um exemplo disso aqui ocorrer é quando o usuário passa um caractere-letra como chave. } } }
/// <summary> /// Descriptação da mensagem. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_descriptar_Click(object sender, EventArgs e) { // Caso algum input não tenha sido informado if ((chave_privada.Text.Equals("")) || (chave_mista.Text.Equals("")) || (msg_encriptada_de.Text.Equals(""))) { // Caso a mensagem, a chave-mista e a privada não tenham sido informadas if ((chave_privada.Text.Equals("")) && (chave_mista.Text.Equals("")) && (msg_encriptada_de.Text.Equals(""))) { var retornos = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 4, 1); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); if (cumi.Check_Status() == true) { try { cumi.Pensar_Fala(2, 4); } catch { cumi.Pensar_Fala(2, 16); var retornos1 = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 16, 3); MessageBox.Show(retornos1.Item1, retornos1.Item2, MessageBoxButtons.OK, MessageBoxIcon.Error); } } } // Caso uma das três não tenha sido informada else if ((chave_privada.Text.Equals("")) ^ (chave_mista.Text.Equals("")) ^ (msg_encriptada_de.Text.Equals(""))) { /* Chave-Privada */ if (chave_privada.Text.Equals("")) { var retornos = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 12, 1); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); if (cumi.Check_Status() == true) { try { cumi.Pensar_Fala(2, 12); } catch { cumi.Pensar_Fala(2, 16); var retornos1 = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 16, 3); MessageBox.Show(retornos1.Item1, retornos1.Item2, MessageBoxButtons.OK, MessageBoxIcon.Error); } } } /* Chave-Mista */ else if (chave_mista.Text.Equals("")) { var retornos = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 10, 1); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); if (cumi.Check_Status() == true) { try { cumi.Pensar_Fala(2, 10); } catch { cumi.Pensar_Fala(2, 16); var retornos1 = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 16, 3); MessageBox.Show(retornos1.Item1, retornos1.Item2, MessageBoxButtons.OK, MessageBoxIcon.Error); } } } /* Mensagem Encriptada */ else { var retornos = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 17, 1); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); if (cumi.Check_Status() == true) { try { cumi.Pensar_Fala(2, 17); } catch { cumi.Pensar_Fala(2, 16); var retornos1 = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 16, 3); MessageBox.Show(retornos1.Item1, retornos1.Item2, MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } // Caso duas delas não tenham sido informadas else { /* Chave-Mista e Privada */ if (chave_mista.Text.Equals("") && chave_privada.Text.Equals("")) { var retornos = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 9, 1); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); if (cumi.Check_Status() == true) { try { cumi.Pensar_Fala(2, 9); } catch { cumi.Pensar_Fala(2, 16); var retornos1 = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 16, 3); MessageBox.Show(retornos1.Item1, retornos1.Item2, MessageBoxButtons.OK, MessageBoxIcon.Error); } } } /* Chave-Mista e Mensagem Encriptada */ else if (chave_mista.Text.Equals("") && msg_encriptada_de.Text.Equals("")) { var retornos = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 5, 1); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); if (cumi.Check_Status() == true) { try { cumi.Pensar_Fala(2, 5); } catch { cumi.Pensar_Fala(2, 16); var retornos1 = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 16, 3); MessageBox.Show(retornos1.Item1, retornos1.Item2, MessageBoxButtons.OK, MessageBoxIcon.Error); } } } /* Chave-Privada e Mensagem Encriptada */ else if (chave_privada.Text.Equals("") && msg_encriptada_de.Text.Equals("")) { var retornos = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 7, 1); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); if (cumi.Check_Status() == true) { try { cumi.Pensar_Fala(2, 7); } catch { cumi.Pensar_Fala(2, 16); var retornos1 = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 16, 3); MessageBox.Show(retornos1.Item1, retornos1.Item2, MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } } // Caso ambas sejam informadas, ocorre a descriptação. else { // Tentativa de decriptação try { int Chave_Privada = 0; RSA_Processo criptacao_msg_encriptada = new RSA_Processo(); // Tentativa de atribuição de valor na variávbel "Chave_Privada" // Dois possíveis erros são: // 1 → Nenhum primo informado nas textbox's correspondentes; // 2 → Dado impossível de ser convertido para Int32 nas textbox's correspondentes. try { Chave_Privada = (check_valor_negativo.Checked) ? criptacao_msg_encriptada.Chave_Privada_Negativa(Convert.ToInt32(primo1.Text), Convert.ToInt32(primo2.Text), Convert.ToInt32(chave_privada.Text)) : Convert.ToInt32(chave_privada.Text); } catch { if (primo1.Text.Equals("") || primo2.Text.Equals("")) { var retornos1 = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 20, 0); MessageBox.Show(retornos1.Item1, retornos1.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } else { var retornos2 = msg.Retorno_Erro_Processo(cumi.Check_Idioma_Internacional(), 21, 5); MessageBox.Show(retornos2.Item1, retornos2.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } } msg_descriptada_de.Text = criptacao_msg_encriptada.Decriptacao(msg_encriptada_de.Text, false, Chave_Privada, Convert.ToInt32(chave_mista.Text)); } catch { msg_descriptada_de.Text = "X??????X"; // exemplo disso ocorrer: um caractere-letra passado como chave. } } }
/* * PARA MAIOR SEGURANÇA, A VERIFICAÇÃO DE LOGIN E SENHA CORRETOS É REALIZADA COM AMBOS ENCRIPTADOS * PORTANTO, PARA SABER QUAL O LOGIN E SENHA REAIS, VERIFIQUE A PASTA "ARQUIVOS txt" */ /// <summary> /// Verifico se o login e a senha foram preenchidos corretamente. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Entrar_btn_Click_1(object sender, EventArgs e) { // Caso algum campo esteja vazio, uma message box é exibida if (Login_txt.Text.Equals("") || Senha_txt.Text.Equals("") || Cumi_status.Text.Equals("")) { // Se ambos estiverem vazios if (Login_txt.Text.Equals("") && Senha_txt.Text.Equals("") && Cumi_status.Text.Equals("")) { var retornos = msg.Retorno_Erro_Login(0, 0); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } // Se nem todos estiverem vazios else if (Login_txt.Text.Equals("") || Senha_txt.Text.Equals("") || Cumi_status.Text.Equals("")) { var retornos = msg.Retorno_Erro_Login(1, 0); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } } // Caso o login e a senha não sejam nulos else { // Variáveis locais string login = Login_txt.Text; string senha = Senha_txt.Text; string login_encriptado; string senha_encriptada; string status; // Instanciação da classe XOR RSA_Processo criptacao_login = new RSA_Processo(); RSA_Processo criptacao_senha = new RSA_Processo(); // Encriptação da senha e do login login_encriptado = criptacao_login.Encriptacao(Login_txt.Text, false, (int)Chaves_Padronizadas.PUBLICA, (int)Chaves_Padronizadas.MISTA); senha_encriptada = criptacao_senha.Encriptacao(Senha_txt.Text, false, (int)Chaves_Padronizadas.PUBLICA, (int)Chaves_Padronizadas.MISTA); status = Cumi_status.Text; // Check se o login e a senha estão corretos // Se login ou senha não estiverem corretos, uma MessageBox é exibida if (!(login_encriptado.Equals(Informacoes_Confidenciais.login)) || !(senha_encriptada.Equals(Informacoes_Confidenciais.senha)) || !(status.Equals("ON - EN") || status.Equals("ON - PT") || status.Equals("OFF - EN") || status.Equals("OFF - PT"))) { // Caso o login estiver inválido if (!(login_encriptado.Equals(Informacoes_Confidenciais.login))) { var retornos = msg.Retorno_Erro_Login(2, 0); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); Login_txt.Text = ""; Senha_txt.Text = ""; Cumi_status.Text = ""; } // Caso o login estiver correto, mas a senha, incorreta else if (!(senha_encriptada.Equals(Informacoes_Confidenciais.senha))) { var retornos = msg.Retorno_Erro_Login(3, 0); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); Senha_txt.Text = ""; } // Caso o login e a senha estiverem corretos, mas o status da Cumi não else if (!(status.Equals("ON - EN") || status.Equals("ON - PT") || status.Equals("OFF - EN") || status.Equals("OFF - PT"))) { var retornos = msg.Retorno_Erro_Login(4, 0); MessageBox.Show(retornos.Item1, retornos.Item2, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); Cumi_status.Text = ""; } } // Se o login e a senha estiverem corretos, a tela inicial é carregada if ((login_encriptado.Equals(Informacoes_Confidenciais.login)) && (senha_encriptada.Equals(Informacoes_Confidenciais.senha)) && (status.Equals("ON - EN") || status.Equals("ON - PT") || status.Equals("OFF - EN") || status.Equals("OFF - PT"))) { Login_txt.Text = ""; Senha_txt.Text = ""; this.Hide(); // Processamento de instanciação da janela de carregamento bool status_cumi, idioma_internacional, cumi_som; // Envio de CUMI desativada if (status.Equals("OFF - EN") || status.Equals("OFF - PT")) { status_cumi = false; cumi_som = true; // Desativação em Inglês if (status.Equals("OFF - EN")) { idioma_internacional = true; } // Desativação em Português else { idioma_internacional = false; } } // Envio de CUMI ativada else { status_cumi = true; cumi_som = true; // Ativação em Inglês if (status.Equals("ON - EN")) { idioma_internacional = true; } // Ativação em Português else { idioma_internacional = false; } } // Instanciação da CUMI e da tela de carregamento CUMI cumi = new CUMI(status_cumi, idioma_internacional, cumi_som); Carregando carregar = new Carregando(cumi.Check_Status(), cumi.Check_Idioma_Internacional(), cumi.Check_Som()); if (cumi.Check_Status() == true) { try { cumi.Pensar_Fala(0, 0); } catch { string alerta = ""; cumi.Pensar_Fala(2, 16); if (cumi.Check_Idioma_Internacional() == true) { alerta = "A serious error was found. Please, Notice the programmer."; } else { alerta = "Um erro grave foi encontrado. Por favor, avise ao programador."; } MessageBox.Show(alerta); } } carregar.Show(); } } }