quarterRound function

void quarterRound(
  1. List list,
  2. int x,
  3. int y,
  4. int z,
  5. int w,
)

Implementation

void quarterRound(List list, int x, int y, int z, int w) {
  num mod = pow(2, 32); // 2^32
  var a = list[x];
  var b = list[y];
  var c = list[z];
  var d = list[w];

  a = (a + b) % mod;
  d = leftRoll(d ^ a, 16);
  c = (c + d) % mod;
  b = leftRoll(b ^ c, 12);
  a = (a + b) % mod;
  d = leftRoll(d ^ a, 8);
  c = (c + d) % mod;
  b = leftRoll(b ^ c, 7);

  list[x] = a;
  list[y] = b;
  list[z] = c;
  list[w] = d;
}