public override string GetCellData(string columnName, KeePassLib.PwEntry entry) { switch (columnName) { case sshKeyStatusColumnName: var agentModeAgent = ext.agent as Agent; if (agentModeAgent != null && agentModeAgent.IsLocked) { return "Agent Locked"; } try { var key = entry.GetSshKey(); if (key == null) return "N/A"; if (ext.agent.GetAllKeys().Get(key.Version, key.GetPublicKeyBlob()) != null) return "Loaded"; } catch (PpkFormatterException) { return "Error"; } catch (Exception ex) { Debug.Fail(ex.Message); return "*Error"; } return "Not Loaded"; } Debug.Fail(string.Format("Unknown column name: {0}", columnName)); return string.Empty; }
public override void PerformCellAction(string columnName, KeePassLib.PwEntry entry) { switch (columnName) { case sshKeyStatusColumnName: try { var key = entry.GetSshKey(); if (key == null) break; var agentKey = ext.agent.GetAllKeys().Get(key.Version, key.GetPublicKeyBlob()); if (agentKey == null) ext.AddEntry(entry, null); else ext.agent.RemoveKey(agentKey); } catch (Exception ex) { Debug.Fail(ex.Message); } break; default: Debug.Fail(string.Format("Unsupported column: {0}", columnName)); break; } }