void Encrypt(uint8_t *block, uint8_t *roundKeys) { uint8_t i; uint32_t *rk = (uint32_t *)roundKeys; uint32_t *rightPtr = (uint32_t *)block; uint32_t *leftPtr = (rightPtr + 1); uint32_t rk2i; uint32_t rk2ip1; for (i = 0; i < NUMBER_OF_ROUNDS/2; ++i) { rk2i = READ_ROUND_KEY_DOUBLE_WORD(rk[2*i]); rk2ip1 = READ_ROUND_KEY_DOUBLE_WORD(rk[2*i + 1]); doubleRound(leftPtr, rightPtr, rk2i, rk2ip1); } }
void Decrypt(uint8_t *block, uint8_t *roundKeys) { int8_t i; uint32_t *rk = (uint32_t *)roundKeys; uint32_t *rightPtr = (uint32_t *)block; uint32_t *leftPtr = rightPtr + 1; uint32_t rk2ip1; uint32_t rk2i; for (i = NUMBER_OF_ROUNDS/2 - 1; i >= 0; --i) { rk2ip1 = READ_ROUND_KEY_DOUBLE_WORD(rk[2*i + 1]); rk2i = READ_ROUND_KEY_DOUBLE_WORD(rk[2*i]); doubleRound(rightPtr, leftPtr, rk2ip1, rk2i); } }