def decryptPhase(self,id,machine1,machine2,m1BlkSize,m2BlkSize,seq): x=self.decryptSequence(seq,machine2,m2BlkSize[id],self.level.l[id],self.level.xor[id]) SEMsg=self.decryptSequence(x,machine1,m1BlkSize[id],self.level.k[id],self.level.xor[id]) EMsg=self.shuffler.deshuffleSeq(SEMsg,self.level.s[id]) paddedM1pLength=len(Util.padSequence(range(machine1.getCipherRotorsCount()),m2BlkSize[id])) EM1p=EMsg[0:paddedM1pLength] Msg_M1p=EMsg[paddedM1pLength::] M1p=self.decryptSequence(EM1p,machine2,m2BlkSize[id],self.level.i[id],self.level.xor[id]) Msg=self.decryptSequence(Msg_M1p,machine1,m1BlkSize[id],self.level.j[id],self.level.xor[id],M1p) # print("DECRYPT") # print("ID:"+id) # print("y:") # print(seq) # print("x:") # print(x) # print("SEMsg:") # print(SEMsg) # print("EMsg:") # print(EMsg) # print("EM1p:") # print(EM1p) # print("Msg_M1p:") # print(Msg_M1p) # print("M1p:") # print(M1p) # print("Msg:") # print(Msg) # return Msg
def testPaddingBlksizeLargeerThanSeq(self): seq=[1,2] blkSize=16 padSeq=Util.padSequence(seq,blkSize) self.assertEqual(0,len(padSeq)%blkSize) self.assertEqual(13,padSeq[0])
def testPadSequence(self): seq=[1,2] blkSize=4 padSeq=Util.padSequence(seq,4) self.assertEqual(0,len(padSeq)%4) self.assertEqual(1,padSeq[0])