diff --git a/komrade/backend/crypt.py b/komrade/backend/crypt.py index 6e7af13..3a0cc9a 100644 --- a/komrade/backend/crypt.py +++ b/komrade/backend/crypt.py @@ -25,13 +25,14 @@ class Crypt(Logger): use_secret=CRYPT_USE_SECRET, path_secret=PATH_CRYPT_SECRET, encrypt_values=False, - encryptor_func=lambda x: x, - decryptor_func=lambda x: x): + encryptor_func=None, + decryptor_func=None): # defaults if not name and fn: name=os.path.basename(fn).replace('.','_') self.name,self.fn=name,fn + # use secret? for salting if use_secret and path_secret: if not os.path.exists(path_secret): @@ -45,8 +46,13 @@ class Crypt(Logger): self.secret = f.read() else: self.secret = b'' - self.encrypt_values = encrypt_values + if self.secret and encrypt_values and (not encryptor_func or not decryptor_func): + self.key = KomradeSymmetricKeyWithPassphrase( + passphrase=self.secret + ) + encryptor_func = self.key.encrypt + decryptor_func = self.key.decrypt self.encryptor_func=encryptor_func self.decryptor_func=decryptor_func self.store = FilesystemStore(self.fn) diff --git a/komrade/backend/keymaker.py b/komrade/backend/keymaker.py index 7cdcef4..8bbaa69 100644 --- a/komrade/backend/keymaker.py +++ b/komrade/backend/keymaker.py @@ -383,8 +383,7 @@ class Keymaker(Logger): if not hasattr(self,'_crypt_keys'): self._crypt_keys = Crypt( fn=self.path_crypt_keys, - encryptor_func=self.encrypt, - decryptor_func=self.decrypt, + encrypt_values=True ) return self._crypt_keys @@ -399,17 +398,18 @@ class Keymaker(Logger): return self._crypt_data def encrypt(self,x): - if 'privkey_decr' in self._keychain: - self.log('! encrypting') - return self.privkey_decr.encrypt(x) - self.log('! not encrypting') - return x + return self.privkey_decr.encrypt(x) + # if 'privkey_decr' in self._keychain: + # self.log('! encrypting') + + # self.log('! not encrypting') + # return x def decrypt(self,x): - if 'privkey_decr' in self._keychain: - self.log('! decrypting') - return self.privkey_decr.decrypt(x) - self.log('! not decrypting') - return x + # if 'privkey_decr' in self._keychain: + # self.log('! decrypting') + return self.privkey_decr.decrypt(x) + # self.log('! not decrypting') + # return x diff --git a/komrade/backend/the_operator.py b/komrade/backend/the_operator.py index 9a498a3..aa7cf22 100644 --- a/komrade/backend/the_operator.py +++ b/komrade/backend/the_operator.py @@ -451,8 +451,7 @@ class TheOperator(Operator): # get inbox inbox_crypt = self.get_inbox_crypt( - uri=deliver_to, - pubkey_b=deliver_to_b, + uri=deliver_to ) self.log('inbox_crypt',inbox_crypt) self.log('inbox_crypt.values',inbox_crypt.values)