void speck_decrypt64(SPECK_TYPE64 const ct[2], SPECK_TYPE64 pt[2], SPECK_TYPE64 const K[SPECK_ROUNDS64]) { SPECK_TYPE64 i; pt[0] = ct[0]; pt[1] = ct[1]; for (i = 0; i < SPECK_ROUNDS64; i++){ RR64(pt[1], pt[0], K[(SPECK_ROUNDS64 - 1) - i]); } }
static inline uint64_t next_mwc32_r(struct state_mwc32_r *state) { uint64_t x = L32(state->s1)*A1+H32(state->s1); state->s1 = x; return x + RR64(x,25); }