Dealing with a corrupted gnome keyring
This was bound to happen at some point. Local hard disk was full and google chrome was trying to save a password. End result was a corrupted gnomekeyring which meant i was effectively without any vpn or browser password, or even access to my ssh key.
keyring source repository some code buried within its internal tests called dump-keyring0-format.c which showed partial success in printing most of my passwords. So i had some hope that my keyring was not completely lost. One method available would be to print out all the passwords and store them in a new file. However when i noticed there were python bindings out there i eventually came up with a much nicer solution:
import gnomekeyring
for keyring in gnomekeyring.list_keyring_names_sync():
for i in gnomekeyring.list_item_ids_sync(keyring):
try:
# This will file if the keyring file is corrupted
# at that point in the file
item = gnomekeyring.item_get_info_sync(keyring, i)
#print item.get_display_name(), item.get_secret()
except Exception:
# Left commented out for obvious reasons
#gnomekeyring.item_delete_sync(keyring, i)
print "%s: item %s deleted." % (keyring, i)