예제 #1
0
        private async Task CifrarArchivos(byte[] keyMaterial, bool eliminarArchivos)
        {
            Procesando barraProgreso = new Procesando(listaArchivos.Length);

            barraProgreso.Show();
            foreach (var archivo in listaArchivos)
            {
                try
                {
                    string rutaDestino = Path.Combine(Path.GetDirectoryName(archivo), Path.GetFileName(archivo)) + ".crypt";

                    await ProyectoCifrado3.Crypto.CifradoDescifradoAsincrono(keyMaterial, archivo, rutaDestino, true);

                    if (eliminarArchivos)
                    {
                        Archivos.EliminarArchivo(archivo.ToString());
                    }
                }
                catch (System.Security.Cryptography.CryptographicException)
                {
                    MessageBox.Show("El archivo " + Path.GetFileName(archivo) + " no pudo ser cifrado");
                }
                catch (FileNotFoundException)
                {
                    MessageBox.Show("El archivo '" + Path.GetFileName(archivo) + "' no pudo ser cifrado\n" +
                                    "El archivo especificado no existe");
                }
                barraProgreso.Avanzar();
            }
            barraProgreso.Hide();
            MessageBox.Show("La tarea ha finalizado");
        }
예제 #2
0
        private async Task DescifrarArchivos(byte[] keyMaterial, bool eliminarArchivos)
        {
            Procesando barraProgreso = new Procesando(listaArchivos.Length);

            barraProgreso.Show();
            foreach (var archivo in listaArchivos)
            {
                try
                {
                    string rutaDestino = Path.Combine(Path.GetDirectoryName(archivo), Path.GetFileNameWithoutExtension(archivo));

                    await ProyectoCifrado3.Crypto.CifradoDescifradoAsincrono(keyMaterial, archivo, rutaDestino, false);

                    if (eliminarArchivos)
                    {
                        Archivos.EliminarArchivo(archivo.ToString());
                    }
                }
                catch (System.Security.Cryptography.CryptographicException)
                {
                    Archivos.EliminarArchivo(Path.Combine(Path.GetDirectoryName(archivo), Path.GetFileNameWithoutExtension(archivo)));
                    MessageBox.Show("El archivo '" + Path.GetFileName(archivo) + "' no pudo ser descifrado\n" +
                                    "Esto puede deberse a una de las siguientes razones:" +
                                    "\n1-El archivo está dañado\n2-La contraseña es incorrecta\n3-El archivo no fue cifrado con CryptoSafe", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                catch (FileNotFoundException)
                {
                    MessageBox.Show("El archivo '" + Path.GetFileName(archivo) + "' no pudo ser descifrado\n" +
                                    "El archivo especificado no existe");
                }
                barraProgreso.Avanzar();
            }
            barraProgreso.Hide();
            MessageBox.Show("La tarea ha finalizado");
        }