def translation(self, letter):
        toEncrypt1 = self.circularShifts(letter, self.offset - self.setting)

        if self.direction == 'REVERSE':
            toEncrypt2 = self.reversePermutation[Translator.letterToIndex(
                toEncrypt1)]
        else:
            toEncrypt2 = self.permutation[Translator.letterToIndex(toEncrypt1)]

        encrypted = self.circularShifts(toEncrypt2,
                                        (self.setting - 1) - (self.offset - 1))
        return encrypted
Example #2
0
 def setConfiguration(self, pbConfiguration):
     if 0 < len(pbConfiguration) <= 10:
         for pair in pbConfiguration:
             firstLetter = pair[0]
             firstIndex = Translator.letterToIndex(firstLetter)
             secondLetter = pair[1]
             secondIndex = Translator.letterToIndex(secondLetter)
             self.permutation[firstIndex] = secondLetter
             self.permutation[secondIndex] = firstLetter
     elif len(pbConfiguration) > 10:
         print "Error, Only 10 Paris Of Plugboard is allow. Bay-Bay"
         sys.exit(0)
 def reverseTranslation(self):
     abc = list("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
     index = 0
     for letter in self.permutation:
         self.reversePermutation[Translator.letterToIndex(
             letter)] = abc[index]
         index += 1
 def __init__(self, name, permutation, turnOver):
     self.name = name
     self.permutation = permutation
     self.reversePermutation = [0] * self.SIZE
     self.reverseTranslation(
     )  # create reverse translation from forward permutation
     self.turnOver = Translator.letterToIndex(turnOver) + 1
     self.setting = 0
     self.offset = 0
Example #5
0
 def translation(self, letter):
     return self.permutation[Translator.letterToIndex(letter)]