Example #1
0
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);
	}
}
Example #2
0
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);
    }
}