171 lines · 6.8 KB · C#
RawDownload
//******************************************************************************************************//  Main.cs - Gbtc////  Copyright © 2013, Grid Protection Alliance.  All Rights Reserved.////  Licensed to the Grid Protection Alliance (GPA) under one or more contributor license agreements. See//  the NOTICE file distributed with this work for additional information regarding copyright ownership.//  The GPA licenses this file to you under the MIT License (MIT), the "License"; you may//  not use this file except in compliance with the License. You may obtain a copy of the License at:////      http://www.opensource.org/licenses/MIT////  Unless agreed to in writing, the subject software distributed under the License is distributed on an//  "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Refer to the//  License for the specific language governing permissions and limitations.////  Code Modification History://  ----------------------------------------------------------------------------------------------------//  05/05/2009 - Pinal C. Patel//       Generated original version of source code.//  09/14/2009 - Stephen C. Wills//       Added new header and license agreement.//  12/14/2009 - Pinal C. Patel//       Added option to import and export key IV via clipboard.//  04/26/2011 - J. Ritchie Carroll//       Added call to flush crypto cache on shutdown.////****************************************************************************************************** using System;using System.Windows.Forms;using GSF.Configuration;using GSF.Reflection;using GSF.Security.Cryptography; namespace ConfigCrypter{    public partial class Main : Form    {        #region [ Members ]         // Constants        private const CipherStrength CryptoStrength = CipherStrength.Aes256;        private const string DefaultCryptoKey = "0679d9ae-aca5-4702-a3f5-604415096987";        private const string InvalidInputPrompt = "[Input string is not in valid format]";         #endregion         #region [ Constructors ]         public Main()        {            InitializeComponent();        }         #endregion         #region [ Methods ]         private void Main_Load(object sender, EventArgs e)        {            // Set the window title to application name and version.            this.Text = string.Format(this.Text, AssemblyInfo.EntryAssembly.Product, AssemblyInfo.EntryAssembly.Version.ToString(2));        }         private void Main_FormClosing(object sender, FormClosingEventArgs e)        {            Cipher.FlushCache();            ConfigurationFile.Current.Save();        }         private void RadioButtonEncrypt_CheckedChanged(object sender, EventArgs e)        {            TextBoxInput.Clear();            TextBoxOutput.Clear();        }         private void TextBoxKey_TextChanged(object sender, EventArgs e)        {            PerformCipher();        }         private void TextBoxInput_TextChanged(object sender, EventArgs e)        {            PerformCipher();        }         private void LinkLabelImportIV_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)        {            try            {                string keyIV = Clipboard.GetData(DataFormats.Text).ToString();                if (!string.IsNullOrEmpty(TextBoxKey.Text))                    Cipher.ImportKeyIV(TextBoxKey.Text, (int)CryptoStrength, keyIV);                else                    Cipher.ImportKeyIV(DefaultCryptoKey, (int)CryptoStrength, keyIV);                 MessageBox.Show(string.Format("Key IV imported from clipboard: \r\n{0}", keyIV), "Import Key IV", MessageBoxButtons.OK, MessageBoxIcon.Information);            }            catch (Exception ex)            {                MessageBox.Show(string.Format("Key IV import failed: \r\n{0}", ex.Message), "Import Key IV", MessageBoxButtons.OK, MessageBoxIcon.Error);            }        }         private void LinkLabelExportIV_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)        {            try            {                string keyIV;                if (!string.IsNullOrEmpty(TextBoxKey.Text))                    keyIV = Cipher.ExportKeyIV(TextBoxKey.Text, (int)CryptoStrength);                else                    keyIV = Cipher.ExportKeyIV(DefaultCryptoKey, (int)CryptoStrength);                Clipboard.SetText(keyIV);                 MessageBox.Show(string.Format("Key IV exported to clipboard: \r\n{0}", keyIV), "Export Key IV", MessageBoxButtons.OK, MessageBoxIcon.Information);            }            catch (Exception ex)            {                MessageBox.Show(string.Format("Key IV export failed: \r\n{0}", ex.Message), "Export Key IV", MessageBoxButtons.OK, MessageBoxIcon.Error);            }        }         private void LinkLabelCopy_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)        {            if (!(string.IsNullOrEmpty(TextBoxOutput.Text) ||                  TextBoxOutput.Text == InvalidInputPrompt ||                  TextBoxOutput.Text.StartsWith("Error", StringComparison.CurrentCultureIgnoreCase)))            {                // Copy the text displayed in the output box to the clipboard.                Clipboard.SetText(TextBoxOutput.Text);                MessageBox.Show("Output text has been copied to the clipboard.", "Copy Text", MessageBoxButtons.OK, MessageBoxIcon.Information);            }            else            {                // Current text in the output box is not valid cipher output.                MessageBox.Show("No valid output text available for copying to the clipboard.", "Copy Text", MessageBoxButtons.OK, MessageBoxIcon.Warning);            }        }         private void PerformCipher()        {            try            {                if (RadioButtonEncrypt.Checked)                {                    // Encrypt the specified text and display the result.                    if (!string.IsNullOrEmpty(TextBoxKey.Text))                        TextBoxOutput.Text = TextBoxInput.Text.Encrypt(TextBoxKey.Text, CryptoStrength);                    else                        TextBoxOutput.Text = TextBoxInput.Text.Encrypt(DefaultCryptoKey, CryptoStrength);                }                else if (RadioButtonDecrypt.Checked)                {                    // Decrypt the specified text and display the result.                    if (!string.IsNullOrEmpty(TextBoxKey.Text))                        TextBoxOutput.Text = TextBoxInput.Text.Decrypt(TextBoxKey.Text, CryptoStrength);                    else                        TextBoxOutput.Text = TextBoxInput.Text.Decrypt(DefaultCryptoKey, CryptoStrength);                }            }            catch (Exception ex)            {                TextBoxOutput.Text = string.Format("ERROR: {0}", ex.Message);            }        }         #endregion    }}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t