[Pymoul-svn] SF.net SVN: pymoul: [286] pymoul/trunk/src/moul/file
Status: Alpha
Brought to you by:
tiran
From: <ti...@us...> - 2007-04-19 00:33:30
|
Revision: 286 http://pymoul.svn.sourceforge.net/pymoul/?rev=286&view=rev Author: tiran Date: 2007-04-18 17:33:11 -0700 (Wed, 18 Apr 2007) Log Message: ----------- Fixes to SDL and Stream class Modified Paths: -------------- crypttea/trunk/src/crypttea/_common.py pymoul/trunk/src/moul/crypt/stream.py pymoul/trunk/src/moul/file/sdl.py Modified: crypttea/trunk/src/crypttea/_common.py =================================================================== --- crypttea/trunk/src/crypttea/_common.py 2007-04-18 23:46:47 UTC (rev 285) +++ crypttea/trunk/src/crypttea/_common.py 2007-04-19 00:33:11 UTC (rev 286) @@ -208,7 +208,7 @@ fmt = self._endian+"2L" result = [] if l % bs != 0: - raise ValueError + raise ValueError(l) for i in range(l/bs): v = unpack(fmt, block[i*bs:(i+1)*bs]) w = func(v, key, rounds) Modified: pymoul/trunk/src/moul/crypt/stream.py =================================================================== --- pymoul/trunk/src/moul/crypt/stream.py 2007-04-18 23:46:47 UTC (rev 285) +++ pymoul/trunk/src/moul/crypt/stream.py 2007-04-19 00:33:11 UTC (rev 286) @@ -32,11 +32,10 @@ """Encrypted stream """ magic = 12 * '\x00' - cipherClass = None blockSize = 1024 - def __init__(self, fdname, key, **kwargs): - if isinstane(fdname, basestring): + def __init__(self, fdname, cipher): + if isinstance(fdname, basestring): fd = BinaryFile(fdname) elif isinstance(fdname, BinaryFile): fd = fdname @@ -51,22 +50,23 @@ fd.seek(16) if fsize-16 < self._size: raise ValueError("Size mismatch %i/%i" % (fsize, self._size)) - self._cipher = self.cipherClass(key, **kwargs) + self._cipher = cipher self._fd = fd def read(self): + fd = self._fd fd.seek(16) remain = self._size bs = self.blockSize - fd = self._fd decrypt = self._cipher.decrypt buf = [] while True: - if remain == 0: + if remain <= 0: break + data = fd.read(bs) + data = decrypt(data) if remain < bs: - bs = remain - data = fd.read(bs) - buf.append(decrypt(data)) + data = data[:remain] + buf.append(data) + remain -= bs return ''.join(buf) - Modified: pymoul/trunk/src/moul/file/sdl.py =================================================================== --- pymoul/trunk/src/moul/file/sdl.py 2007-04-18 23:46:47 UTC (rev 285) +++ pymoul/trunk/src/moul/file/sdl.py 2007-04-19 00:33:11 UTC (rev 286) @@ -25,30 +25,30 @@ import re -class SDLReader(object): - """Read Python pak +class SDLParser(object): + """Read SDL Files - >>> mo = SDLReader.comment.match('abc # def # efg') + >>> mo = SDLParser.comment.match('abc # def # efg') >>> mo.group('content') 'abc ' - >>> mo = SDLReader.comment.match('abc') + >>> mo = SDLParser.comment.match('abc') >>> mo.group('content') 'abc' - >>> mo = SDLReader.comment.match('# abc') + >>> mo = SDLParser.comment.match('# abc') >>> mo.group('content') '' - >>> mo = SDLReader.statedesc.match('STATEDESC testage') + >>> mo = SDLParser.statedesc.match('STATEDESC testage') >>> mo.group('name') 'testage' - >>> mo = SDLReader.version.match(' VERSION 5') + >>> mo = SDLParser.version.match(' VERSION 5') >>> mo.group('version') '5' - >>> mo = SDLReader.var.search('VAR BOOL testvar[1] DEFAULT=1') + >>> mo = SDLParser.var.search('VAR BOOL testvar[1] DEFAULT=1') >>> mo.group('type') 'BOOL' >>> mo.group('name') @@ -60,9 +60,11 @@ statedesc = re.compile("^STATEDESC[ ]+(?P<name>\w+)") version = re.compile("[ \t]*VERSION[ ]+(?P<version>\d+)") var = re.compile("VAR[ ]+(?P<type>\w+)[ ]+(?P<name>[$\w]+)\[1\](?P<tail>.*)") - def __init__(self, fname): - self._fname = fname - self._fd = open(fname, 'r') + def __init__(self, fdname): + if isinstance(fdname, basestring): + self._fd = open(fdname, 'r') + else: + self._fd = fdname self.states = [] self._parseFile() @@ -71,7 +73,7 @@ #line = self.comment.match(line).group('content') mo = self.statedesc.match(line) if mo: - self.states.append(mo.group('name') + self.states.append(mo.group('name')) class SDLStates(object): """SDL state object This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |