jaromail

a commandline tool to easily and privately handle your e-mail
git clone git://parazyd.org/jaromail.git
Log | Files | Refs | Submodules | README

commit 30f4acc2ac0ad27aaf1ea04a3dd3f7ed3c94dea0
parent 2330c54d59df01b7636d0f0db69bf4fbf36b6b96
Author: Jaromil <jaromil@dyne.org>
Date:   Thu, 16 Oct 2014 15:31:35 +0200

changed the way passwords are stored for better usability

now there aren't different passwords for different protocols on same hosts,
we assume a user has same password for imap and pop and smtp on same host.
This will force all users to retype a password and save a new record in the
keyring they are using, because also the password hashing scheme changed.

Diffstat:
Msrc/zlibs/keyring | 20++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/zlibs/keyring b/src/zlibs/keyring @@ -75,9 +75,9 @@ ask_password() { # USE GNOME KEYRING if [ "$GNOMEKEY" = "1" ]; then func "Looking for password in Gnome keyring for $email ($account)" - func "path: jaromail/${type}/${email}" + func "path: jaromail/${email}" - print "protocol=${type}\npath=jaromail/${type}/${email}\nusername=${login}\nhost=${host}\n\n" \ + print "protocol=email\npath=jaromail/${email}\nusername=${login}\nhost=${host}\n\n" \ | "$WORKDIR/bin/jaro-gnome-keyring" check if [ $? != 0 ]; then # its a new password new_password @@ -86,13 +86,13 @@ ask_password() { return 1 } else # password found into gnome keyring act "Using saved password for $login @ $host" - password=`print "protocol=${type}\npath=jaromail/${type}/${email}\nusername=${login}\nhost=${host}\n\n" | "$WORKDIR/bin/jaro-gnome-keyring" get` + password=`print "protocol=email\npath=jaromail/${email}\nusername=${login}\nhost=${host}\n\n" | "$WORKDIR/bin/jaro-gnome-keyring" get` fi return 0 elif [ -r "$KEYRING" ]; then func "Looking for password in local keyring for $email ($account)" - func "new pass hash for: $type:$login:$host" - _hash=`print "$type:$login:$host" | shasum | awk '{print $1}'` + func "new pass hash for: $login:$host" + _hash=`print "$login:$host" | shasum | awk '{print $1}'` lookup="`lookup_secret ${_hash}`" { test "$lookup" = "" } || { act "Saved password found for $email ($transport on $host)" @@ -172,10 +172,10 @@ new_password() { # USE GNOME KEYRING if [ "$GNOMEKEY" = "1" ]; then act "using gnome-keyring password storage" - func "path: jaromail/${type}/${email}" + func "path: jaromail/${email}" cat <<EOF | "$WORKDIR/bin/jaro-gnome-keyring" store -protocol=${type} -path=jaromail/${type}/${email} +protocol=email +path=jaromail/${email} username=${login} host=${host} password=${password} @@ -187,9 +187,9 @@ EOF { test -r "$KEYRING" } || { create_keyring "$KEYRING" } # calculate the hash for this entry - _hash=`print "$type:$login:$host" | shasum | awk '{print $1}'` + _hash=`print "$login:$host" | shasum | awk '{print $1}'` # check if the entry is already present - func "new pass hash for: $type:$login:$host" + func "new pass hash for: $login:$host" lookup="`lookup_secret ${_hash} rowid`" notice "Select the password to lock this keyring entry:" _password="`print $password | gpg -c --cipher-algo AES256 --openpgp --no-options | base64`"