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]; }
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]; }