Make WordPress Core

Changeset 52988


Ignore:
Timestamp:
03/24/2022 03:18:31 PM (3 years ago)
Author:
SergeyBiryukov
Message:

Upgrade/Install: Update sodium_compat to v1.17.1.

The latest version of sodium_compat includes further improvements for PHP 8.1 compatibility.

Release notes:
https://github.com/paragonie/sodium_compat/releases/tag/v1.17.1

A full list of changes in this update can be found on GitHub:
https://github.com/paragonie/sodium_compat/compare/v1.17.0...v1.17.1

Follow-up to [49741], [51002], [51591].

Props jrf, paragoninitiativeenterprises.
Fixes #55453.

Location:
trunk/src/wp-includes/sodium_compat/src
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/sodium_compat/src/Compat.php

    r51591 r52988  
    35343534            }
    35353535        }
     3536        /** @var positive-int $numBytes */
    35363537        if (self::use_fallback('randombytes_buf')) {
    35373538            return (string) call_user_func('\\Sodium\\randombytes_buf', $numBytes);
     3539        }
     3540        if ($numBytes < 0) {
     3541            throw new SodiumException("Number of bytes must be a positive integer");
    35383542        }
    35393543        return random_bytes($numBytes);
  • trunk/src/wp-includes/sodium_compat/src/Core/BLAKE2b.php

    r51002 r52988  
    5151    public static function new64($high, $low)
    5252    {
     53        if (PHP_INT_SIZE === 4) {
     54            throw new SodiumException("Error, use 32-bit");
     55        }
    5356        $i64 = new SplFixedArray(2);
    5457        $i64[0] = $high & 0xffffffff;
     
    8790    protected static function add64($x, $y)
    8891    {
     92        if (PHP_INT_SIZE === 4) {
     93            throw new SodiumException("Error, use 32-bit");
     94        }
    8995        $l = ($x[1] + $y[1]) & 0xffffffff;
    9096        return self::new64(
     
    120126    protected static function xor64(SplFixedArray $x, SplFixedArray $y)
    121127    {
     128        if (PHP_INT_SIZE === 4) {
     129            throw new SodiumException("Error, use 32-bit");
     130        }
    122131        if (!is_numeric($x[0])) {
    123132            throw new SodiumException('x[0] is not an integer');
     
    148157    public static function rotr64($x, $c)
    149158    {
     159        if (PHP_INT_SIZE === 4) {
     160            throw new SodiumException("Error, use 32-bit");
     161        }
    150162        if ($c >= 64) {
    151163            $c %= 64;
     
    165177        $c = 64 - $c;
    166178
     179        /** @var int $c */
    167180        if ($c < 32) {
    168             /** @var int $h0 */
    169181            $h0 = ((int) ($x[0]) << $c) | (
    170182                (
     
    174186                ) >> (32 - $c)
    175187            );
    176             /** @var int $l0 */
    177188            $l0 = (int) ($x[1]) << $c;
    178189        } else {
    179             /** @var int $h0 */
    180190            $h0 = (int) ($x[1]) << ($c - 32);
    181191        }
     
    185195
    186196        if ($c1 < 32) {
    187             /** @var int $h1 */
    188197            $h1 = (int) ($x[0]) >> $c1;
    189             /** @var int $l1 */
    190198            $l1 = ((int) ($x[1]) >> $c1) | ((int) ($x[0]) & ((1 << $c1) - 1)) << (32 - $c1);
    191199        } else {
    192             /** @var int $l1 */
    193200            $l1 = (int) ($x[0]) >> ($c1 - 32);
    194201        }
  • trunk/src/wp-includes/sodium_compat/src/Core/Curve25519.php

    r51591 r52988  
    343343        ParagonIE_Sodium_Core_Curve25519_Fe $g
    344344    ) {
     345        // Ensure limbs aren't oversized.
     346        $f = self::fe_normalize($f);
     347        $g = self::fe_normalize($g);
    345348        $f0 = $f[0];
    346349        $f1 = $f[1];
     
    477480        $f9g8_19 = self::mul($g8_19, $f9, 25);
    478481        $f9g9_38 = self::mul($g9_19, $f9_2, 26);
     482
    479483        $h0 = $f0g0 + $f1g9_38 + $f2g8_19 + $f3g7_38 + $f4g6_19 + $f5g5_38 + $f6g4_19 + $f7g3_38 + $f8g2_19 + $f9g1_38;
    480484        $h1 = $f0g1 + $f1g0    + $f2g9_19 + $f3g8_19 + $f4g7_19 + $f5g6_19 + $f6g5_19 + $f7g4_19 + $f8g3_19 + $f9g2_19;
     
    531535        $h0 -= $carry0 << 26;
    532536
    533         return ParagonIE_Sodium_Core_Curve25519_Fe::fromArray(
    534             array(
    535                 (int) $h0,
    536                 (int) $h1,
    537                 (int) $h2,
    538                 (int) $h3,
    539                 (int) $h4,
    540                 (int) $h5,
    541                 (int) $h6,
    542                 (int) $h7,
    543                 (int) $h8,
    544                 (int) $h9
     537        return self::fe_normalize(
     538            ParagonIE_Sodium_Core_Curve25519_Fe::fromArray(
     539                array(
     540                    (int) $h0,
     541                    (int) $h1,
     542                    (int) $h2,
     543                    (int) $h3,
     544                    (int) $h4,
     545                    (int) $h5,
     546                    (int) $h6,
     547                    (int) $h7,
     548                    (int) $h8,
     549                    (int) $h9
     550                )
    545551            )
    546552        );
     
    564570            $h[$i] = -$f[$i];
    565571        }
    566         return $h;
     572        return self::fe_normalize($h);
    567573    }
    568574
     
    579585    public static function fe_sq(ParagonIE_Sodium_Core_Curve25519_Fe $f)
    580586    {
     587        $f = self::fe_normalize($f);
    581588        $f0 = (int) $f[0];
    582589        $f1 = (int) $f[1];
     
    712719        $h0 -= $carry0 << 26;
    713720
    714         return ParagonIE_Sodium_Core_Curve25519_Fe::fromArray(
    715             array(
    716                 (int) $h0,
    717                 (int) $h1,
    718                 (int) $h2,
    719                 (int) $h3,
    720                 (int) $h4,
    721                 (int) $h5,
    722                 (int) $h6,
    723                 (int) $h7,
    724                 (int) $h8,
    725                 (int) $h9
     721        return self::fe_normalize(
     722            ParagonIE_Sodium_Core_Curve25519_Fe::fromArray(
     723                array(
     724                    (int) $h0,
     725                    (int) $h1,
     726                    (int) $h2,
     727                    (int) $h3,
     728                    (int) $h4,
     729                    (int) $h5,
     730                    (int) $h6,
     731                    (int) $h7,
     732                    (int) $h8,
     733                    (int) $h9
     734                )
    726735            )
    727736        );
     
    741750    public static function fe_sq2(ParagonIE_Sodium_Core_Curve25519_Fe $f)
    742751    {
     752        $f = self::fe_normalize($f);
    743753        $f0 = (int) $f[0];
    744754        $f1 = (int) $f[1];
     
    875885        $h0 -= $carry0 << 26;
    876886
    877         return ParagonIE_Sodium_Core_Curve25519_Fe::fromArray(
    878             array(
    879                 (int) $h0,
    880                 (int) $h1,
    881                 (int) $h2,
    882                 (int) $h3,
    883                 (int) $h4,
    884                 (int) $h5,
    885                 (int) $h6,
    886                 (int) $h7,
    887                 (int) $h8,
    888                 (int) $h9
     887        return self::fe_normalize(
     888            ParagonIE_Sodium_Core_Curve25519_Fe::fromArray(
     889                array(
     890                    (int) $h0,
     891                    (int) $h1,
     892                    (int) $h2,
     893                    (int) $h3,
     894                    (int) $h4,
     895                    (int) $h5,
     896                    (int) $h6,
     897                    (int) $h7,
     898                    (int) $h8,
     899                    (int) $h9
     900                )
    889901            )
    890902        );
     
    959971    public static function fe_pow22523(ParagonIE_Sodium_Core_Curve25519_Fe $z)
    960972    {
     973        $z = self::fe_normalize($z);
    961974        # fe_sq(t0, z);
    962975        # fe_sq(t1, t0);
     
    10861099    public static function fe_sub(ParagonIE_Sodium_Core_Curve25519_Fe $f, ParagonIE_Sodium_Core_Curve25519_Fe $g)
    10871100    {
    1088         return ParagonIE_Sodium_Core_Curve25519_Fe::fromArray(
    1089             array(
    1090                 (int) ($f[0] - $g[0]),
    1091                 (int) ($f[1] - $g[1]),
    1092                 (int) ($f[2] - $g[2]),
    1093                 (int) ($f[3] - $g[3]),
    1094                 (int) ($f[4] - $g[4]),
    1095                 (int) ($f[5] - $g[5]),
    1096                 (int) ($f[6] - $g[6]),
    1097                 (int) ($f[7] - $g[7]),
    1098                 (int) ($f[8] - $g[8]),
    1099                 (int) ($f[9] - $g[9])
     1101        return self::fe_normalize(
     1102            ParagonIE_Sodium_Core_Curve25519_Fe::fromArray(
     1103                array(
     1104                    (int) ($f[0] - $g[0]),
     1105                    (int) ($f[1] - $g[1]),
     1106                    (int) ($f[2] - $g[2]),
     1107                    (int) ($f[3] - $g[3]),
     1108                    (int) ($f[4] - $g[4]),
     1109                    (int) ($f[5] - $g[5]),
     1110                    (int) ($f[6] - $g[6]),
     1111                    (int) ($f[7] - $g[7]),
     1112                    (int) ($f[8] - $g[8]),
     1113                    (int) ($f[9] - $g[9])
     1114                )
    11001115            )
    11011116        );
     
    25362551        $s21 = 2097151 & (self::load_3(self::substr($s, 55, 3)) >> 1);
    25372552        $s22 = 2097151 & (self::load_4(self::substr($s, 57, 4)) >> 6);
    2538         $s23 = (self::load_4(self::substr($s, 60, 4)) >> 3);
     2553        $s23 = 0x1fffffff & (self::load_4(self::substr($s, 60, 4)) >> 3);
    25392554
    25402555        $s11 += self::mul($s23,  666643, 20);
     
    37833798        return self::intArrayToString($s_);
    37843799    }
     3800
     3801    /**
     3802     * Ensure limbs are less than 28 bits long to prevent float promotion.
     3803     *
     3804     * This uses a constant-time conditional swap under the hood.
     3805     *
     3806     * @param ParagonIE_Sodium_Core_Curve25519_Fe $f
     3807     * @return ParagonIE_Sodium_Core_Curve25519_Fe
     3808     */
     3809    public static function fe_normalize(ParagonIE_Sodium_Core_Curve25519_Fe $f)
     3810    {
     3811        $x = (PHP_INT_SIZE << 3) - 1; // 31 or 63
     3812
     3813        $g = self::fe_copy($f);
     3814        for ($i = 0; $i < 10; ++$i) {
     3815            $mask = -(($g[$i] >> $x) & 1);
     3816
     3817            /*
     3818             * Get two candidate normalized values for $g[$i], depending on the sign of $g[$i]:
     3819             */
     3820            $a = $g[$i] & 0x7ffffff;
     3821            $b = -((-$g[$i]) & 0x7ffffff);
     3822
     3823            /*
     3824             * Return the appropriate candidate value, based on the sign of the original input:
     3825             *
     3826             * The following is equivalent to this ternary:
     3827             *
     3828             * $g[$i] = (($g[$i] >> $x) & 1) ? $a : $b;
     3829             *
     3830             * Except what's written doesn't contain timing leaks.
     3831             */
     3832            $g[$i] = ($a ^ (($a ^ $b) & $mask));
     3833        }
     3834        return $g;
     3835    }
    37853836}
  • trunk/src/wp-includes/sodium_compat/src/Core/Util.php

    r51591 r52988  
    459459        /** @var array<int, int> $unpacked */
    460460        $unpacked = unpack('V', $string);
    461         return (int) ($unpacked[1] & 0xffffffff);
     461        return (int) $unpacked[1];
    462462    }
    463463
     
    614614        $high = 0;
    615615        /** @var int $low */
    616         $low = $num & 0xffffffff;
     616        if (PHP_INT_SIZE === 4) {
     617            $low = (int) $num;
     618        } else {
     619            $low = $num & 0xffffffff;
     620        }
    617621
    618622        if ((+(abs($num))) >= 1) {
  • trunk/src/wp-includes/sodium_compat/src/Core32/Curve25519.php

    r46586 r52988  
    326326        $f[9] = $f[9]->subInt64($carry9->shiftLeft(25));
    327327
    328         /** @var int $h0 */
    329328        $h0 = $f[0]->toInt32()->toInt();
    330         /** @var int $h1 */
    331329        $h1 = $f[1]->toInt32()->toInt();
    332         /** @var int $h2 */
    333330        $h2 = $f[2]->toInt32()->toInt();
    334         /** @var int $h3 */
    335331        $h3 = $f[3]->toInt32()->toInt();
    336         /** @var int $h4 */
    337332        $h4 = $f[4]->toInt32()->toInt();
    338         /** @var int $h5 */
    339333        $h5 = $f[5]->toInt32()->toInt();
    340         /** @var int $h6 */
    341334        $h6 = $f[6]->toInt32()->toInt();
    342         /** @var int $h7 */
    343335        $h7 = $f[7]->toInt32()->toInt();
    344         /** @var int $h8 */
    345336        $h8 = $f[8]->toInt32()->toInt();
    346         /** @var int $h9 */
    347337        $h9 = $f[9]->toInt32()->toInt();
    348338
     
    419409            $zero = str_repeat("\x00", 32);
    420410        }
    421         /** @var string $str */
    422411        $str = self::fe_tobytes($f);
    423412        /** @var string $zero */
     
    498487        $g8_19 = $g8->mulInt(19, 5);
    499488        $g9_19 = $g9->mulInt(19, 5);
    500         /** @var ParagonIE_Sodium_Core32_Int64 $f1_2 */
    501489        $f1_2 = $f1->shiftLeft(1);
    502         /** @var ParagonIE_Sodium_Core32_Int64 $f3_2 */
    503490        $f3_2 = $f3->shiftLeft(1);
    504         /** @var ParagonIE_Sodium_Core32_Int64 $f5_2 */
    505491        $f5_2 = $f5->shiftLeft(1);
    506         /** @var ParagonIE_Sodium_Core32_Int64 $f7_2 */
    507492        $f7_2 = $f7->shiftLeft(1);
    508         /** @var ParagonIE_Sodium_Core32_Int64 $f9_2 */
    509493        $f9_2 = $f9->shiftLeft(1);
    510494        $f0g0    = $f0->mulInt64($g0, 27);
     
    776760    public static function fe_sq(ParagonIE_Sodium_Core32_Curve25519_Fe $f)
    777761    {
    778         /** @var ParagonIE_Sodium_Core32_Int64 $f0 */
    779762        $f0 = $f[0]->toInt64();
    780         /** @var ParagonIE_Sodium_Core32_Int64 $f1 */
    781763        $f1 = $f[1]->toInt64();
    782         /** @var ParagonIE_Sodium_Core32_Int64 $f2 */
    783764        $f2 = $f[2]->toInt64();
    784         /** @var ParagonIE_Sodium_Core32_Int64 $f3 */
    785765        $f3 = $f[3]->toInt64();
    786         /** @var ParagonIE_Sodium_Core32_Int64 $f4 */
    787766        $f4 = $f[4]->toInt64();
    788         /** @var ParagonIE_Sodium_Core32_Int64 $f5 */
    789767        $f5 = $f[5]->toInt64();
    790         /** @var ParagonIE_Sodium_Core32_Int64 $f6 */
    791768        $f6 = $f[6]->toInt64();
    792         /** @var ParagonIE_Sodium_Core32_Int64 $f7 */
    793769        $f7 = $f[7]->toInt64();
    794         /** @var ParagonIE_Sodium_Core32_Int64 $f8 */
    795770        $f8 = $f[8]->toInt64();
    796         /** @var ParagonIE_Sodium_Core32_Int64 $f9 */
    797771        $f9 = $f[9]->toInt64();
    798772
    799         /** @var ParagonIE_Sodium_Core32_Int64 $f0_2 */
    800773        $f0_2 = $f0->shiftLeft(1);
    801774        $f1_2 = $f1->shiftLeft(1);
     
    811784        $f8_19 = $f8->mulInt(19, 5);
    812785        $f9_38 = $f9->mulInt(38, 6);
    813         /** @var ParagonIE_Sodium_Core32_Int64 $f0f0*/
     786
    814787        $f0f0    = $f0->mulInt64($f0, 28);
    815788        $f0f1_2  = $f0_2->mulInt64($f1, 28);
     
    980953    public static function fe_sq2(ParagonIE_Sodium_Core32_Curve25519_Fe $f)
    981954    {
    982         /** @var ParagonIE_Sodium_Core32_Int64 $f0 */
    983955        $f0 = $f[0]->toInt64();
    984         /** @var ParagonIE_Sodium_Core32_Int64 $f1 */
    985956        $f1 = $f[1]->toInt64();
    986         /** @var ParagonIE_Sodium_Core32_Int64 $f2 */
    987957        $f2 = $f[2]->toInt64();
    988         /** @var ParagonIE_Sodium_Core32_Int64 $f3 */
    989958        $f3 = $f[3]->toInt64();
    990         /** @var ParagonIE_Sodium_Core32_Int64 $f4 */
    991959        $f4 = $f[4]->toInt64();
    992         /** @var ParagonIE_Sodium_Core32_Int64 $f5 */
    993960        $f5 = $f[5]->toInt64();
    994         /** @var ParagonIE_Sodium_Core32_Int64 $f6 */
    995961        $f6 = $f[6]->toInt64();
    996         /** @var ParagonIE_Sodium_Core32_Int64 $f7 */
    997962        $f7 = $f[7]->toInt64();
    998         /** @var ParagonIE_Sodium_Core32_Int64 $f8 */
    999963        $f8 = $f[8]->toInt64();
    1000         /** @var ParagonIE_Sodium_Core32_Int64 $f9 */
    1001964        $f9 = $f[9]->toInt64();
    1002965
     
    14801443        static $d = null;
    14811444        if (!$d) {
    1482             /** @var ParagonIE_Sodium_Core32_Curve25519_Fe $d */
    14831445            $d = ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray(
    14841446                array(
     
    14961458            );
    14971459        }
     1460        /** @var ParagonIE_Sodium_Core32_Curve25519_Fe $d */
    14981461
    14991462        # fe_frombytes(h->Y,s);
     
    18341797    public static function equal($b, $c)
    18351798    {
    1836         return (int) ((($b ^ $c) - 1 & 0xffffffff) >> 31);
     1799        $b0 = $b & 0xffff;
     1800        $b1 = ($b >> 16) & 0xffff;
     1801        $c0 = $c & 0xffff;
     1802        $c1 = ($c >> 16) & 0xffff;
     1803
     1804        $d0 = (($b0 ^ $c0) - 1) >> 31;
     1805        $d1 = (($b1 ^ $c1) - 1) >> 31;
     1806        return ($d0 & $d1) & 1;
    18371807    }
    18381808
     
    18511821        }
    18521822        /** @var string $char */
    1853         /** @var int $x */
    18541823        $x = self::chrToInt(self::substr($char, 0, 1));
    18551824        return (int) ($x >> 31);
     
    19571926
    19581927        $bnegative = self::negative($b);
    1959         /** @var int $babs */
    19601928        $babs = $b - (((-$bnegative) & $b) << 1);
    19611929
     
    19651933                $t,
    19661934                $base[$pos][$i],
    1967                 self::equal($babs, $i + 1)
     1935                -self::equal($babs, $i + 1)
    19681936            );
    19691937        }
     
    22312199        for ($i = 0; $i < 63; ++$i) {
    22322200            $e[$i] += $carry;
    2233             /** @var int $carry */
    22342201            $carry = $e[$i] + 8;
    2235             /** @var int $carry */
    22362202            $carry >>= 4;
    22372203            $e[$i] -= $carry << 4;
     
    31413107    public static function ge_mul_l(ParagonIE_Sodium_Core32_Curve25519_Ge_P3 $A)
    31423108    {
    3143         /** @var array<int, int> $aslide */
    31443109        $aslide = array(
    31453110            13, 0, 0, 0, 0, -1, 0, 0, 0, 0, -11, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0,
  • trunk/src/wp-includes/sodium_compat/src/Core32/Curve25519/Fe.php

    r51591 r52988  
    4949        } else {
    5050            for ($i = 0; $i < $count; ++$i) {
     51                if (!($array[$i] instanceof ParagonIE_Sodium_Core32_Int32)) {
     52                    throw new TypeError('Expected ParagonIE_Sodium_Core32_Int32');
     53                }
    5154                $array[$i]->overflow = 0;
    5255                $obj->offsetSet($i, $array[$i]);
  • trunk/src/wp-includes/sodium_compat/src/Core32/Int32.php

    r46586 r52988  
    139139    {
    140140        /** @var int $hi */
    141         $hi = ($m >> 16) & 0xffff;
     141        $hi = ((int) $m >> 16);
     142        $hi &= 0xffff;
    142143        /** @var int $lo */
    143         $lo = ($m & 0xffff);
     144        $lo = ((int) $m) & 0xffff;
    144145        return new ParagonIE_Sodium_Core32_Int32(
    145146            array(
     
    169170                $b_j = $b[$j];
    170171                $product = ($a_i * $b_j) + $r[$i + $j];
    171                 $carry = ($product >> $baseLog2 & 0xffff);
    172                 $r[$i + $j] = ($product - (int) ($carry * $base)) & 0xffff;
     172                $carry = ((int) $product >> $baseLog2 & 0xffff);
     173                $r[$i + $j] = ((int) $product - (int) ($carry * $base)) & 0xffff;
    173174                $r[$i + $j + 1] += $carry;
    174175            }
  • trunk/src/wp-includes/sodium_compat/src/Core32/Int64.php

    r46586 r52988  
    338338            for ($j = 0; $j < $a_l; ++$j) {
    339339                $b_j = $b[$j];
    340                 $product = ($a_i * $b_j) + $r[$i + $j];
    341                 $carry = ($product >> $baseLog2 & 0xffff);
    342                 $r[$i + $j] = ($product - (int) ($carry * $base)) & 0xffff;
     340                $product = (($a_i * $b_j) + $r[$i + $j]);
     341                $carry = (((int) $product >> $baseLog2) & 0xffff);
     342                $r[$i + $j] = ((int) $product - (int) ($carry * $base)) & 0xffff;
    343343                $r[$i + $j + 1] += $carry;
    344344            }
  • trunk/src/wp-includes/sodium_compat/src/Core32/Poly1305/State.php

    r46858 r52988  
    420420
    421421        /** @var int $mask */
    422         $mask = (~$mask) & 0xffffffff;
     422        $mask = ~$mask;
    423423
    424424        $h0 = $h0->mask($mask)->orInt32($g0);
  • trunk/src/wp-includes/sodium_compat/src/Core32/XChaCha20.php

    r46586 r52988  
    6262        );
    6363    }
     64
     65    /**
     66     * @internal You should not use this directly from another application
     67     *
     68     * @param string $message
     69     * @param string $nonce
     70     * @param string $key
     71     * @param string $ic
     72     * @return string
     73     * @throws SodiumException
     74     * @throws TypeError
     75     */
     76    public static function ietfStreamXorIc($message, $nonce = '', $key = '', $ic = '')
     77    {
     78        return self::encryptBytes(
     79            new ParagonIE_Sodium_Core32_ChaCha20_IetfCtx(
     80                self::hChaCha20(self::substr($nonce, 0, 16), $key),
     81                "\x00\x00\x00\x00" . self::substr($nonce, 16, 8),
     82                $ic
     83            ),
     84            $message
     85        );
     86    }
    6487}
  • trunk/src/wp-includes/sodium_compat/src/File.php

    r51002 r52988  
    11551155    private static function sign_core32($filePath, $secretKey)
    11561156    {
    1157         /** @var int|bool $size */
    11581157        $size = filesize($filePath);
    11591158        if (!is_int($size)) {
    11601159            throw new SodiumException('Could not obtain the file size');
    11611160        }
    1162         /** @var int $size */
    1163 
    1164         /** @var resource|bool $fp */
     1161
    11651162        $fp = fopen($filePath, 'rb');
    11661163        if (!is_resource($fp)) {
    11671164            throw new SodiumException('Could not open input file for reading');
    11681165        }
    1169         /** @var resource $fp */
    11701166
    11711167        /** @var string $az */
     
    11801176        $hs = self::updateHashWithFile($hs, $fp, $size);
    11811177
    1182         /** @var string $nonceHash */
    11831178        $nonceHash = hash_final($hs, true);
    1184 
    1185         /** @var string $pk */
    11861179        $pk = self::substr($secretKey, 32, 32);
    1187 
    1188         /** @var string $nonce */
    11891180        $nonce = ParagonIE_Sodium_Core32_Ed25519::sc_reduce($nonceHash) . self::substr($nonceHash, 32);
    1190 
    1191         /** @var string $sig */
    11921181        $sig = ParagonIE_Sodium_Core32_Ed25519::ge_p3_tobytes(
    11931182            ParagonIE_Sodium_Core32_Ed25519::ge_scalarmult_base($nonce)
     
    12001189        $hs = self::updateHashWithFile($hs, $fp, $size);
    12011190
    1202         /** @var string $hramHash */
    12031191        $hramHash = hash_final($hs, true);
    12041192
    1205         /** @var string $hram */
    12061193        $hram = ParagonIE_Sodium_Core32_Ed25519::sc_reduce($hramHash);
    12071194
    1208         /** @var string $sigAfter */
    12091195        $sigAfter = ParagonIE_Sodium_Core32_Ed25519::sc_muladd($hram, $az, $nonce);
    12101196
     
    12441230            throw new SodiumException('Signature is on too small of an order');
    12451231        }
     1232
    12461233        if ((self::chrToInt($sig[63]) & 224) !== 0) {
    12471234            throw new SodiumException('Invalid signature');
Note: See TracChangeset for help on using the changeset viewer.