quarterRound method
Performs a quarter round in place on the state words a, b, c, d, without allocating intermediate lists.
Implementation
void quarterRound(int a, int b, int c, int d) {
final s = chaChaState;
s[a] = (s[a] + s[b]) & 0xFFFFFFFF;
s[d] = rotateLeft(s[d] ^ s[a], 16);
s[c] = (s[c] + s[d]) & 0xFFFFFFFF;
s[b] = rotateLeft(s[b] ^ s[c], 12);
s[a] = (s[a] + s[b]) & 0xFFFFFFFF;
s[d] = rotateLeft(s[d] ^ s[a], 8);
s[c] = (s[c] + s[d]) & 0xFFFFFFFF;
s[b] = rotateLeft(s[b] ^ s[c], 7);
}