/// <summary> /// Decrypt Button Click /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DecryptButton_Click(object sender, RoutedEventArgs e) { try { var secret = new Cypher(); secret.Deserialize(this.OutputTextBox.Text); // Decrypt byte[] message = this.Rsa.Decoder.Decrypt(secret); Encoding encodingProcedure; if (Rsa.Decoder.PatternConverter == null) { encodingProcedure = System.Text.Encoding.Unicode; } else { encodingProcedure = Rsa.Decoder.PatternConverter.EncodingProcedure; } // Print result this.DecryptionResultTextBox.Text = encodingProcedure.GetString(message); // Signature verification if (secret.Sign == null) { this.SignatureVerificationTextBlock.Text = "Data is unsigned."; this.SignatureVerificationTextBlock.Foreground = new SolidColorBrush(Colors.DarkOrange); } else { bool isVerified = this.Rsa.Signer.Verify(message, secret.Sign); if (isVerified) { this.SignatureVerificationTextBlock.Text = "Signature verified."; this.SignatureVerificationTextBlock.Foreground = new SolidColorBrush(Colors.Green); } else { this.SignatureVerificationTextBlock.Text = "Signature not verified!"; this.SignatureVerificationTextBlock.Foreground = new SolidColorBrush(Colors.Red); } } } catch (Exception ex) { MessageBox.Show(ex.Message, "Hata"); } }