def next (self, filename, version, nacl, counter=None):
self.curobj = (filename, version, nacl or self.nacl)
- self.set_object_counter (counter if counter is not None else self.cnt + 1)
self.iv = self.iv_make ()
-
if self.paramenc == "aes-gcm":
self.enc = Cipher \
( algorithms.AES (self.key)
self.hdrdum = hdr_make_dummy (filename)
super().next (self.password, self.paramversion, nacl)
+ self.set_object_counter (counter if counter is not None else self.cnt + 1)
return self.hdrdum
paramversion = hdr ["paramversion"]
if self.key is None:
super().next (self.password, paramversion, hdr ["nacl"])
- self.set_object_counter (self.cnt + 1)
iv = hdr ["iv"]
if self.pfx is not None and self.valid_pfx (iv) is False:
fixed, _ = struct.unpack (FMT_I2N_IV, iv)
else:
raise Exception ("XXX garbage encryption parameter %d → %r"
% (paramversion, enc))
+ self.set_object_counter (self.cnt + 1)
def done (self, tag=None):
+ ret = True
data = b""
try:
if tag is None:
- ret, data = True, self.enc.finalize ()
+ data = self.enc.finalize ()
else:
- ret, data = self.enc.finalize_with_tag (self.tag)
+ data = self.enc.finalize_with_tag (self.tag)
except cryptography.exceptions.InvalidTag as exn:
return False, repr (exn)
self.ctsize += len (data)