private void WczytajKluczPrywatny_Click(object sender, RoutedEventArgs e) { try { OpenFileDialog openFileDialog1 = new OpenFileDialog { Title = "Wybierz plik z kluczem prywatnym", Filter = "Private Key (*.privatekey)|*.privatekey", FilterIndex = 1, RestoreDirectory = true }; if (openFileDialog1.ShowDialog() == true) { using (StreamReader sr = new StreamReader(openFileDialog1.FileName)) { BigInteger n1 = BigInteger.Parse(sr.ReadLine()); BigInteger d1 = BigInteger.Parse(sr.ReadLine()); private_key_wczytany = new RSA_key(n1, d1); } } LabelKluczPrywatny.Foreground = Brushes.Green; LabelKluczPrywatny.Content = "Wczytany"; DeszyfrujTekstButton.IsEnabled = true; } catch (Exception ex) { MessageBox.Show("Nie udało się wczytać klucza"); } }
private void GenerujKluczeButton_Click(object sender, RoutedEventArgs e) { try { WyznaczPiQ(); WyznaczN(); WyznaczPHI(); WyznaczE(); WyznaczD(); public_key = new RSA_key(N, E); private_key = new RSA_key(N, D); KluczPublicznyLabel.Content = "Wygenerowany"; KluczPrywatnyLabel.Content = "Wygenerowany"; KluczPublicznyLabel.Foreground = Brushes.Green; KluczPrywatnyLabel.Foreground = Brushes.Green; PodglądZmiennych.IsEnabled = true; ZapiszKluczPublicznyButton.IsEnabled = true; ZapiszKluczPrywatnyButton.IsEnabled = true; } catch (Exception ex) { MessageBox.Show("Wystapil nieoczekiwany błąd \n\n\n" + ex); } }
private BigInteger Decrypt(RSA_key private_key, BigInteger c) { return(BigInteger.ModPow(c, private_key.x, private_key.n)); }
private BigInteger Encrypt(RSA_key public_key, BigInteger m) { return(BigInteger.ModPow(m, public_key.x, public_key.n)); }