コード例 #1
0
        private void ButtonEncrypt_Click(object sender, EventArgs e)
        {
            /*if (fileInfo.Length > 1024 * 1024 * 4 && EncryptionFlag == 1)
             * {
             *  string text = "The file size for the selected method should not exceed 4 GB";
             *  string caption1 = "Error";
             *  MessageBox.Show(text, caption1, MessageBoxButtons.OK, MessageBoxIcon.Warning);
             *  //очищение textbox и полей данных
             *  ClearData();
             *  buttonEncrypt.Enabled = false;
             *  return;
             * }*/
            //создание файловых потоков
            using (FileStream srcFileStream = File.Open(FileInfo.FullName, FileMode.Open, FileAccess.Read),
                   resFileStream = File.Create(SavePath + "\\" + Path.GetFileNameWithoutExtension(FileInfo.FullName) + ".encryp"),
                   keyFileStream = File.Create(SavePath + "\\" + Path.GetFileNameWithoutExtension(FileInfo.FullName) + ".key"))
            {
                //вызовы функций шифрования
                IDEAEncryption encryption = new IDEAEncryption(srcFileStream, resFileStream, keyFileStream, FileInfo.Extension);
                encryption.Encrypt();
            }

            //очищение textbox и полей данных
            ClearData();
            buttonEncrypt.Enabled = false;

            //вывод информации
            string info    = "File was encrypted and located on: \r\n" + SavePath;
            string caption = "Encryption complete";

            textBoxLog.Text += DateTime.Now.ToString() + " " + info + "\r\n";
            MessageBox.Show(info, caption, MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
コード例 #2
0
    public void BenchIDEAEncryption()
    {
        IDEAStruct t = new IDEAEncryption();

        t.loops  = 100;
        t.adjust = 1;

        for (int i = 0; i < IDEAEncryptionIterations; i++)
        {
            t.Run();
        }
    }
コード例 #3
0
    public static void BenchIDEAEncryption()
    {
        Setup();
        IDEAStruct t = new IDEAEncryption();

        t.loops  = 100;
        t.adjust = 1;

        foreach (var iteration in Benchmark.Iterations)
        {
            using (iteration.StartMeasurement())
            {
                for (int i = 0; i < IDEAEncryptionIterations; i++)
                {
                    t.Run();
                }
            }
        }
    }
コード例 #4
0
ファイル: SendFileForm.cs プロジェクト: D69ion/FileEncryptor
        private void buttonSend_Click(object sender, EventArgs e)
        {
            if (checkBox.Checked)
            {
                //Thread thread = new Thread(new ThreadStart(ShowMB));
                //thread.IsBackground = true;
                //thread.Start();
                using (FileStream srcFileStream = File.Open(SrcFileInfo.FullName, FileMode.Open, FileAccess.Read),
                       resFileStream = File.Create(SrcFileInfo.DirectoryName + "\\" + Path.GetFileNameWithoutExtension(SrcFileInfo.FullName) + ".encryp"),
                       keyFileStream = File.Create(SrcFileInfo.DirectoryName + "\\" + Path.GetFileNameWithoutExtension(SrcFileInfo.FullName) + ".key"))
                {
                    //вызовы функций шифрования
                    IDEAEncryption encryption = new IDEAEncryption(srcFileStream, resFileStream, keyFileStream, SrcFileInfo.Extension);
                    encryption.Encrypt();
                    SrcFileInfo = new FileInfo(SrcFileInfo.DirectoryName + "\\" + Path.GetFileNameWithoutExtension(SrcFileInfo.FullName) + ".encryp");
                    KeyFileInfo = new FileInfo(SrcFileInfo.DirectoryName + "\\" + Path.GetFileNameWithoutExtension(SrcFileInfo.FullName) + ".key");
                }
                //thread.Abort();
            }
            try
            {
                int        port      = 4000;
                IPAddress  iPAddress = new IPAddress(Convert.ToInt64(textBoxID.Text));
                IPEndPoint endPoint  = new IPEndPoint(iPAddress, port);
                TcpClient  tcpClient = new TcpClient(endPoint);

                using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
                    using (AesCryptoServiceProvider aes = new AesCryptoServiceProvider())
                        using (NetworkStream networkStream = tcpClient.GetStream())
                            using (CryptoStream cryptoNetStream = new CryptoStream(networkStream, aes.CreateEncryptor(), CryptoStreamMode.Write))
                            {
                                //отправка открытого ключа
                                RSAParameters rSAParameters = rsa.ExportParameters(false);
                                networkStream.Write(rSAParameters.Modulus, 0, 128);
                                networkStream.Write(rSAParameters.Exponent, 0, 3);
                                //получение и дешифровка сеансового ключа
                                byte[] encrData = new byte[128],
                                sessionKey;
                                networkStream.Read(encrData, 0, encrData.Length);
                                sessionKey = rsa.Decrypt(encrData, false);
                                //инициализация сеансовго ключа
                                for (int i = 0; i < 32; i++)
                                {
                                    aes.Key[i] = sessionKey[i];
                                }
                                for (int i = 32; i < 48; i++)
                                {
                                    aes.IV[i - 32] = sessionKey[i];
                                }

                                progressBar1.Visible = true;
                                progressBar1.Maximum = (int)(SrcFileInfo.Length / 2);

                                byte[] buffer = new byte[16];
                                byte[] name;
                                int    bytesCount = 0;

                                if (KeyFileInfo != null)
                                {
                                    progressBar1.Maximum += (int)(KeyFileInfo.Length / 2);

                                    networkStream.WriteByte(255);
                                    name = Encoding.ASCII.GetBytes(KeyFileInfo.Name);
                                    networkStream.WriteByte((byte)name.Length);
                                    networkStream.Write(name, 0, name.Length);
                                    networkStream.Write(BitConverter.GetBytes(KeyFileInfo.Length), 0, 8);

                                    name = Encoding.ASCII.GetBytes(SrcFileInfo.Name);
                                    networkStream.WriteByte((byte)name.Length);
                                    networkStream.Write(name, 0, name.Length);
                                    networkStream.Write(BitConverter.GetBytes(SrcFileInfo.Length), 0, 8);

                                    using (Stream keyFile = KeyFileInfo.OpenRead())
                                    {
                                        for (long i = 0; i < KeyFileInfo.Length; i += buffer.Length)
                                        {
                                            //добавить шифрование
                                            bytesCount = keyFile.Read(buffer, 0, buffer.Length);
                                            cryptoNetStream.Write(buffer, 0, bytesCount);
                                            progressBar1.Value += buffer.Length / 2;
                                        }
                                    }
                                }
                                else
                                {
                                    networkStream.WriteByte(0);
                                    name = Encoding.ASCII.GetBytes(SrcFileInfo.Name);
                                    networkStream.WriteByte((byte)name.Length);
                                    networkStream.Write(name, 0, name.Length);
                                    networkStream.Write(BitConverter.GetBytes(SrcFileInfo.Length), 0, 8);
                                }
                                using (FileStream srcFile = SrcFileInfo.OpenRead())
                                {
                                    for (long i = 0; i < SrcFileInfo.Length; i += buffer.Length)
                                    {
                                        //добавить шифрование
                                        bytesCount = srcFile.Read(buffer, 0, buffer.Length);
                                        cryptoNetStream.Write(buffer, 0, bytesCount);
                                        progressBar1.Value += buffer.Length / 2;
                                    }
                                }
                            }
                tcpClient.Close();
                KeyFileInfo.Delete();
                SrcFileInfo.Delete();
                MessageBox.Show("File succsessfully sended", "Succsess", MessageBoxButtons.OK, MessageBoxIcon.None);
            }
            catch (Exception exp)
            {
                MessageBox.Show(exp.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            this.DialogResult = DialogResult.OK;
        }
コード例 #5
0
ファイル: ByteMark.cs プロジェクト: akarpov89/coreclr
    public static void BenchIDEAEncryption()
    {
        Setup();
        IDEAStruct t = new IDEAEncryption();
        t.loops = 100;
        t.adjust = 0;

        foreach (var iteration in Benchmark.Iterations)
        {
            using (iteration.StartMeasurement())
            {
                for (int i = 0; i < IDEAEncryptionIterations; i++) 
                {
                    t.Run();
                }
            }
        }
    }