if paramversion is not None:
defs = ENCRYPTION_PARAMETERS.get(paramversion, None)
if defs is None:
- raise ValueError ("no encryption parameters for version %r"
- % paramversion)
+ raise InvalidParameter ("no encryption parameters for version %r"
+ % paramversion)
(kdf, params) = defs["kdf"]
fn = None
if kdf == "scrypt" : fn = kdf_scrypt
% (self.enccounter, iv))
self.lasthdr = lasthdr
self.remainder = hdr ["ctsize"] # distance to next header
- self.encryption.next (hdr)
+ try:
+ self.encryption.next (hdr)
+ except crypto.InvalidParameter as exn:
+ raise DecryptionError ("Crypto.next(): error ā%sā "
+ "processing %r at pos %d"
+ % (exn, self.fileobj, lasthdr)) \
+ from exn
return True
"""
c = len(self.buf)
t = [self.buf]
- good_crypto = 0
+ good_crypto = len (t)
while c < size:
todo = size
if self.arcmode & ARCMODE_ENCRYPT:
buf = None
break # while
except DecryptionError:
- if self.tolerant:
+ if self.tolerant is True:
self.buf = b"".join (t [good_crypto:])
return b"".join (t [:good_crypto])
raise