Fix #1326: Warn instead of fail on MS-DES block-size error.

This commit is contained in:
Marshall T. Vandegrift 2008-11-29 19:48:26 -05:00
commit 86d30f2732

View File

@ -367,8 +367,10 @@ class ManifestItem(object):
return self.internal == other return self.internal == other
def __repr__(self): def __repr__(self):
return "ManifestItem(internal=%s, path=%s)" \ return "ManifestItem(internal=%r, path=%r, mime_type=%r, " \
% (repr(self.internal), repr(self.path)) "offset=%d, root=%r, state=%r)" \
% (self.internal, self.path, self.mime_type, self.offset,
self.root, self.state)
def preserve(function): def preserve(function):
def wrapper(self, *args, **kwargs): def wrapper(self, *args, **kwargs):
@ -731,6 +733,11 @@ class LitReader(object):
return content return content
def _decrypt(self, content): def _decrypt(self, content):
length = len(content)
extra = length & 0x7
if extra > 0:
self._warn("content length not a multiple of block size")
content += "\0" * (8 - extra)
msdes.deskey(self.bookkey, msdes.DE1) msdes.deskey(self.bookkey, msdes.DE1)
return msdes.des(content) return msdes.des(content)