Syntax Syntax
Parameters Parameters
- $s
-
(Required)
Return Return
(string)
Source Source
File: wp-includes/sodium_compat/src/Core/Curve25519.php
public static function sc_reduce($s) { /** @var int $s0 */ $s0 = 2097151 & self::load_3(self::substr($s, 0, 3)); /** @var int $s1 */ $s1 = 2097151 & (self::load_4(self::substr($s, 2, 4)) >> 5); /** @var int $s2 */ $s2 = 2097151 & (self::load_3(self::substr($s, 5, 3)) >> 2); /** @var int $s3 */ $s3 = 2097151 & (self::load_4(self::substr($s, 7, 4)) >> 7); /** @var int $s4 */ $s4 = 2097151 & (self::load_4(self::substr($s, 10, 4)) >> 4); /** @var int $s5 */ $s5 = 2097151 & (self::load_3(self::substr($s, 13, 3)) >> 1); /** @var int $s6 */ $s6 = 2097151 & (self::load_4(self::substr($s, 15, 4)) >> 6); /** @var int $s7 */ $s7 = 2097151 & (self::load_3(self::substr($s, 18, 4)) >> 3); /** @var int $s8 */ $s8 = 2097151 & self::load_3(self::substr($s, 21, 3)); /** @var int $s9 */ $s9 = 2097151 & (self::load_4(self::substr($s, 23, 4)) >> 5); /** @var int $s10 */ $s10 = 2097151 & (self::load_3(self::substr($s, 26, 3)) >> 2); /** @var int $s11 */ $s11 = 2097151 & (self::load_4(self::substr($s, 28, 4)) >> 7); /** @var int $s12 */ $s12 = 2097151 & (self::load_4(self::substr($s, 31, 4)) >> 4); /** @var int $s13 */ $s13 = 2097151 & (self::load_3(self::substr($s, 34, 3)) >> 1); /** @var int $s14 */ $s14 = 2097151 & (self::load_4(self::substr($s, 36, 4)) >> 6); /** @var int $s15 */ $s15 = 2097151 & (self::load_3(self::substr($s, 39, 4)) >> 3); /** @var int $s16 */ $s16 = 2097151 & self::load_3(self::substr($s, 42, 3)); /** @var int $s17 */ $s17 = 2097151 & (self::load_4(self::substr($s, 44, 4)) >> 5); /** @var int $s18 */ $s18 = 2097151 & (self::load_3(self::substr($s, 47, 3)) >> 2); /** @var int $s19 */ $s19 = 2097151 & (self::load_4(self::substr($s, 49, 4)) >> 7); /** @var int $s20 */ $s20 = 2097151 & (self::load_4(self::substr($s, 52, 4)) >> 4); /** @var int $s21 */ $s21 = 2097151 & (self::load_3(self::substr($s, 55, 3)) >> 1); /** @var int $s22 */ $s22 = 2097151 & (self::load_4(self::substr($s, 57, 4)) >> 6); /** @var int $s23 */ $s23 = (self::load_4(self::substr($s, 60, 4)) >> 3); $s11 += self::mul($s23, 666643, 20); $s12 += self::mul($s23, 470296, 19); $s13 += self::mul($s23, 654183, 20); $s14 -= self::mul($s23, 997805, 20); $s15 += self::mul($s23, 136657, 18); $s16 -= self::mul($s23, 683901, 20); $s10 += self::mul($s22, 666643, 20); $s11 += self::mul($s22, 470296, 19); $s12 += self::mul($s22, 654183, 20); $s13 -= self::mul($s22, 997805, 20); $s14 += self::mul($s22, 136657, 18); $s15 -= self::mul($s22, 683901, 20); $s9 += self::mul($s21, 666643, 20); $s10 += self::mul($s21, 470296, 19); $s11 += self::mul($s21, 654183, 20); $s12 -= self::mul($s21, 997805, 20); $s13 += self::mul($s21, 136657, 18); $s14 -= self::mul($s21, 683901, 20); $s8 += self::mul($s20, 666643, 20); $s9 += self::mul($s20, 470296, 19); $s10 += self::mul($s20, 654183, 20); $s11 -= self::mul($s20, 997805, 20); $s12 += self::mul($s20, 136657, 18); $s13 -= self::mul($s20, 683901, 20); $s7 += self::mul($s19, 666643, 20); $s8 += self::mul($s19, 470296, 19); $s9 += self::mul($s19, 654183, 20); $s10 -= self::mul($s19, 997805, 20); $s11 += self::mul($s19, 136657, 18); $s12 -= self::mul($s19, 683901, 20); $s6 += self::mul($s18, 666643, 20); $s7 += self::mul($s18, 470296, 19); $s8 += self::mul($s18, 654183, 20); $s9 -= self::mul($s18, 997805, 20); $s10 += self::mul($s18, 136657, 18); $s11 -= self::mul($s18, 683901, 20); /** @var int $carry6 */ $carry6 = ($s6 + (1 << 20)) >> 21; $s7 += $carry6; $s6 -= $carry6 << 21; /** @var int $carry8 */ $carry8 = ($s8 + (1 << 20)) >> 21; $s9 += $carry8; $s8 -= $carry8 << 21; /** @var int $carry10 */ $carry10 = ($s10 + (1 << 20)) >> 21; $s11 += $carry10; $s10 -= $carry10 << 21; /** @var int $carry12 */ $carry12 = ($s12 + (1 << 20)) >> 21; $s13 += $carry12; $s12 -= $carry12 << 21; /** @var int $carry14 */ $carry14 = ($s14 + (1 << 20)) >> 21; $s15 += $carry14; $s14 -= $carry14 << 21; /** @var int $carry16 */ $carry16 = ($s16 + (1 << 20)) >> 21; $s17 += $carry16; $s16 -= $carry16 << 21; /** @var int $carry7 */ $carry7 = ($s7 + (1 << 20)) >> 21; $s8 += $carry7; $s7 -= $carry7 << 21; /** @var int $carry9 */ $carry9 = ($s9 + (1 << 20)) >> 21; $s10 += $carry9; $s9 -= $carry9 << 21; /** @var int $carry11 */ $carry11 = ($s11 + (1 << 20)) >> 21; $s12 += $carry11; $s11 -= $carry11 << 21; /** @var int $carry13 */ $carry13 = ($s13 + (1 << 20)) >> 21; $s14 += $carry13; $s13 -= $carry13 << 21; /** @var int $carry15 */ $carry15 = ($s15 + (1 << 20)) >> 21; $s16 += $carry15; $s15 -= $carry15 << 21; $s5 += self::mul($s17, 666643, 20); $s6 += self::mul($s17, 470296, 19); $s7 += self::mul($s17, 654183, 20); $s8 -= self::mul($s17, 997805, 20); $s9 += self::mul($s17, 136657, 18); $s10 -= self::mul($s17, 683901, 20); $s4 += self::mul($s16, 666643, 20); $s5 += self::mul($s16, 470296, 19); $s6 += self::mul($s16, 654183, 20); $s7 -= self::mul($s16, 997805, 20); $s8 += self::mul($s16, 136657, 18); $s9 -= self::mul($s16, 683901, 20); $s3 += self::mul($s15, 666643, 20); $s4 += self::mul($s15, 470296, 19); $s5 += self::mul($s15, 654183, 20); $s6 -= self::mul($s15, 997805, 20); $s7 += self::mul($s15, 136657, 18); $s8 -= self::mul($s15, 683901, 20); $s2 += self::mul($s14, 666643, 20); $s3 += self::mul($s14, 470296, 19); $s4 += self::mul($s14, 654183, 20); $s5 -= self::mul($s14, 997805, 20); $s6 += self::mul($s14, 136657, 18); $s7 -= self::mul($s14, 683901, 20); $s1 += self::mul($s13, 666643, 20); $s2 += self::mul($s13, 470296, 19); $s3 += self::mul($s13, 654183, 20); $s4 -= self::mul($s13, 997805, 20); $s5 += self::mul($s13, 136657, 18); $s6 -= self::mul($s13, 683901, 20); $s0 += self::mul($s12, 666643, 20); $s1 += self::mul($s12, 470296, 19); $s2 += self::mul($s12, 654183, 20); $s3 -= self::mul($s12, 997805, 20); $s4 += self::mul($s12, 136657, 18); $s5 -= self::mul($s12, 683901, 20); $s12 = 0; /** @var int $carry0 */ $carry0 = ($s0 + (1 << 20)) >> 21; $s1 += $carry0; $s0 -= $carry0 << 21; /** @var int $carry2 */ $carry2 = ($s2 + (1 << 20)) >> 21; $s3 += $carry2; $s2 -= $carry2 << 21; /** @var int $carry4 */ $carry4 = ($s4 + (1 << 20)) >> 21; $s5 += $carry4; $s4 -= $carry4 << 21; /** @var int $carry6 */ $carry6 = ($s6 + (1 << 20)) >> 21; $s7 += $carry6; $s6 -= $carry6 << 21; /** @var int $carry8 */ $carry8 = ($s8 + (1 << 20)) >> 21; $s9 += $carry8; $s8 -= $carry8 << 21; /** @var int $carry10 */ $carry10 = ($s10 + (1 << 20)) >> 21; $s11 += $carry10; $s10 -= $carry10 << 21; /** @var int $carry1 */ $carry1 = ($s1 + (1 << 20)) >> 21; $s2 += $carry1; $s1 -= $carry1 << 21; /** @var int $carry3 */ $carry3 = ($s3 + (1 << 20)) >> 21; $s4 += $carry3; $s3 -= $carry3 << 21; /** @var int $carry5 */ $carry5 = ($s5 + (1 << 20)) >> 21; $s6 += $carry5; $s5 -= $carry5 << 21; /** @var int $carry7 */ $carry7 = ($s7 + (1 << 20)) >> 21; $s8 += $carry7; $s7 -= $carry7 << 21; /** @var int $carry9 */ $carry9 = ($s9 + (1 << 20)) >> 21; $s10 += $carry9; $s9 -= $carry9 << 21; /** @var int $carry11 */ $carry11 = ($s11 + (1 << 20)) >> 21; $s12 += $carry11; $s11 -= $carry11 << 21; $s0 += self::mul($s12, 666643, 20); $s1 += self::mul($s12, 470296, 19); $s2 += self::mul($s12, 654183, 20); $s3 -= self::mul($s12, 997805, 20); $s4 += self::mul($s12, 136657, 18); $s5 -= self::mul($s12, 683901, 20); $s12 = 0; /** @var int $carry0 */ $carry0 = $s0 >> 21; $s1 += $carry0; $s0 -= $carry0 << 21; /** @var int $carry1 */ $carry1 = $s1 >> 21; $s2 += $carry1; $s1 -= $carry1 << 21; /** @var int $carry2 */ $carry2 = $s2 >> 21; $s3 += $carry2; $s2 -= $carry2 << 21; /** @var int $carry3 */ $carry3 = $s3 >> 21; $s4 += $carry3; $s3 -= $carry3 << 21; /** @var int $carry4 */ $carry4 = $s4 >> 21; $s5 += $carry4; $s4 -= $carry4 << 21; /** @var int $carry5 */ $carry5 = $s5 >> 21; $s6 += $carry5; $s5 -= $carry5 << 21; /** @var int $carry6 */ $carry6 = $s6 >> 21; $s7 += $carry6; $s6 -= $carry6 << 21; /** @var int $carry7 */ $carry7 = $s7 >> 21; $s8 += $carry7; $s7 -= $carry7 << 21; /** @var int $carry8 */ $carry8 = $s8 >> 21; $s9 += $carry8; $s8 -= $carry8 << 21; /** @var int $carry9 */ $carry9 = $s9 >> 21; $s10 += $carry9; $s9 -= $carry9 << 21; /** @var int $carry10 */ $carry10 = $s10 >> 21; $s11 += $carry10; $s10 -= $carry10 << 21; /** @var int $carry11 */ $carry11 = $s11 >> 21; $s12 += $carry11; $s11 -= $carry11 << 21; $s0 += self::mul($s12, 666643, 20); $s1 += self::mul($s12, 470296, 19); $s2 += self::mul($s12, 654183, 20); $s3 -= self::mul($s12, 997805, 20); $s4 += self::mul($s12, 136657, 18); $s5 -= self::mul($s12, 683901, 20); /** @var int $carry0 */ $carry0 = $s0 >> 21; $s1 += $carry0; $s0 -= $carry0 << 21; /** @var int $carry1 */ $carry1 = $s1 >> 21; $s2 += $carry1; $s1 -= $carry1 << 21; /** @var int $carry2 */ $carry2 = $s2 >> 21; $s3 += $carry2; $s2 -= $carry2 << 21; /** @var int $carry3 */ $carry3 = $s3 >> 21; $s4 += $carry3; $s3 -= $carry3 << 21; /** @var int $carry4 */ $carry4 = $s4 >> 21; $s5 += $carry4; $s4 -= $carry4 << 21; /** @var int $carry5 */ $carry5 = $s5 >> 21; $s6 += $carry5; $s5 -= $carry5 << 21; /** @var int $carry6 */ $carry6 = $s6 >> 21; $s7 += $carry6; $s6 -= $carry6 << 21; /** @var int $carry7 */ $carry7 = $s7 >> 21; $s8 += $carry7; $s7 -= $carry7 << 21; /** @var int $carry8 */ $carry8 = $s8 >> 21; $s9 += $carry8; $s8 -= $carry8 << 21; /** @var int $carry9 */ $carry9 = $s9 >> 21; $s10 += $carry9; $s9 -= $carry9 << 21; /** @var int $carry10 */ $carry10 = $s10 >> 21; $s11 += $carry10; $s10 -= $carry10 << 21; /** * @var array<int, int> */ $arr = array( (int) ($s0 >> 0), (int) ($s0 >> 8), (int) (($s0 >> 16) | $s1 << 5), (int) ($s1 >> 3), (int) ($s1 >> 11), (int) (($s1 >> 19) | $s2 << 2), (int) ($s2 >> 6), (int) (($s2 >> 14) | $s3 << 7), (int) ($s3 >> 1), (int) ($s3 >> 9), (int) (($s3 >> 17) | $s4 << 4), (int) ($s4 >> 4), (int) ($s4 >> 12), (int) (($s4 >> 20) | $s5 << 1), (int) ($s5 >> 7), (int) (($s5 >> 15) | $s6 << 6), (int) ($s6 >> 2), (int) ($s6 >> 10), (int) (($s6 >> 18) | $s7 << 3), (int) ($s7 >> 5), (int) ($s7 >> 13), (int) ($s8 >> 0), (int) ($s8 >> 8), (int) (($s8 >> 16) | $s9 << 5), (int) ($s9 >> 3), (int) ($s9 >> 11), (int) (($s9 >> 19) | $s10 << 2), (int) ($s10 >> 6), (int) (($s10 >> 14) | $s11 << 7), (int) ($s11 >> 1), (int) ($s11 >> 9), (int) $s11 >> 17 ); return self::intArrayToString($arr); }