void rrr_enc_dec_round(uint8_t *block, uint8_t *roundKey,uint8_t round,uint8_t *key_ctr,uint8_t mode) { uint8_t i, temp[4]; for(i=0;i<4;i++) temp[i] = block[i]; rrr_SLK(block,roundKey+key_ctr[0]); key_ctr[0] = (key_ctr[0]+4)&15; rrr_SLK(block,roundKey+key_ctr[0]); key_ctr[0] = (key_ctr[0]+4)&15; block[3] ^= round; rrr_SLK(block,roundKey+key_ctr[0]); if(mode==1) key_ctr[0] = (key_ctr[0]+12)&15; else key_ctr[0] = (key_ctr[0]+4)&15; rrr_sbox(block); for(i=0;i<4;i++) block[i] ^= block[i+4]; for(i=0;i<4;i++) block[i+4] = temp[i]; }
void rrr_enc_dec_round(uint8_t *block, uint8_t *roundKey,uint8_t round,uint8_t *kc,uint8_t mode) { uint8_t i, temp[4], z, key_ctr = kc[0]; for(i=0;i<4;i++) temp[i] = block[i]; rrr_SLK(block) key_ctr = (key_ctr+4)&15; rrr_SLK(block) key_ctr = (key_ctr+4)&15; block[3] ^= round; rrr_SLK(block) if(mode==1) key_ctr = (key_ctr+12)&15;\ else key_ctr = (key_ctr+4)&15; rrr_sbox(block) for(i=0;i<4;i++) block[i] ^= block[i+4]; for(i=0;i<4;i++) block[i+4] = temp[i]; kc[0] = key_ctr; }