-
-def keydata_equalp(kd0, kd1):
- if type(kd0) is not type(kd1): return False
- elif type(kd0) is C.KeyDataBinary: return kd0.bin == kd1.bin
- elif type(kd0) is C.KeyDataMP: return kd0.mp == kd1.mp
- elif type(kd0) is C.KeyDataEncrypted: return kd0.ct == kd1.ct
- elif type(kd0) is C.KeyDataECPt: return kd0.ecpt == kd1.ecpt
- elif type(kd0) is C.KeyDataString: return kd0.str == kd1.str
- elif type(kd0) is C.KeyDataStructured:
- if len(kd0) != len(kd1): return False
- for t, v0 in T.iteritems(kd0):
- try: v1 = kd1[t]
- except KeyError: return False
- if not keydata_equalp(v0, v1): return False
- return True
- else:
- raise SystemError("unexpected keydata type")
-