private void MainForm_FileClosing(object aSender,
FileClosingEventArgs aEventArgs)
{
try {
removeKeyList.Clear();
var allKeys = agent.GetAllKeys();
foreach (var entry in aEventArgs.Database.RootGroup.GetEntries(true)) {
try {
var settings = entry.GetKeeAgentSettings();
if (settings.AllowUseOfSshKey && settings.RemoveAtDatabaseClose) {
var matchKey = entry.GetSshKey();
if (matchKey == null) {
continue;
}
var removeKey = allKeys.Get(matchKey.Version, matchKey.GetPublicKeyBlob());
if (removeKey == null) {
continue;
}
removeKeyList.Add(removeKey);
}
} catch (Exception ex) {
// keep trying the rest of the keys
Debug.Fail(ex.ToString());
}
}
} catch (Exception ex) {
// can't be crashing KeePass
Debug.Fail(ex.ToString());
}
}