debian: Abandon CDBS for plain Debhelper.
[catacomb-python] / catacomb / pwsafe.py
index 5503491..bfd4e86 100644 (file)
@@ -29,14 +29,14 @@ class Crypto (object):
     iv = y[:me.c.__class__.blksz]
     if me.c.__class__.blksz: me.c.setiv(iv)
     return me.c.decrypt(y[me.c.__class__.blksz:])
-  
+
 class PPK (Crypto):
   def __init__(me, pp, c, h, m, salt = None):
     if not salt: salt = _C.rand.block(h.hashsz)
     tag = '%s\0%s' % (pp, salt)
     Crypto.__init__(me, c, h, m,
-                  h().hash('cipher:' + tag).done(),
-                  h().hash('mac:' + tag).done())
+                 h().hash('cipher:' + tag).done(),
+                 h().hash('mac:' + tag).done())
     me.salt = salt
 
 class Buffer (object):
@@ -70,9 +70,9 @@ class PWIter (object):
     k = me.k
     while True:
       if k is None:
-        raise StopIteration
+       raise StopIteration
       if k[0] == '$':
-        break
+       break
       k = me.pw.db.nextkey(k)
     me.k = me.pw.db.nextkey(k)
     return me.pw.unpack(me.pw.db[k])[0]
@@ -100,7 +100,7 @@ class PW (object):
     tag = me.db['tag']
     _C.ppcancel(tag)
     ppk = PPK(_C.ppread(tag, _C.PMODE_VERIFY),
-              me.k.c.__class__, me.k.h, me.k.m.__class__)
+             me.k.c.__class__, me.k.h, me.k.m.__class__)
     me.db['key'] = ppk.encrypt(_wrapstr(me.ck) + _wrapstr(me.mk))
     me.db['salt'] = ppk.salt
   def pack(me, key, value):
@@ -114,11 +114,17 @@ class PW (object):
     value = buf.getstring()
     return key, value
   def __getitem__(me, key):
-    return me.unpack(me.db[me.keyxform(key)])[1]
+    try:
+      return me.unpack(me.db[me.keyxform(key)])[1]
+    except KeyError:
+      raise KeyError, key
   def __setitem__(me, key, value):
     me.db[me.keyxform(key)] = me.pack(key, value)
   def __delitem__(me, key):
-    del me.db[me.keyxform(key)]
+    try:
+      del me.db[me.keyxform(key)]
+    except KeyError:
+      raise KeyError, key
   def __iter__(me):
     return PWIter(me)