# ParagonIE_Sodium_Core_ChaCha20::quarterRound

## #Summery Summery

The ChaCha20 quarter round function. Works on four 32-bit integers.

## #Syntax Syntax

ParagonIE_Sodium_Core_ChaCha20::quarterRound( int \$a, int \$b, int \$c, int \$d )

\$a

(Required)

\$b

(Required)

\$c

(Required)

\$d

(Required)

## #Return Return

(array<int,) int>

## #Source Source

```    protected static function quarterRound(\$a, \$b, \$c, \$d)
{
# a = PLUS(a,b); d = ROTATE(XOR(d,a),16);
/** @var int \$a */
\$a = (\$a + \$b) & 0xffffffff;
\$d = self::rotate(\$d ^ \$a, 16);

# c = PLUS(c,d); b = ROTATE(XOR(b,c),12);
/** @var int \$c */
\$c = (\$c + \$d) & 0xffffffff;
\$b = self::rotate(\$b ^ \$c, 12);

# a = PLUS(a,b); d = ROTATE(XOR(d,a), 8);
/** @var int \$a */
\$a = (\$a + \$b) & 0xffffffff;
\$d = self::rotate(\$d ^ \$a, 8);

# c = PLUS(c,d); b = ROTATE(XOR(b,c), 7);
/** @var int \$c */
\$c = (\$c + \$d) & 0xffffffff;
\$b = self::rotate(\$b ^ \$c, 7);
return array((int) \$a, (int) \$b, (int) \$c, (int) \$d);
}
```