void speck_decrypt16(SPECK_TYPE16 const ct[2], SPECK_TYPE16 pt[2], SPECK_TYPE16 const K[SPECK_ROUNDS16]) { SPECK_TYPE16 i; pt[0] = ct[0]; pt[1] = ct[1]; for (i = 0; i < SPECK_ROUNDS16; i++){ RR16(pt[1], pt[0], K[(SPECK_ROUNDS16 - 1) - i]); } }
void code3(int mode, LPSYMBOL s1, LPSYMBOL s2, LPSYMBOL s3) { switch (mode) { case AM_RR8: RR8(s1->instr, s2->val8, s3->val8); break; case AM_RI8: RI8(s1->instr, s2->val8, s3->val8); break; case AM_RM8: RM8(s1->instr, s2->val8, s3->val8); break; case AM_RA8: RA8(s1->instr, s2->val8, s3->val16); break; case AM_RR16: RR16(s1->instr, s2->val8, s3->val8); break; case AM_RI16: RI16(s1->instr, s2->val8, s3->val16); break; case AM_RM16: RM16(s1->instr, s2->val8, s3->val8); break; case AM_RA16: RA16(s1->instr, s2->val8, s3->val16); break; case AM_MR8: MR8(s1->instr, s2->val8, s3->val8); break; case AM_MR16: MR16(s1->instr, s2->val8, s3->val8); break; case AM_M8I8: M8I8(s1->instr, s2->val8, s3->val8); break; case AM_M16I8: M16I8(s1->instr, s2->val8, s3->val8); break; case AM_MI16: MI16(s1->instr, s2->val8, s3->val16); break; case AM_AR8: AR8(s1->instr, s2->val16, s3->val8); break; case AM_AR16: AR16(s1->instr, s2->val16, s3->val8); break; case AM_A8I8: A8I8(s1->instr, s2->val16, s3->val8); break; case AM_A16I8: A16I8(s1->instr, s2->val16, s3->val8); break; case AM_AI16: AI16(s1->instr, s2->val16, s3->val16); break; default: break; } }