Exemple #1
0
        /// <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;
        }
Exemple #2
0
        /// <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 = "";
        }
Exemple #3
0
        /// <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.
                }
            }
        }
Exemple #4
0
        /// <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();
                }
            }
        }