summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Boeckel <mathstuf@gmail.com>2015-09-25 01:37:52 -0400
committerLars Wirzenius <liw@liw.fi>2015-10-11 11:41:55 +0300
commitefa5dbc284d6fcd07165db283a9736f0796b4edd (patch)
tree5ff7fd51fe5b25339387fc8bb012ce7ac86e6053
parent0555f7dac34270cf6b5d5684e1eb99415606f418 (diff)
downloadobnam-efa5dbc284d6fcd07165db283a9736f0796b4edd.tar.gz
encryption: support custom gpghome in symmetric key functions
Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
-rw-r--r--obnamlib/encryption.py13
1 files changed, 7 insertions, 6 deletions
diff --git a/obnamlib/encryption.py b/obnamlib/encryption.py
index d76193ca..bed4e668 100644
--- a/obnamlib/encryption.py
+++ b/obnamlib/encryption.py
@@ -67,7 +67,7 @@ class SymmetricKeyCache(object):
self.repos = {}
-def _gpg_pipe(args, data, passphrase):
+def _gpg_pipe(args, data, passphrase, gpghome=None):
'''Pipe things through gpg.
With the right args, this can be either an encryption or a decryption
@@ -91,7 +91,8 @@ def _gpg_pipe(args, data, passphrase):
os.close(keypipe[1])
try:
- out = _gpg(args + ['--passphrase-fd', str(keypipe[0])], stdin=data)
+ out = _gpg(args + ['--passphrase-fd', str(keypipe[0])], stdin=data,
+ gpghome=gpghome)
except: # pragma: no cover
os.close(keypipe[0])
raise
@@ -101,14 +102,14 @@ def _gpg_pipe(args, data, passphrase):
return out
-def encrypt_symmetric(cleartext, key):
+def encrypt_symmetric(cleartext, key, gpghome=None):
'''Encrypt data with symmetric encryption.'''
- return _gpg_pipe(['-c'], cleartext, key)
+ return _gpg_pipe(['-c'], cleartext, key, gpghome=gpghome)
-def decrypt_symmetric(encrypted, key):
+def decrypt_symmetric(encrypted, key, gpghome=None):
'''Decrypt encrypted data with symmetric encryption.'''
- return _gpg_pipe(['-d'], encrypted, key)
+ return _gpg_pipe(['-d'], encrypted, key, gpghome=gpghome)
def _gpg(args, stdin='', gpghome=None):