private void Window_Loaded(object sender, RoutedEventArgs e) { manifest = Manifest.GetManifest(); pass.Password = ""; if (manifest.CredentialLocker || !manifest.UseMaFiles) { chkCredentialLocker.IsChecked = true; } else { chkCredentialLocker.IsChecked = false; } chkAutounlock.IsChecked = manifest.AutoUnlockEncryptionManager; if (manifest.Encrypted) { unlocked = false; btnUpdatePassword.Content = "Update password"; } else { unlocked = true; btnUpdatePassword.Content = "Set password"; } if (manifest.CredentialLocker) { CredManifest credMan = new CredManifest(); credMan = CredManifest.GetManifest(); if (!string.IsNullOrEmpty(credMan.key)) { if (manifest.AutoUnlockEncryptionManager == true) { if (manifest.VerifyPasskey(credMan.key)) { pass.Password = credMan.key; unlocked = true; } else { unlocked = false; } } else { unlocked = false; } } else { unlocked = false; } } checkPassword(); }
private void BtnRemovePassword_Click(object sender, RoutedEventArgs e) { try { CredManifest credMan = new CredManifest(); credMan = CredManifest.GetManifest(); if (manifest.CredentialLocker) { if (!manifest.ChangeEncryptionKey(credMan.Key, null)) { MessageBox.Show(String.Format(Properties.strings.SecuritySettingsUnableToRemove, "")); } else { MessageBox.Show(Properties.strings.SecuritySettingsRemoved); this.Close(); } } else { if (!manifest.ChangeEncryptionKey(pass.SecurePassword, null)) { MessageBox.Show(String.Format(Properties.strings.SecuritySettingsUnableToRemove, "")); } else { MessageBox.Show(Properties.strings.SecuritySettingsRemoved); this.Close(); } } } catch (Exception ex) { MessageBox.Show(String.Format(Properties.strings.SecuritySettingsUnableToRemove, "\n" + ex.Message)); } }
private void Window_Loaded(object sender, RoutedEventArgs e) { manifest = Manifest.GetManifest(); // CLEAR (should have already been done!) pass.Password = ""; // Load settings chkRememberPasskey.IsChecked = Manifest.RememberPasskey; chkAutounlock.IsChecked = manifest.AutoUnlockEncryptionManager; chkUseMaFiles.IsChecked = manifest.UseMaFiles; chkUseDPAPI.IsChecked = Manifest.UseDPAPI; chkUseWindowsFileEncryption.IsChecked = Manifest.UseWindowsFileEncryption; if (manifest.AutoUnlockEncryptionManager) { chkRememberPasskey.IsEnabled = false; } if (manifest.Encrypted) { Unlocked = false; btnUpdatePassword.Content = Properties.strings.SecuritySettingsUpdate; if (Manifest.RememberPasskey) { CredManifest credMan = new CredManifest(); credMan = CredManifest.GetManifest(); if (credMan.Key.Length >= 1) { if (manifest.AutoUnlockEncryptionManager == true) { if (manifest.VerifyPasskey(credMan.Key)) { pass.Password = new String(char.Parse(" "), credMan.Key.Length); Unlocked = true; } else { Unlocked = false; } } else { Unlocked = false; } } else { Unlocked = false; } } } else { Unlocked = true; btnUpdatePassword.Content = Properties.strings.SecuritySettingsSet; } CheckPassword(); Loading = false; }
private void BtnUpdatePassword_Click(object sender, RoutedEventArgs e) { CheckPassword(); if (newPass1.Password != newPass2.Password) { newPass1.BorderBrush = red; newPass2.BorderBrush = red; MessageBox.Show(Properties.strings.SecuritySettingsPasskeyDoNotMatch, "", MessageBoxButton.OK, MessageBoxImage.Error); } else { newPass1.BorderBrush = norm; newPass2.BorderBrush = norm; btnUpdatePassword.Content = Properties.strings.SecuritySettingsPasskeyButtonUpdate; SecureString newPassKey = newPass1.SecurePassword; if (newPassKey.Length == 0) { newPassKey = null; } string action = newPassKey == null ? Properties.strings.SecuritySettingsRemove : Properties.strings.SecuritySettingsChange; string action1 = newPassKey == null ? Properties.strings.SecuritySettingsRemoving : Properties.strings.SecuritySettingsChanging; PleaseWait wait = new PleaseWait(String.Format(Properties.strings.SecuritySettingsProcessingPasskey, action1)); wait.Show(this); wait.Owner = this; new System.Threading.Thread(() => { System.Threading.Thread.CurrentThread.IsBackground = true; try { CredManifest credMan = new CredManifest(); credMan = CredManifest.GetManifest(); if (manifest.CredentialLocker) { if (!manifest.ChangeEncryptionKey(credMan.Key, newPassKey)) { Dispatcher.BeginInvoke((Action) delegate() { wait.txtInfo.Text = String.Format(Properties.strings.SecuritySettingsProcessedFailedPasskey, action); wait.progress.BorderBrush = new SolidColorBrush(Color.FromRgb(203, 128, 128)); wait.progress.Background = new SolidColorBrush(Color.FromRgb(203, 128, 128)); wait.progress.Foreground = new SolidColorBrush(Color.FromRgb(200, 21, 21)); }); } else { credMan.Key = newPassKey; credMan.Save(); Dispatcher.BeginInvoke((Action) delegate() { wait.Hide(); }); } } else { if (!manifest.ChangeEncryptionKey(pass.SecurePassword, newPassKey)) { Dispatcher.BeginInvoke((Action) delegate() { wait.txtInfo.Text = String.Format(Properties.strings.SecuritySettingsProcessedFailedPasskey, action); wait.progress.BorderBrush = new SolidColorBrush(Color.FromRgb(203, 128, 128)); wait.progress.Background = new SolidColorBrush(Color.FromRgb(203, 128, 128)); wait.progress.Foreground = new SolidColorBrush(Color.FromRgb(200, 21, 21)); }); } else { credMan.Key = newPassKey; credMan.Save(); Dispatcher.BeginInvoke((Action) delegate() { wait.Hide(); }); } } } catch { Dispatcher.BeginInvoke((Action) delegate() { wait.txtInfo.Text = String.Format(Properties.strings.SecuritySettingsProcessedFailedPasskey, action); wait.progress.BorderBrush = new SolidColorBrush(Color.FromRgb(203, 128, 128)); wait.progress.Background = new SolidColorBrush(Color.FromRgb(203, 128, 128)); wait.progress.Foreground = new SolidColorBrush(Color.FromRgb(200, 21, 21)); }); } }).Start(); pass.Password = new String(char.Parse(" "), newPassKey.Length); newPass1.Password = newPass2.Password = ""; CheckPassword(); } }