private async void btnImportPasswords_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog { Title = "Import Passwords", DefaultExt = "kvf", Filter = "KeysVault files (*.kvf)|*.kvf|All files (*.*)|*.*", FilterIndex = 1, CheckPathExists = true, RestoreDirectory = true }; if (ofd.ShowDialog() == DialogResult.OK) { List <Password> importedPasswords = await KeyVaultService.Instance().ImportPasswordsAsync(ofd.FileName); if (importedPasswords != null) { if (Messenger.Confirm("The file contains " + importedPasswords.Count + " passwords. Are you sure you want to import these passwords to your account?")) { try { await PasswordsService.Instance().SaveNewPasswordsAsync(localSettings, CryptoService.Instance().DecryptPasswords(localSettings.Master, importedPasswords)); } catch { Messenger.Show("Unable to import passwords. Either these passwords were encrypted with a different Master Password than yours or you changed your Master Password.", "Error"); } localPasswords = await PasswordsService.Instance().GetAllPasswordsAsync(localSettings); ShowPasswords(localPasswords); } } } }
private async void btnExportPasswords_Click(object sender, EventArgs e) { SaveFileDialog sfd = new SaveFileDialog { Title = "Export Passwords", DefaultExt = "kvf", Filter = "KeysVault files (*.kvf)|*.kvf|All files (*.*)|*.*", FilterIndex = 1, CheckPathExists = true, RestoreDirectory = true }; if (sfd.ShowDialog() == DialogResult.OK) { if (await KeyVaultService.Instance().ExportPasswordsAsync(CryptoService.Instance().EncryptPasswords(localSettings.Master, localPasswords), sfd.FileName)) { Messenger.Show("Passwords exported to " + sfd.FileName + " file.", "Info"); } } }