private bool ValidateCryptosystem() { if (PrivateKeyR.cols != Dim || PublicKeyB.cols != Dim || ErrorVector.dim != Dim) { MessageBox.Show(string.Format(Languages.errorWrongGGHCryptosystem, Dim), Languages.error, MessageBoxButton.OK, MessageBoxImage.Error); return(false); } if (!GGH.DoTheKeysFit()) { MessageBox.Show(Languages.errorPrivateAndPublicKeyDoNotFit, Languages.error, MessageBoxButton.OK, MessageBoxImage.Error); return(false); } return(true); }
public void Decrypt() { if (!ValidateCryptosystem()) { return; } UiServices.SetBusyState(); Paragraph paragraph = new Paragraph(); try { Message = GGH.Decrypt(cipher); paragraph.Inlines.Add(new Bold(new Underline(new Run("** " + Languages.buttonDecrypt + " **\r\n")))); paragraph.Inlines.Add(new Bold(new Run(Languages.labelCiphertext))); paragraph.Inlines.Add(" " + Cipher + "\r\n"); paragraph.Inlines.Add(new Bold(new Run(Languages.labelPlainText))); paragraph.Inlines.Add(" " + Message + "\r\n"); NotifyPropertyChanged("Message"); } catch (Exception ex) { paragraph.Inlines.Add(new Bold(new Run(Languages.labelAbort))); paragraph.Inlines.Add(" " + ex.Message + "\r\n"); MessageBox.Show(string.Format(Languages.errorDecryptionError, ex.Message), Languages.error, MessageBoxButton.OK, MessageBoxImage.Error); } finally { if (History.Document.Blocks.FirstBlock != null) { History.Document.Blocks.InsertBefore(History.Document.Blocks.FirstBlock, paragraph); } else { History.Document.Blocks.Add(paragraph); } } }
public void Encrypt() { if (!ValidateCryptosystem()) { return; } UiServices.SetBusyState(); Message = Message.TrimEnd('\0'); Cipher = GGH.Encrypt(Message).ToString(); Paragraph paragraph = new Paragraph(); paragraph.Inlines.Add(new Bold(new Underline(new Run("** " + Languages.buttonEncrypt + " **\r\n")))); paragraph.Inlines.Add(new Bold(new Run(Languages.labelPlainText))); paragraph.Inlines.Add(" " + Message + "\r\n"); paragraph.Inlines.Add(new Bold(new Run(Languages.labelCiphertext))); paragraph.Inlines.Add(" " + Cipher + "\r\n"); History.Document.Blocks.InsertBefore(History.Document.Blocks.FirstBlock, paragraph); NotifyPropertyChanged("Cipher"); }