I've been thinking about this (and the more general keychain problem) recently. Wouldn't it make sense to have your keychain stored on your smartphone, and allow applications access over a standard protocol using NFC/USB/Bluetooth?
Better still, let the phone do the public key cryptography (as in plan9's factotum), so that your private keys never leave your phone.