diff --git a/Crypto Notepad/App.config b/Crypto Notepad/App.config index c3c0440..de1d8e5 100644 --- a/Crypto Notepad/App.config +++ b/Crypto Notepad/App.config @@ -163,7 +163,13 @@ 10 - + + + + False + + + False diff --git a/Crypto Notepad/Forms/PasswordGeneratorFrom.Designer.cs b/Crypto Notepad/Forms/PasswordGeneratorFrom.Designer.cs index 7bf9d88..f489fbe 100644 --- a/Crypto Notepad/Forms/PasswordGeneratorFrom.Designer.cs +++ b/Crypto Notepad/Forms/PasswordGeneratorFrom.Designer.cs @@ -36,16 +36,18 @@ private void InitializeComponent() this.lowercaseCheckBox = new System.Windows.Forms.CheckBox(); this.uppercaseCheckBox = new System.Windows.Forms.CheckBox(); this.numericCheckBox = new System.Windows.Forms.CheckBox(); - this.specialCheckBox = new System.Windows.Forms.CheckBox(); this.passwordLengthLabel = new System.Windows.Forms.Label(); this.numberOfStringsLabel = new System.Windows.Forms.Label(); this.passwordLengthTextBox = new System.Windows.Forms.TextBox(); this.numberOfStringsTextBox = new System.Windows.Forms.TextBox(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); this.copyAllButton = new System.Windows.Forms.Button(); this.copyLastButton = new System.Windows.Forms.Button(); this.passwordGeneratorToolTip = new System.Windows.Forms.ToolTip(this.components); - this.groupBox1.SuspendLayout(); + this.specialCheckBox = new System.Windows.Forms.CheckBox(); + this.additionalCheckBox = new System.Windows.Forms.CheckBox(); + this.bracketsCheckBox = new System.Windows.Forms.CheckBox(); + this.specialGroupBox = new System.Windows.Forms.GroupBox(); + this.specialGroupBox.SuspendLayout(); this.SuspendLayout(); // // generateButton @@ -61,7 +63,7 @@ private void InitializeComponent() // // passwordsListTextBox // - this.passwordsListTextBox.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.passwordsListTextBox.Font = new System.Drawing.Font("Consolas", 8.25F); this.passwordsListTextBox.Location = new System.Drawing.Point(9, 161); this.passwordsListTextBox.Multiline = true; this.passwordsListTextBox.Name = "passwordsListTextBox"; @@ -75,7 +77,7 @@ private void InitializeComponent() // clearPasswordsListButton // this.clearPasswordsListButton.AutoSize = true; - this.clearPasswordsListButton.Location = new System.Drawing.Point(227, 132); + this.clearPasswordsListButton.Location = new System.Drawing.Point(225, 132); this.clearPasswordsListButton.Name = "clearPasswordsListButton"; this.clearPasswordsListButton.Size = new System.Drawing.Size(66, 23); this.clearPasswordsListButton.TabIndex = 4; @@ -88,7 +90,7 @@ private void InitializeComponent() this.lowercaseCheckBox.AutoSize = true; this.lowercaseCheckBox.Checked = true; this.lowercaseCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; - this.lowercaseCheckBox.Location = new System.Drawing.Point(12, 30); + this.lowercaseCheckBox.Location = new System.Drawing.Point(55, 21); this.lowercaseCheckBox.Name = "lowercaseCheckBox"; this.lowercaseCheckBox.Size = new System.Drawing.Size(41, 17); this.lowercaseCheckBox.TabIndex = 7; @@ -102,7 +104,7 @@ private void InitializeComponent() this.uppercaseCheckBox.AutoSize = true; this.uppercaseCheckBox.Checked = true; this.uppercaseCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; - this.uppercaseCheckBox.Location = new System.Drawing.Point(59, 30); + this.uppercaseCheckBox.Location = new System.Drawing.Point(6, 21); this.uppercaseCheckBox.Name = "uppercaseCheckBox"; this.uppercaseCheckBox.Size = new System.Drawing.Size(43, 17); this.uppercaseCheckBox.TabIndex = 8; @@ -116,7 +118,7 @@ private void InitializeComponent() this.numericCheckBox.AutoSize = true; this.numericCheckBox.Checked = true; this.numericCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; - this.numericCheckBox.Location = new System.Drawing.Point(108, 30); + this.numericCheckBox.Location = new System.Drawing.Point(102, 21); this.numericCheckBox.Name = "numericCheckBox"; this.numericCheckBox.Size = new System.Drawing.Size(42, 17); this.numericCheckBox.TabIndex = 9; @@ -125,20 +127,6 @@ private void InitializeComponent() this.numericCheckBox.CheckedChanged += new System.EventHandler(this.PasswordValidation); this.numericCheckBox.Click += new System.EventHandler(this.NumericCheckBox_Click); // - // specialCheckBox - // - this.specialCheckBox.AutoSize = true; - this.specialCheckBox.Checked = true; - this.specialCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; - this.specialCheckBox.Location = new System.Drawing.Point(156, 30); - this.specialCheckBox.Name = "specialCheckBox"; - this.specialCheckBox.Size = new System.Drawing.Size(117, 17); - this.specialCheckBox.TabIndex = 10; - this.specialCheckBox.Text = "Special characters"; - this.specialCheckBox.UseVisualStyleBackColor = true; - this.specialCheckBox.CheckedChanged += new System.EventHandler(this.PasswordValidation); - this.specialCheckBox.Click += new System.EventHandler(this.SpecialCheckBox_Click); - // // passwordLengthLabel // this.passwordLengthLabel.AutoSize = true; @@ -146,7 +134,7 @@ private void InitializeComponent() this.passwordLengthLabel.Name = "passwordLengthLabel"; this.passwordLengthLabel.Size = new System.Drawing.Size(130, 13); this.passwordLengthLabel.TabIndex = 8; - this.passwordLengthLabel.Text = "Password length [8-128]"; + this.passwordLengthLabel.Text = "Password length [4-256]"; // // numberOfStringsLabel // @@ -177,19 +165,6 @@ private void InitializeComponent() this.numberOfStringsTextBox.TextChanged += new System.EventHandler(this.PasswordValidation); this.numberOfStringsTextBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.PasswordLengthTextBox_KeyPress); // - // groupBox1 - // - this.groupBox1.Controls.Add(this.specialCheckBox); - this.groupBox1.Controls.Add(this.lowercaseCheckBox); - this.groupBox1.Controls.Add(this.uppercaseCheckBox); - this.groupBox1.Controls.Add(this.numericCheckBox); - this.groupBox1.Location = new System.Drawing.Point(9, 62); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(282, 64); - this.groupBox1.TabIndex = 11; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "Use characters"; - // // copyAllButton // this.copyAllButton.AutoSize = true; @@ -220,14 +195,71 @@ private void InitializeComponent() this.passwordGeneratorToolTip.InitialDelay = 1; this.passwordGeneratorToolTip.ReshowDelay = 100; // + // specialCheckBox + // + this.specialCheckBox.AutoSize = true; + this.specialCheckBox.Location = new System.Drawing.Point(150, 21); + this.specialCheckBox.Name = "specialCheckBox"; + this.specialCheckBox.Size = new System.Drawing.Size(117, 17); + this.specialCheckBox.TabIndex = 13; + this.specialCheckBox.Text = "Special characters"; + this.passwordGeneratorToolTip.SetToolTip(this.specialCheckBox, "/ \\ ! ? @ # & $ % №"); + this.specialCheckBox.UseVisualStyleBackColor = true; + this.specialCheckBox.CheckedChanged += new System.EventHandler(this.PasswordValidation); + this.specialCheckBox.Click += new System.EventHandler(this.SpecialCheckBox_Click); + this.specialCheckBox.MouseEnter += new System.EventHandler(this.SpecialCheckBox_MouseEnter); + // + // additionalCheckBox + // + this.additionalCheckBox.AutoSize = true; + this.additionalCheckBox.Location = new System.Drawing.Point(80, 41); + this.additionalCheckBox.Name = "additionalCheckBox"; + this.additionalCheckBox.Size = new System.Drawing.Size(80, 17); + this.additionalCheckBox.TabIndex = 13; + this.additionalCheckBox.Text = "Additional"; + this.passwordGeneratorToolTip.SetToolTip(this.additionalCheckBox, "\" ; _ - . = * + : ^ , | \'"); + this.additionalCheckBox.UseVisualStyleBackColor = true; + this.additionalCheckBox.CheckedChanged += new System.EventHandler(this.PasswordValidation); + this.additionalCheckBox.Click += new System.EventHandler(this.additionalCheckBox_Click); + this.additionalCheckBox.MouseEnter += new System.EventHandler(this.SpecialCheckBox_MouseEnter); + // + // bracketsCheckBox + // + this.bracketsCheckBox.AutoSize = true; + this.bracketsCheckBox.Location = new System.Drawing.Point(6, 41); + this.bracketsCheckBox.Name = "bracketsCheckBox"; + this.bracketsCheckBox.Size = new System.Drawing.Size(68, 17); + this.bracketsCheckBox.TabIndex = 13; + this.bracketsCheckBox.Text = "Brackets"; + this.passwordGeneratorToolTip.SetToolTip(this.bracketsCheckBox, "( ) { } [ ] < >"); + this.bracketsCheckBox.UseVisualStyleBackColor = true; + this.bracketsCheckBox.CheckedChanged += new System.EventHandler(this.PasswordValidation); + this.bracketsCheckBox.Click += new System.EventHandler(this.BracketsCheckBox_Click); + this.bracketsCheckBox.MouseEnter += new System.EventHandler(this.SpecialCheckBox_MouseEnter); + // + // specialGroupBox + // + this.specialGroupBox.Controls.Add(this.bracketsCheckBox); + this.specialGroupBox.Controls.Add(this.additionalCheckBox); + this.specialGroupBox.Controls.Add(this.uppercaseCheckBox); + this.specialGroupBox.Controls.Add(this.lowercaseCheckBox); + this.specialGroupBox.Controls.Add(this.numericCheckBox); + this.specialGroupBox.Controls.Add(this.specialCheckBox); + this.specialGroupBox.Location = new System.Drawing.Point(9, 62); + this.specialGroupBox.Name = "specialGroupBox"; + this.specialGroupBox.Size = new System.Drawing.Size(282, 64); + this.specialGroupBox.TabIndex = 12; + this.specialGroupBox.TabStop = false; + this.specialGroupBox.Text = "Use characters"; + // // PasswordGeneratorFrom // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(300, 344); + this.ClientSize = new System.Drawing.Size(298, 344); + this.Controls.Add(this.specialGroupBox); this.Controls.Add(this.copyLastButton); this.Controls.Add(this.copyAllButton); - this.Controls.Add(this.groupBox1); this.Controls.Add(this.numberOfStringsTextBox); this.Controls.Add(this.passwordLengthTextBox); this.Controls.Add(this.numberOfStringsLabel); @@ -235,7 +267,7 @@ private void InitializeComponent() this.Controls.Add(this.clearPasswordsListButton); this.Controls.Add(this.passwordsListTextBox); this.Controls.Add(this.generateButton); - this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.Font = new System.Drawing.Font("Segoe UI", 8.25F); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; @@ -245,8 +277,8 @@ private void InitializeComponent() this.Deactivate += new System.EventHandler(this.PasswordGeneratorFrom_Deactivate); this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.PasswordGeneratorFrom_FormClosing); this.Load += new System.EventHandler(this.PasswordGeneratorFrom_Load); - this.groupBox1.ResumeLayout(false); - this.groupBox1.PerformLayout(); + this.specialGroupBox.ResumeLayout(false); + this.specialGroupBox.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); @@ -260,14 +292,16 @@ private void InitializeComponent() private System.Windows.Forms.CheckBox lowercaseCheckBox; private System.Windows.Forms.CheckBox uppercaseCheckBox; private System.Windows.Forms.CheckBox numericCheckBox; - private System.Windows.Forms.CheckBox specialCheckBox; private System.Windows.Forms.Label passwordLengthLabel; private System.Windows.Forms.Label numberOfStringsLabel; private System.Windows.Forms.TextBox passwordLengthTextBox; private System.Windows.Forms.TextBox numberOfStringsTextBox; - private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.Button copyAllButton; private System.Windows.Forms.Button copyLastButton; private System.Windows.Forms.ToolTip passwordGeneratorToolTip; + private System.Windows.Forms.GroupBox specialGroupBox; + private System.Windows.Forms.CheckBox specialCheckBox; + private System.Windows.Forms.CheckBox additionalCheckBox; + private System.Windows.Forms.CheckBox bracketsCheckBox; } } \ No newline at end of file diff --git a/Crypto Notepad/Forms/PasswordGeneratorFrom.cs b/Crypto Notepad/Forms/PasswordGeneratorFrom.cs index 6ca6516..f4221f3 100644 --- a/Crypto Notepad/Forms/PasswordGeneratorFrom.cs +++ b/Crypto Notepad/Forms/PasswordGeneratorFrom.cs @@ -18,12 +18,48 @@ public PasswordGeneratorFrom() #region Methods private IEnumerable GeneratePasswordGroup() { - var pwd = new Password( + IPassword pwd; + bool includeSpecial = true; + string main = @"/\!?@#&$%№"; + string additional = "\";_-.=*+:^,|'"; + string brackets = "(){}[]<>"; + + if (!specialCheckBox.Checked) + { + main = ""; + } + if (!additionalCheckBox.Checked) + { + additional = ""; + } + if (!bracketsCheckBox.Checked) + { + brackets = ""; + } + + if (!specialCheckBox.Checked & !additionalCheckBox.Checked & !bracketsCheckBox.Checked) + { + includeSpecial = false; + } + + if (includeSpecial) + { + pwd = new Password( includeLowercase: lowercaseCheckBox.Checked, includeUppercase: uppercaseCheckBox.Checked, includeNumeric: numericCheckBox.Checked, - includeSpecial: specialCheckBox.Checked, + includeSpecial: false, + passwordLength: int.Parse(passwordLengthTextBox.Text)).IncludeSpecial(main + additional + brackets); + } + else + { + pwd = new Password( + includeLowercase: lowercaseCheckBox.Checked, + includeUppercase: uppercaseCheckBox.Checked, + includeNumeric: numericCheckBox.Checked, + includeSpecial: false, passwordLength: int.Parse(passwordLengthTextBox.Text)); + } return pwd.NextGroup(Convert.ToInt32(numberOfStringsTextBox.Text)); } #endregion @@ -55,6 +91,8 @@ private void PasswordGeneratorFrom_Load(object sender, EventArgs e) uppercaseCheckBox.Checked = settings.passwordGeneratorUppercase; numericCheckBox.Checked = settings.passwordGeneratorNumeric; specialCheckBox.Checked = settings.passwordGeneratorSpecial; + bracketsCheckBox.Checked = settings.passwordGeneratorBrackets; + additionalCheckBox.Checked = settings.passwordGeneratorAdditional; passwordLengthTextBox.Text = settings.passwordGeneratorLength; numberOfStringsTextBox.Text = settings.passwordGeneratorNumberOfStrings; passwordsListTextBox.Text = string.Join(Environment.NewLine, GeneratePasswordGroup().ToArray()); @@ -117,7 +155,9 @@ private void PasswordValidation(object sender, EventArgs e) !lowercaseCheckBox.Checked & !uppercaseCheckBox.Checked & !numericCheckBox.Checked & - !specialCheckBox.Checked | + !specialCheckBox.Checked & + !additionalCheckBox.Checked & + !bracketsCheckBox.Checked | string.IsNullOrWhiteSpace(numberOfStringsTextBox.Text.Trim('0'))) { generateButton.Enabled = false; @@ -162,11 +202,13 @@ private void PasswordsListTextBox_TextChanged(object sender, EventArgs e) private void CopyLastButton_MouseEnter(object sender, EventArgs e) { + passwordGeneratorToolTip.AutoPopDelay = 1000; passwordGeneratorToolTip.SetToolTip(copyLastButton, null); } private void CopyAllButton_MouseEnter(object sender, EventArgs e) { + passwordGeneratorToolTip.AutoPopDelay = 1000; passwordGeneratorToolTip.SetToolTip(copyAllButton, null); } @@ -174,8 +216,24 @@ private void PasswordGeneratorFrom_Deactivate(object sender, EventArgs e) { PasswordGeneratorFrom_FormClosing(null, null); } + #endregion + private void SpecialCheckBox_MouseEnter(object sender, EventArgs e) + { + passwordGeneratorToolTip.AutoPopDelay = 10000; + } + private void BracketsCheckBox_Click(object sender, EventArgs e) + { + settings.passwordGeneratorBrackets = bracketsCheckBox.Checked; + settings.Save(); + } + + private void additionalCheckBox_Click(object sender, EventArgs e) + { + settings.passwordGeneratorAdditional = additionalCheckBox.Checked; + settings.Save(); + } } } diff --git a/Crypto Notepad/Properties/Settings.Designer.cs b/Crypto Notepad/Properties/Settings.Designer.cs index c0c1012..ab2538f 100644 --- a/Crypto Notepad/Properties/Settings.Designer.cs +++ b/Crypto Notepad/Properties/Settings.Designer.cs @@ -686,5 +686,31 @@ public string TheSalt { this["TheSalt"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Configuration.SettingsProviderAttribute(typeof(PortableSettingsProvider))] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool passwordGeneratorBrackets { + get { + return ((bool)(this["passwordGeneratorBrackets"])); + } + set { + this["passwordGeneratorBrackets"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Configuration.SettingsProviderAttribute(typeof(PortableSettingsProvider))] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool passwordGeneratorAdditional { + get { + return ((bool)(this["passwordGeneratorAdditional"])); + } + set { + this["passwordGeneratorAdditional"] = value; + } + } } } diff --git a/Crypto Notepad/Properties/Settings.settings b/Crypto Notepad/Properties/Settings.settings index 7cf14e3..2f82f62 100644 --- a/Crypto Notepad/Properties/Settings.settings +++ b/Crypto Notepad/Properties/Settings.settings @@ -155,5 +155,11 @@ + + False + + + False + \ No newline at end of file