Fix use of GPG by using it with gpg agent

This commit is contained in:
Sanchayan Maity 2016-03-13 14:53:53 +05:30
parent 58c70237e9
commit 447d08d6be
3 changed files with 25 additions and 6 deletions

View file

@ -168,7 +168,7 @@ function get_imap_password(file)
end end
function get_pwd_victor() function get_pwd_victor()
local cmd = "gpg --quiet --for-your-eyes-only --no-tty --decrypt ~/.victor.gpg" local cmd = "gpg --use-agent --quiet --batch --decrypt ~/.victor.gpg"
local fd = io.popen(cmd, 'r') local fd = io.popen(cmd, 'r')
pass = fd:read("*a") pass = fd:read("*a")
fd:close() fd:close()
@ -176,7 +176,7 @@ function get_pwd_victor()
end end
function get_pwd_sanchayan() function get_pwd_sanchayan()
local cmd = "gpg --quiet --for-your-eyes-only --no-tty --decrypt ~/.sanchayan.gpg" local cmd = "gpg --use-agent --quiet --batch --decrypt ~/.sanchayan.gpg"
local fd = io.popen(cmd, 'r') local fd = io.popen(cmd, 'r')
pass = fd:read("*a") pass = fd:read("*a")
fd:close() fd:close()

View file

@ -11,19 +11,19 @@ account Sanchayan
host smtp.gmail.com host smtp.gmail.com
from maitysanchayan@gmail.com from maitysanchayan@gmail.com
user maitysanchayan@gmail.com user maitysanchayan@gmail.com
passwordeval "gpg --quiet --for-your-eyes-only --no-tty --decrypt ~/.sanchayan.gpg" passwordeval "gpg --use-agent --batch --quiet --no-greeting --no-tty --for-your-eyes-only --homedir /home/sanchayan/.gnupg --decrypt ~/.sanchayan.gpg"
account Victor account Victor
host smtp.gmail.com host smtp.gmail.com
from victorascroft@gmail.com from victorascroft@gmail.com
user victorascroft@gmail.com user victorascroft@gmail.com
passwordeval "gpg --quiet --for-your-eyes-only --no-tty --decrypt ~/.victor.gpg" passwordeval "gpg --use-agent --batch --quiet --no-greeting --no-tty --for-your-eyes-only --homedir /home/sanchayan/.gnupg --decrypt ~/.victor.gpg"
account Toradex account Toradex
host smtp.office365.com host smtp.office365.com
from sanchayan.maity@toradex.com from sanchayan.maity@toradex.com
user sanchayan.maity@toradex.com user sanchayan.maity@toradex.com
passwordeval "gpg --quiet --for-your-eyes-only --no-tty --decrypt ~/.toradex.gpg" passwordeval "gpg --use-agent --batch --quiet --no-greeting --no-tty --for-your-eyes-only --homedir /home/sanchayan/.gnupg --decrypt ~/.toradex.gpg"
# Set a default account # Set a default account
account default : Sanchayan account default : Sanchayan

View file

@ -2,4 +2,23 @@ import subprocess
def mailpasswd(account): def mailpasswd(account):
path = "/home/sanchayan/.%s.gpg" % account path = "/home/sanchayan/.%s.gpg" % account
return subprocess.check_output(["gpg", "--quiet", "--batch", "-d", path]).strip() args = ["gpg", "--use-agent", "--quiet", "--batch", "-d", path]
try:
return subprocess.check_output(["gpg", "--batch", "-d", path]).strip()
except subprocess.CalledProcessError:
return ""
# http://unix.stackexchange.com/questions/44214/encrypt-offlineimap-password
def prime_gpg_agent():
ret = False
i = 1
while not ret:
ret = (mailpasswd("prime") == "prime")
if i > 2:
from offlineimap.ui import getglobalui
sys.stderr.write("Error reading in passwords. Terminating.\n")
getglobalui().terminate()
i += 1
return ret
prime_gpg_agent()