docs: def decrypt(self, data, nounce=None):
          """Decrypt data with counter or specified nounce."""
          if nounce is None:
              nounce = self._in_counter.to_bytes(length=8, byteorder='little')
              self._in_counter += 1
  
          decrypted = self._enc_in.open(
              b'\x00\x00\x00\x00' + nounce, data, bytes())
  
          if not decrypted:
              raise Exception('data decrypt failed')  # TODO: new exception
  
          return bytes(decrypted)