public MainWindow() { InitializeComponent(); // Initialize messageQueue and Assign it to Snack bar's MessageQueue var messageQueue = new SnackbarMessageQueue(TimeSpan.FromSeconds(2)); Snackbar.MessageQueue = messageQueue; // Initialize CiphersComboBox CiphersComboBox.ItemsSource = CiphersList.Instance; CiphersComboBox.DisplayMemberPath = "DisplayName"; // Initialize NewCipherDialog NewCipherDialog.Context = this; // Disable Actions EnableActions(false); // Clear initial block from RichTextBoxes InputRichTextBox.Clear(); OutputRichTextBox.Clear(); // Check for updates CheckForUpdates(); }
private void DecButton_Click(object sender, EventArgs e) { if (OutputRichTextBox.Text == "") { MessageBox.Show("Окно для расшифровки пусто"); } else if (KeyTB.TextLength < 5 || KeyTB.TextLength > 256) { MessageBox.Show("Размер ключа должен находиться в пределах от 5 до 256 символов"); } else { TimeStart(); short[] result = new short[OutputRichTextBox.TextLength]; for (int i = 0; i < OutputRichTextBox.TextLength; i++) { result[i] = (short)OutputRichTextBox.Text[i]; } short[] key = new short[KeyTB.TextLength]; for (int i = 0; i < KeyTB.TextLength; i++) { key[i] = (short)KeyTB.Text[i]; } Algorithm_RC4.AlgorithmRC4 decoder = new Algorithm_RC4.AlgorithmRC4(key); short[] decryptedBytes = decoder.Decode(result, result.Length); OutputRichTextBox.Clear(); for (int i = 0; i < decryptedBytes.Length; i++) { OutputRichTextBox.Text += (char)decryptedBytes[i]; } TimeStop(); } }
private void fileDecryptButton_Click(object sender, EventArgs e) { Algorithm_Encryption.ГОСТ_28147.D32 d32; if (OutputRichTextBox.Text == "") { MessageBox.Show("Введите данные для расшифрования", "Ошибка"); } else { byte[] btFile = encrByteFile; if (byteKey.Length != 32) { MessageBox.Show("Введдите 256-битный ключ."); } else { DateTime StartTime; MyTime = 0; StartTime = DateTime.Now; TimerAlgorithm.Interval = 60000;//в милисекундах TimerAlgorithm.Enabled = true; d32 = new Algorithm_Encryption.ГОСТ_28147.D32(btFile, byteKey); decrByteFile = d32.GetDecryptFile; OutputRichTextBox.Clear(); OutputRichTextBox.Text = Encoding.Default.GetString(decrByteFile); TimerAlgorithm.Enabled = false; DateTime EndTime = DateTime.Now; ToolStripStatusLabel.Text = "Время работы алгоритма шифрования (в миллисекундах)"; SecondsToolStripStatusLabel.Text = (EndTime - StartTime).TotalMilliseconds.ToString(); } } }
private void EncButton_Click(object sender, EventArgs e) { if (NOpenTB.Text == "" || EOpenTB.Text == "") { MessageBox.Show("Для зашифровки сообщения введите открытый ключ.", "Ошибка"); return; } else if (!CheckKey(NOpenTB.Text) || !CheckKey(EOpenTB.Text)) { MessageBox.Show("Открытый ключ содержит некорректные символы.", "Ошибка"); return; } else if (InputRichTextBox.Text == "") { MessageBox.Show("Окно для ввода текста пусто", "Ошибка!"); return; } else { TimeStart(); Algorithm_RSA.AlgorithmRSA rsa = new Algorithm_RSA.AlgorithmRSA(); string input = InputRichTextBox.Text; byte[] Enc = rsa.Encrypt(input, E, n); enc = Enc; OutputRichTextBox.Clear(); for (int i = 0; i < enc.Length; i++) { OutputRichTextBox.Text += Enc[i]; } TimeStop(); } }
private void DecButton_Click(object sender, EventArgs e) { if (NCloseTB.Text == "" || DCloseTB.Text == "") { MessageBox.Show("Для зашифровки сообщения введите открытый ключ.", "Ошибка"); return; } else if (!CheckKey(NCloseTB.Text) || !CheckKey(DCloseTB.Text)) { MessageBox.Show("Открытый ключ содержит некорректные символы.", "Ошибка"); return; } else if (OutputRichTextBox.Text == "") { MessageBox.Show("Окно для расшифровки пусто", "Ошибка"); return; } else { TimeStart(); Algorithm_RSA.AlgorithmRSA rsa = new Algorithm_RSA.AlgorithmRSA(); OutputRichTextBox.Clear(); OutputRichTextBox.Text = rsa.Decrypt(enc, D, n); TimerAlgorithm.Enabled = false; TimeStop(); } }
//выполнение программы private async void RunButton_Click(object sender, EventArgs e) { OutputRichTextBox.Clear(); VariablesRichTextBox.Clear(); StackTraceRichTextBox.Clear(); try { using (Executer = new Executer(SourceCodeFastColoredTextBox.Text)) { using (TokenSource = new CancellationTokenSource()) { StopButton.Enabled = true; RunButton.Enabled = false; //нужен для остановки выполнения программы CancellationToken cancelToken = TokenSource.Token; //запускаем выполнение программы в отдельной задаче OutputRichTextBox.Text += await Task.Run(() => Executer.Execute(cancelToken), cancelToken); StopButton.Enabled = false; RunButton.Enabled = true; } TokenSource = null; } } catch (Exception exp) { OutputRichTextBox.Text += exp.Message; } }
private void EncButton_Click(object sender, EventArgs e) { if (InputRichTextBox.Text == "") { MessageBox.Show("Окно для ввода текста пусто"); } else if (KeyTB.TextLength < 5 || KeyTB.TextLength > 256) { MessageBox.Show("Размер ключа должен находиться в пределах от 5 до 256 символов"); } else { TimeStart(); OutputRichTextBox.Clear(); short[] key = new short[KeyTB.TextLength]; for (int i = 0; i < KeyTB.TextLength; i++) { key[i] = (short)KeyTB.Text[i]; } Algorithm_RC4.AlgorithmRC4 encoder = new Algorithm_RC4.AlgorithmRC4(key); string testString = InputRichTextBox.Text; short[] testBytes = new short[InputRichTextBox.TextLength]; for (int i = 0; i < InputRichTextBox.TextLength; i++) { testBytes[i] = (short)InputRichTextBox.Text[i]; } short[] result = encoder.Encode(testBytes, testBytes.Length); for (int i = 0; i < result.Length; i++) { OutputRichTextBox.Text += (char)result[i]; } TimeStop(); } }
private void EncButton_Click(object sender, EventArgs e) { if (InputRichTextBox.Text == "") { MessageBox.Show("Введите данные для шифрования", "Ошибка"); } else { if (!CheckInput(InputRichTextBox.Text)) { if (MessageBox.Show("В процессе шифровки может произойти потеря части текста.\n(Число символов должно быть кратно 16)\nПрервать шифровку?", "Предупреждение!", MessageBoxButtons.YesNo) == DialogResult.Yes) { return; } } if (!CheckKey(KeyTB.Text)) { MessageBox.Show("Неверный формат ключа", "Ошибка"); return; } TimeStart(); byteKey = Encoding.Default.GetBytes(KeyTB.Text); E24 e24 = new E24(); string[] inputMsg = new string[InputRichTextBox.Text.Length / 16]; int j = 0; for (int i = 0; i < inputMsg.Length; i++) { inputMsg[i] = InputRichTextBox.Text.Substring(j, 16); j += 16; } OutputRichTextBox.Clear(); for (int i = 0; i < inputMsg.Length; i++) { byte[] btFile = Encoding.Default.GetBytes(inputMsg[i]); GenerationKeys newKey = new GenerationKeys(); if (!newKey.SetKey(byteKey)) { MessageBox.Show("Error key!!!"); return; } encrByteFile = e24.Encrypt(btFile, newKey.eKey); char[] eeee = Encoding.Default.GetChars(encrByteFile); foreach (var f in eeee) { OutputRichTextBox.Text += f.ToString(); } } TimeStop(); } }
private void keyGenerateButton_Click(object sender, EventArgs e) { KeyTB.Clear(); OutputRichTextBox.Clear(); byte[] GenerateKey = new byte[32]; Random RandomNumb = new Random(); for (int i = 0; i < GenerateKey.Length; i++) { GenerateKey[i] = (byte)RandomNumb.Next(0, 255); KeyTB.Text += (char)GenerateKey[i]; } byteKey = GenerateKey; }
private void fileEncryptButton_Click(object sender, EventArgs e) { Algorithm_Encryption.ГОСТ_28147.E32 e32; if (InputRichTextBox.Text == "") { MessageBox.Show("Введите данные для шифрования", "Ошибка"); } else { if (!CheckInput(InputRichTextBox.Text)) { if (MessageBox.Show("В процессе шифровки может произойти потеря части текста.\n(Число символов должно быть кратно 8)\nПрервать шифровку?", "Предупреждение!", MessageBoxButtons.YesNo) == DialogResult.Yes) { return; } } byte[] btFile = Encoding.Default.GetBytes(InputRichTextBox.Text); if ((byteKey == null) || (byteKey.Length != 32)) { MessageBox.Show("Введдите 256-битный ключ."); } else { DateTime StartTime; MyTime = 0; StartTime = DateTime.Now; TimerAlgorithm.Interval = 60000;//в милисекундах TimerAlgorithm.Enabled = true; e32 = new Algorithm_Encryption.ГОСТ_28147.E32(btFile, byteKey); encrByteFile = e32.GetEncryptFile; OutputRichTextBox.Clear(); OutputRichTextBox.Text = Encoding.Default.GetString(encrByteFile); TimerAlgorithm.Enabled = false; DateTime EndTime = DateTime.Now; ToolStripStatusLabel.Text = "Время работы алгоритма шифрования (в миллисекундах)"; SecondsToolStripStatusLabel.Text = (EndTime - StartTime).TotalMilliseconds.ToString(); } } }
//запуск пошагового выполнения программы private void StepRunButton_Click(object sender, EventArgs e) { try { OutputRichTextBox.Clear(); SourceCodeFastColoredTextBox.Enabled = false; StepRunButton.Enabled = false; RunButton.Enabled = false; StopButton.Enabled = true; Executer = new Executer(SourceCodeFastColoredTextBox.Text); StepIntoButton.Enabled = true; StepOverButton.Enabled = true; //выделяем первую строку в main ChangeLineColor(Executer.FindMain().LineNo - 1); } catch (Exception exp) { OutputRichTextBox.Text += exp.Message; } }
private void DecButton_Click(object sender, EventArgs e) { if (OutputRichTextBox.Text == "") { MessageBox.Show("Введите данные для расшифрования", "Ошибка"); } else if (KeyTB.TextLength != 32) { MessageBox.Show("Длина ключа должна быть равна 32 символам"); } else { TimeStart(); Algorithm_AES.AlgorithmAES aes = new Algorithm_AES.AlgorithmAES(); byte[] key = new byte[KeyTB.TextLength]; for (int i = 0; i < KeyTB.TextLength; i++) { key[i] = (byte)bufkey[i]; } byte[] Buffer = aes.Decrypt(resbuf, key, IV); OutputRichTextBox.Clear(); for (int i = 0; i < Buffer.Length; i++) { if (buf[i] - 1024 > 0) { OutputRichTextBox.Text += (char)(Buffer[i] + 1024); } else { OutputRichTextBox.Text += (char)Buffer[i]; } } TimeStop(); } }
private void EncButton_Click(object sender, EventArgs e) { if (InputRichTextBox.TextLength == 0) { MessageBox.Show("Введите данные для шифрования", "Ошибка"); } else if (KeyTB.TextLength != 32) { MessageBox.Show("Длина ключа должна быть равна 32 символам"); } else if (InputRichTextBox.TextLength % 16 != 0) { MessageBox.Show("Длина текста должна быть кратна 16"); } else { TimeStart(); OutputRichTextBox.Clear(); Algorithm_AES.AlgorithmAES aes = new Algorithm_AES.AlgorithmAES(); byte[] Buffer; buf = new short[InputRichTextBox.TextLength]; byte[] res = new byte[InputRichTextBox.TextLength]; for (short i = 0; i < InputRichTextBox.TextLength; i++) { buf[i] = (short)InputRichTextBox.Text[i]; } //массив buf необходимый для равботы с символами русского алфавита for (short i = 0; i < InputRichTextBox.TextLength; i++) { if (buf[i] - 1024 > 0) { res[i] = (byte)(buf[i] - 1024); } else { res[i] = (byte)buf[i]; } } bufkey = new short[KeyTB.TextLength]; byte[] key = new byte[KeyTB.TextLength]; for (int i = 0; i < KeyTB.TextLength; i++) { bufkey[i] = (short)KeyTB.Text[i]; } for (short i = 0; i < KeyTB.TextLength; i++) { if (bufkey[i] - 1024 > 0) { key[i] = (byte)(bufkey[i] - 1024); } else { key[i] = (byte)bufkey[i]; } } Buffer = aes.Encrypt(res, key, IV); resbuf = Buffer;//запоминаем массив при необходимости расшифрования for (int i = 0; i < Buffer.Length; i++) { OutputRichTextBox.Text += (char)Buffer[i]; } TimeStop(); } }
private void KeyTB_TextChanged(object sender, EventArgs e) { OutputRichTextBox.Clear(); }
//// Output Event Handlers & Properties //// private void OutputCutButton_Click(object sender, RoutedEventArgs e) { OutputRichTextBox.CopyToClipboard(); OutputRichTextBox.Clear(); }
private void OutputClearButton_Click(object sender, RoutedEventArgs e) { OutputRichTextBox.Clear(); }
private void CloseKeyLabel_TextChanged(object sender, EventArgs e) { OutputRichTextBox.Clear(); }