Closes #293: implementation using keychain