Пример #1
0
 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);
 }
Пример #2
0
        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);
                }
            }
        }
Пример #3
0
        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");
        }