private void textBoxCiphertext_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (encryptMode != false)
            {
                return;
            }
            int x = textBoxCiphertext.SelectionStart;

            textBoxCiphertext.Text           = textBoxCiphertext.Text.ToUpper();
            textBoxCiphertext.SelectionStart = x;
            if ((textBoxCiphertext != null && textBoxCiphertext.Text.Length == 32) && (textBoxKey != null && textBoxKey.Text.Length == 64))
            {
                if (XBoxVisualization.IsActive() == true)
                {
                    XBoxVisualization.DeleteContent(mainWindow);
                }
                if (SBoxVisualization.IsActive() == true)
                {
                    SBoxVisualization.DeleteContent(mainWindow);
                }
                if (LBoxVisualization.IsActive() == true)
                {
                    LBoxVisualization.DeleteContent(mainWindow);
                }
                if (Reversed_LBoxVisualization.IsActive() == true)
                {
                    Reversed_LBoxVisualization.DeleteContent(mainWindow);
                }

                k = new Kuznyechik("", textBoxKey.Text, textBoxCiphertext.Text);
                textBoxPlaintext.Text = k.ToString();
                DecryptBox.DeleteContent(mainWindow);
                DecryptBox.GenerateContent(mainWindow, k);
            }
        }
        private void changeMode_Click(object sender, RoutedEventArgs e)
        {
            if (XBoxVisualization.IsActive() == true)
            {
                XBoxVisualization.DeleteContent(mainWindow);
            }
            if (SBoxVisualization.IsActive() == true)
            {
                SBoxVisualization.DeleteContent(mainWindow);
            }
            if (LBoxVisualization.IsActive() == true)
            {
                LBoxVisualization.DeleteContent(mainWindow);
            }
            if (Reversed_LBoxVisualization.IsActive() == true)
            {
                Reversed_LBoxVisualization.DeleteContent(mainWindow);
            }

            object  wantedNode = mainWindow.FindName("cryptTab");
            TabItem cryptTab   = wantedNode as TabItem;

            wantedNode = mainWindow.FindName("encryptArrow");
            Polygon encryptArrow = wantedNode as Polygon;

            wantedNode = mainWindow.FindName("decryptArrow");
            Polygon decryptArrow = wantedNode as Polygon;

            if (encryptMode == true)
            {
                encryptMode             = false;
                k                       = new Kuznyechik("", textBoxKey.Text, textBoxCiphertext.Text);
                cryptTab.Header         = "Decrypt";
                encryptArrow.Visibility = Visibility.Hidden;
                decryptArrow.Visibility = Visibility.Visible;
                EncryptBox.DeleteContent(mainWindow);
                DecryptBox.GenerateContent(mainWindow, k);
                textBoxCiphertext.IsReadOnly = false;
                textBoxPlaintext.IsReadOnly  = true;
            }
            else   //encryptMode == false
            {
                encryptMode             = true;
                k                       = new Kuznyechik(textBoxPlaintext.Text, textBoxKey.Text, "");
                cryptTab.Header         = "Encrypt";
                encryptArrow.Visibility = Visibility.Visible;
                decryptArrow.Visibility = Visibility.Hidden;
                DecryptBox.DeleteContent(mainWindow);
                EncryptBox.GenerateContent(mainWindow, k);
                textBoxCiphertext.IsReadOnly = true;
                textBoxPlaintext.IsReadOnly  = false;
            }
        }