1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| fn tea(v: &mut [i64; 26], k: &[i64; 4]) { let mut x=0; let mut y=1; while x!=26 { let mut v0 = v[x]; let mut v1 = v[y]; let mut sum:i64 = 0; let delta = 0x19198100; let k0 = k[0]; let k1 = k[1]; let k2 = k[2]; let k3 = k[3];
for _ in 0..32 { sum = sum.wrapping_add(delta); v0 = v0.wrapping_add(((v1 << 4) + k0) ^ (v1.wrapping_add(sum)) ^ ((v1 >> 5) + k1)); v1 = v1.wrapping_add(((v0 << 4) + k2) ^ (v0.wrapping_add(sum)) ^ ((v0 >> 5) + k3)); }
v[x] = v0; v[y] = v1;
x+=2; y+=2; } }
|