Esempio n. 1
0
void Encrypt(uint8_t *block, uint8_t *roundKeys)
{
	uint8_t i, j = 4, temp[4] = {0};
	for(i=0;i<4;i++) block[i] ^= READ_ROUND_KEY_BYTE(roundKeys[i]);
	for(i=NUMBER_OF_ROUNDS;i>0;i--){
		rrr_enc_dec_round(block,roundKeys+j,i);
        j += 12;
	}
	for(i=0;i<4;i++) temp[i] = block[i];
	for(i=0;i<4;i++) block[i] = block[i+4]^READ_ROUND_KEY_BYTE(roundKeys[i+4]);
	for(i=0;i<4;i++) block[i+4] = temp[i];
}
Esempio n. 2
0
void Decrypt(uint8_t *block, uint8_t *roundKeys)
{
	uint8_t i, j = 0, temp[4] = {0};
	//temp[0] = 8;
	for(i=0;i<4;i++) block[i] ^= READ_ROUND_KEY_BYTE(roundKeys[i+20]);
	for(i=1;i<=NUMBER_OF_ROUNDS;i++){
		rrr_enc_dec_round(block,roundKeys+j,i);
        j += 12;
	}
	for(i=0;i<4;i++) temp[i] = block[i];
	for(i=0;i<4;i++) block[i] = block[i+4]^READ_ROUND_KEY_BYTE(roundKeys[i+8]);
	for(i=0;i<4;i++) block[i+4] = temp[i];
}