'Encrypts a single block. This is the main AES function'

def encrypt_block(self, block):

    self.add_round_key(block, 0)
    for round in xrange(1, self.rounds):
        self.sub_bytes(block, aes_sbox)
        self.shift_rows(block)
        self.mix_columns(block)
        self.add_round_key(block, round)
    self.sub_bytes(block, aes_sbox)
    self.shift_rows(block)
    self.add_round_key(block, self.rounds)
