Show
Ignore:
Timestamp:
05/23/09 02:06:34 (3 years ago)
Author:
ocjhb
Message:

when storing: removed b64, added zlib

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/sandbox/jhb/oc2/storage.py

    r318 r319  
    1 import UserDict, cPickle, blowfish, random, os, base64 
     1import UserDict, cPickle, blowfish, random, os, base64, zlib 
    22class Storage(UserDict.UserDict): 
    33 
     
    1717        return self 
    1818 
     19class EmptyStorage(Storage): 
     20    def save(self): 
     21        pass 
     22    def restore(self): 
     23        pass 
     24 
     25 
    1926class CryptedStorage(Storage): 
    2027 
     
    2330    def setPassword(self,password): 
    2431        self.password = password 
    25  
     32        return self 
    2633 
    2734    def decrypt(self,password,salt,text): 
     
    3946 
    4047    def save(self): 
    41         data = 'opencoin'+base64.b64encode(cPickle.dumps(self.data)) 
     48        #data = 'opencoin'+base64.b64encode(cPickle.dumps(self.data)) 
     49        data = 'opencoin'+zlib.compress(cPickle.dumps(self.data),9) 
    4250        salt = ''.join([str(random.randint(0,9)) for i in range(0,16)]) 
    4351        crypted = self.encrypt(self.password,salt,data) 
    44         content = '%s%s%s' % (self.prefix,salt,base64.b64encode(crypted)) 
     52        #content = '%s%s%s' % (self.prefix,salt,base64.b64encode(crypted)) 
     53        content = '%s%s%s' % (self.prefix,salt,crypted) 
    4554        open(self.filename,'w').write(content) 
    4655        return self 
     
    5261            if content.startswith(self.prefix): 
    5362                salt = content[4:20] 
    54                 crypted = base64.b64decode(content[20:]) 
     63                #crypted = base64.b64decode(content[20:]) 
     64                crypted = content[20:] 
    5565                data = self.decrypt(self.password, salt, crypted) 
    5666                if data.startswith('opencoin'): 
    57                     data = data[8:] 
     67                    data = zlib.decompress(data[8:]) 
    5868                else: 
    59                     raise 'wrong password' 
    60                 data = base64.b64decode(data)                     
     69                    raise Exception, 'wrong password' 
     70                #data = base64.b64decode(data)                     
    6171            else: 
    6272                data = content