GDROMExplorer/Explorer/Forms/FormGetDESKey.cs
2021-07-26 13:04:16 -07:00

185 lines
6.6 KiB
C#

// Decompiled with JetBrains decompiler
// Type: GDRomExplorer.Forms.FormGetDESKey
// Assembly: GD-ROM Explorer, Version=1.6.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: B7A7D10A-9A63-4E9E-9840-D297E5FC2219
// Assembly location: GD-ROM Explorer.exe
using GDRomExplorer.Resources;
using SEGATools.Encrypt;
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
namespace GDRomExplorer.Forms
{
public class FormGetDESKey : Form
{
private IContainer components;
private TextBox tbDESKey;
private Label lbDESKey;
private Button btProceed;
private Button btCancel;
public DESKey DESKey { get; private set; }
public static FormGetDESKey aGetDESKeyFormWithDecryptLabel() => new FormGetDESKey(FormGetDESKey.ButtonLabel.DecryptOnly, (DESKey) null);
public static FormGetDESKey aGetDESKeyFormWithEncryptLabel() => new FormGetDESKey(FormGetDESKey.ButtonLabel.EncryptOnly, (DESKey) null);
public static FormGetDESKey aGetDESKeyFormWithExtractAndDecryptLabel(
DESKey inputDESKey)
{
return new FormGetDESKey(FormGetDESKey.ButtonLabel.ExtractAndDecrypt, inputDESKey);
}
private FormGetDESKey()
: this(FormGetDESKey.ButtonLabel.ExtractAndDecrypt, (DESKey) null)
{
}
private FormGetDESKey(FormGetDESKey.ButtonLabel buttonLabel, DESKey suggestedDESKey)
{
string extractButtonLabel;
switch (buttonLabel)
{
case FormGetDESKey.ButtonLabel.ExtractAndDecrypt:
extractButtonLabel = Strings.DESKeyFormButtonLabelExtractAndDecrypt;
break;
case FormGetDESKey.ButtonLabel.EncryptOnly:
extractButtonLabel = Strings.DESKeyFormButtonLabelEncrypt;
break;
case FormGetDESKey.ButtonLabel.DecryptOnly:
extractButtonLabel = Strings.DESKeyFormButtonLabelDecrypt;
break;
default:
extractButtonLabel = Strings.DESKeyFormButtonLabelDecrypt;
break;
}
this.DESKey = suggestedDESKey;
this.Initialize(extractButtonLabel);
}
private void Initialize(string extractButtonLabel)
{
this.InitializeComponent();
this.Activated += new EventHandler(this.FormGetDESKey_Activated);
this.btProceed.Text = extractButtonLabel;
this.tbDESKey.CharacterCasing = CharacterCasing.Upper;
this.tbDESKey.TextChanged += new EventHandler(this.tbDESKey_TextChanged);
}
private void ValidateDESKey(string key)
{
string key1 = key.Trim();
if (DESKey.TryParse(key1))
{
this.DESKey = DESKey.Parse(key1);
this.btProceed.Enabled = true;
}
else
{
this.DESKey = (DESKey) null;
this.btProceed.Enabled = false;
}
}
private void FormGetDESKey_Load(object sender, EventArgs e)
{
this.btProceed.Enabled = false;
this.tbDESKey.Text = this.DESKey != null ? this.DESKey.KeyString : string.Empty;
this.tbDESKey.Focus();
}
private void FormGetDESKey_Activated(object sender, EventArgs e)
{
if (!Clipboard.ContainsText() || !DESKey.TryParse(Clipboard.GetText().Trim()))
return;
this.tbDESKey.Text = Clipboard.GetText().Trim();
}
private void tbDESKey_TextChanged(object sender, EventArgs e) => this.ValidateDESKey(this.tbDESKey.Text);
private void btProceed_Click(object sender, EventArgs e) => this.ValidateDESKey(this.tbDESKey.Text);
private void btCancel_Click(object sender, EventArgs e) => this.Close();
protected override void Dispose(bool disposing)
{
if (disposing && this.components != null)
this.components.Dispose();
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.tbDESKey = new TextBox();
this.lbDESKey = new Label();
this.btProceed = new Button();
this.btCancel = new Button();
this.SuspendLayout();
this.tbDESKey.Location = new Point(71, 6);
this.tbDESKey.MaxLength = 16;
this.tbDESKey.Name = "tbDESKey";
this.tbDESKey.Size = new Size(210, 20);
this.tbDESKey.TabIndex = 0;
this.tbDESKey.TextAlign = HorizontalAlignment.Center;
this.lbDESKey.AutoSize = true;
this.lbDESKey.Location = new Point(12, 9);
this.lbDESKey.Name = "lbDESKey";
this.lbDESKey.Size = new Size(53, 13);
this.lbDESKey.TabIndex = 2;
this.lbDESKey.Text = "DES Key:";
this.btProceed.DialogResult = DialogResult.OK;
this.btProceed.FlatStyle = FlatStyle.Popup;
this.btProceed.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btProceed.ForeColor = Color.FromArgb(248, 48, 0);
this.btProceed.Location = new Point(154, 32);
this.btProceed.Name = "btProceed";
this.btProceed.Size = new Size((int) sbyte.MaxValue, 22);
this.btProceed.TabIndex = 1;
this.btProceed.Text = "&OK";
this.btProceed.UseVisualStyleBackColor = false;
this.btProceed.Click += new EventHandler(this.btProceed_Click);
this.btCancel.DialogResult = DialogResult.Cancel;
this.btCancel.FlatStyle = FlatStyle.Popup;
this.btCancel.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
this.btCancel.ForeColor = Color.FromArgb(248, 48, 0);
this.btCancel.Location = new Point(15, 32);
this.btCancel.Name = "btCancel";
this.btCancel.Size = new Size((int) sbyte.MaxValue, 22);
this.btCancel.TabIndex = 2;
this.btCancel.Text = "&Cancel";
this.btCancel.UseVisualStyleBackColor = false;
this.btCancel.Click += new EventHandler(this.btCancel_Click);
this.AcceptButton = (IButtonControl) this.btProceed;
this.AutoScaleDimensions = new SizeF(6f, 13f);
this.AutoScaleMode = AutoScaleMode.Font;
this.BackColor = SystemColors.Window;
this.CancelButton = (IButtonControl) this.btCancel;
this.ClientSize = new Size(295, 65);
this.Controls.Add((Control) this.btCancel);
this.Controls.Add((Control) this.btProceed);
this.Controls.Add((Control) this.tbDESKey);
this.Controls.Add((Control) this.lbDESKey);
this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = nameof (FormGetDESKey);
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = FormStartPosition.CenterParent;
this.Text = "Enter the Naomi DES key";
this.Load += new EventHandler(this.FormGetDESKey_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
private enum ButtonLabel : short
{
ExtractAndDecrypt,
EncryptOnly,
DecryptOnly,
}
}
}