Allows this iterator to be used with the "with" statement
'''
if self.tar_obj is None:
+ decryptor = None
+ if self.delta_tar.password is not None:
+ decryptor = crypto.Decrypt (self.delta_tar.password)
self.tar_obj = tarfile.TarFile.open(self.tar_path,
mode='r' + self.delta_tar.mode,
format=tarfile.GNU_FORMAT,
concat='#' in self.delta_tar.mode,
- encryption=self.delta_tar.decryptor,
+ encryption=decryptor,
new_volume_handler=self.new_volume_handler,
save_to_members=False,
dereference=True)
self._directories = []
self._deltatar = deltatar
self._cwd = cwd
+ self.password = deltatar.password
try:
import grp, pwd
for index in index_list:
is_full = index == index_list[-1]
+ decryptor = None
+ if self.password is not None:
+ decryptor = crypto.Decrypt (self.password)
+
# make paths absolute to avoid cwd problems
if not os.path.isabs(index):
index = os.path.normpath(os.path.join(cwd, index))
last_lno = 0,
new_volume_handler = partial(self.new_volume_handler,
self._deltatar, self._cwd, is_full,
- os.path.dirname(index), self._deltatar.decryptor)
+ os.path.dirname(index), decryptor),
+ decryptor = decryptor
)
self._data.append(s)
else:
iterator = None,
last_itelement = None,
last_lno = 0,
- new_volume_handler = tarobj.new_volume_handler
+ new_volume_handler = tarobj.new_volume_handler,
+ decryptor = self._deltatar.decryptor
)
self._data.append(s)
fileobj=index_data['vol_fd'],
format=tarfile.GNU_FORMAT,
concat='#' in self._deltatar.mode,
- encryption=self._deltatar.decryptor,
+ encryption=index_data["decryptor"],
new_volume_handler=index_data['new_volume_handler'],
save_to_members=False)