(self, plaintext)
return result
Encrypt a block of plain text using the AES block cipher.
Encrypt a block of plain text using the AES block cipher.
Encrypt a block of plain text using the AES block cipher .
def encrypt(self, plaintext):
        'Encrypt a block of plain text using the AES block cipher.'

        if len(plaintext) != 16:
            raise ValueError('wrong block length')

        rounds = len(self._Ke) - 1
        (s1, s2, s3) = [1, 2, 3]
        a = [0, 0, 0, 0]

        # Convert plaintext to (ints ^ key)
        t = [(_compact_word(plaintext[4 * i:4 * i + 4]) ^ self._Ke[0][i]) for i in xrange(0, 4)]

        # Apply round transforms
        for r in xrange(1, rounds):
            for i in xrange(0, 4):
                a[i] = (self.T1[(t[ i          ] >> 24) & 0xFF] ^
                        self.T2[(t[(i + s1) % 4] >> 16) & 0xFF] ^
                        self.T3[(t[(i + s2) % 4] >>  8) & 0xFF] ^
                        self.T4[ t[(i + s3) % 4]        & 0xFF] ^
                        self._Ke[r][i])
            t = copy.copy(a)

        # The last round is special
        result = [ ]
        for i in xrange(0, 4):
            tt = self._Ke[rounds][i]
            result.append((self.S[(t[ i           ] >> 24) & 0xFF] ^ (tt >> 24)) & 0xFF)
            result.append((self.S[(t[(i + s1) % 4] >> 16) & 0xFF] ^ (tt >> 16)) & 0xFF)
            result.append((self.S[(t[(i + s2) % 4] >>  8) & 0xFF] ^ (tt >>  8)) & 0xFF)
            result.append((self.S[ t[(i + s3) % 4]        & 0xFF] ^  tt       ) & 0xFF)

        return result
def encrypt ( self , plaintext ) : if len ( plaintext ) != 16 : raise ValueError ( 'wrong block length' ) rounds = len ( self . _Ke ) - 1 ( s1 , s2 , s3 ) = [ 1 , 2 , 3 ] a = [ 0 , 0 , 0 , 0 ] # Convert plaintext to (ints ^ key) t = [ ( _compact_word ( plaintext [ 4 * i : 4 * i + 4 ] ) ^ self . _Ke [ 0 ] [ i ] ) for i in xrange ( 0 , 4 ) ] # Apply round transforms for r in xrange ( 1 , rounds ) : for i in xrange ( 0 , 4 ) : a [ i ] = ( self . T1 [ ( t [ i ] >> 24 ) & 0xFF ] ^ self . T2 [ ( t [ ( i + s1 ) % 4 ] >> 16 ) & 0xFF ] ^ self . T3 [ ( t [ ( i + s2 ) % 4 ] >> 8 ) & 0xFF ] ^ self . T4 [ t [ ( i + s3 ) % 4 ] & 0xFF ] ^ self . _Ke [ r ] [ i ] ) t = copy . copy ( a ) # The last round is special result = [ ] for i in xrange ( 0 , 4 ) : tt = self . _Ke [ rounds ] [ i ] result . append ( ( self . S [ ( t [ i ] >> 24 ) & 0xFF ] ^ ( tt >> 24 ) ) & 0xFF ) result . append ( ( self . S [ ( t [ ( i + s1 ) % 4 ] >> 16 ) & 0xFF ] ^ ( tt >> 16 ) ) & 0xFF ) result . append ( ( self . S [ ( t [ ( i + s2 ) % 4 ] >> 8 ) & 0xFF ] ^ ( tt >> 8 ) ) & 0xFF ) result . append ( ( self . S [ t [ ( i + s3 ) % 4 ] & 0xFF ] ^ tt ) & 0xFF ) return result