Make WordPress Core

Changeset 51591


Ignore:
Timestamp:
08/10/2021 01:03:41 PM (3 years ago)
Author:
SergeyBiryukov
Message:

Upgrade/Install: Update sodium_compat to v1.17.0.

The latest version of sodium_compat includes fixes for PHP 8.1 compatibility and a fix for PHP 5.6 compatibility.

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

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

Props jrf.
Fixes #53907.

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

Legend:

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

    r51002 r51591  
    30143014     * DANGER! UNAUTHENTICATED ENCRYPTION!
    30153015     *
    3016      * Unless you are following expert advice, do not used this feature.
     3016     * Unless you are following expert advice, do not use this feature.
    30173017     *
    30183018     * Algorithm: XSalsa20
     
    31133113     * DANGER! UNAUTHENTICATED ENCRYPTION!
    31143114     *
    3115      * Unless you are following expert advice, do not used this feature.
     3115     * Unless you are following expert advice, do not use this feature.
    31163116     *
    31173117     * Algorithm: XChaCha20
  • trunk/src/wp-includes/sodium_compat/src/Core/ChaCha20/Ctx.php

    r46586 r51591  
    7070     * @psalm-suppress MixedArrayOffset
    7171     */
     72    #[ReturnTypeWillChange]
    7273    public function offsetSet($offset, $value)
    7374    {
     
    8788     * @return bool
    8889     */
     90    #[ReturnTypeWillChange]
    8991    public function offsetExists($offset)
    9092    {
     
    99101     * @psalm-suppress MixedArrayOffset
    100102     */
     103    #[ReturnTypeWillChange]
    101104    public function offsetUnset($offset)
    102105    {
     
    111114     * @psalm-suppress MixedArrayOffset
    112115     */
     116    #[ReturnTypeWillChange]
    113117    public function offsetGet($offset)
    114118    {
  • trunk/src/wp-includes/sodium_compat/src/Core/Curve25519.php

    r51002 r51591  
    123123            throw new RangeException('Expected a 32-byte string.');
    124124        }
    125         /** @var int $h0 */
    126125        $h0 = self::load_4($s);
    127         /** @var int $h1 */
    128126        $h1 = self::load_3(self::substr($s, 4, 3)) << 6;
    129         /** @var int $h2 */
    130127        $h2 = self::load_3(self::substr($s, 7, 3)) << 5;
    131         /** @var int $h3 */
    132128        $h3 = self::load_3(self::substr($s, 10, 3)) << 3;
    133         /** @var int $h4 */
    134129        $h4 = self::load_3(self::substr($s, 13, 3)) << 2;
    135         /** @var int $h5 */
    136130        $h5 = self::load_4(self::substr($s, 16, 4));
    137         /** @var int $h6 */
    138131        $h6 = self::load_3(self::substr($s, 20, 3)) << 7;
    139         /** @var int $h7 */
    140132        $h7 = self::load_3(self::substr($s, 23, 3)) << 5;
    141         /** @var int $h8 */
    142133        $h8 = self::load_3(self::substr($s, 26, 3)) << 4;
    143         /** @var int $h9 */
    144134        $h9 = (self::load_3(self::substr($s, 29, 3)) & 8388607) << 2;
    145135
    146         /** @var int $carry9 */
    147136        $carry9 = ($h9 + (1 << 24)) >> 25;
    148137        $h0 += self::mul($carry9, 19, 5);
    149138        $h9 -= $carry9 << 25;
    150         /** @var int $carry1 */
    151139        $carry1 = ($h1 + (1 << 24)) >> 25;
    152140        $h2 += $carry1;
    153141        $h1 -= $carry1 << 25;
    154         /** @var int $carry3 */
    155142        $carry3 = ($h3 + (1 << 24)) >> 25;
    156143        $h4 += $carry3;
    157144        $h3 -= $carry3 << 25;
    158         /** @var int $carry5 */
    159145        $carry5 = ($h5 + (1 << 24)) >> 25;
    160146        $h6 += $carry5;
    161147        $h5 -= $carry5 << 25;
    162         /** @var int $carry7 */
    163148        $carry7 = ($h7 + (1 << 24)) >> 25;
    164149        $h8 += $carry7;
    165150        $h7 -= $carry7 << 25;
    166151
    167         /** @var int $carry0 */
    168152        $carry0 = ($h0 + (1 << 25)) >> 26;
    169153        $h1 += $carry0;
    170154        $h0 -= $carry0 << 26;
    171         /** @var int $carry2 */
    172155        $carry2 = ($h2 + (1 << 25)) >> 26;
    173156        $h3 += $carry2;
    174157        $h2 -= $carry2 << 26;
    175         /** @var int $carry4 */
    176158        $carry4 = ($h4 + (1 << 25)) >> 26;
    177159        $h5 += $carry4;
    178160        $h4 -= $carry4 << 26;
    179         /** @var int $carry6 */
    180161        $carry6 = ($h6 + (1 << 25)) >> 26;
    181162        $h7 += $carry6;
    182163        $h6 -= $carry6 << 26;
    183         /** @var int $carry8 */
    184164        $carry8 = ($h8 + (1 << 25)) >> 26;
    185165        $h9 += $carry8;
     
    212192    public static function fe_tobytes(ParagonIE_Sodium_Core_Curve25519_Fe $h)
    213193    {
    214         /** @var int $h0 */
    215194        $h0 = (int) $h[0];
    216         /** @var int $h1 */
    217195        $h1 = (int) $h[1];
    218         /** @var int $h2 */
    219196        $h2 = (int) $h[2];
    220         /** @var int $h3 */
    221197        $h3 = (int) $h[3];
    222         /** @var int $h4 */
    223198        $h4 = (int) $h[4];
    224         /** @var int $h5 */
    225199        $h5 = (int) $h[5];
    226         /** @var int $h6 */
    227200        $h6 = (int) $h[6];
    228         /** @var int $h7 */
    229201        $h7 = (int) $h[7];
    230         /** @var int $h8 */
    231202        $h8 = (int) $h[8];
    232         /** @var int $h9 */
    233203        $h9 = (int) $h[9];
    234204
    235         /** @var int $q */
    236205        $q = (self::mul($h9, 19, 5) + (1 << 24)) >> 25;
    237         /** @var int $q */
    238206        $q = ($h0 + $q) >> 26;
    239         /** @var int $q */
    240207        $q = ($h1 + $q) >> 25;
    241         /** @var int $q */
    242208        $q = ($h2 + $q) >> 26;
    243         /** @var int $q */
    244209        $q = ($h3 + $q) >> 25;
    245         /** @var int $q */
    246210        $q = ($h4 + $q) >> 26;
    247         /** @var int $q */
    248211        $q = ($h5 + $q) >> 25;
    249         /** @var int $q */
    250212        $q = ($h6 + $q) >> 26;
    251         /** @var int $q */
    252213        $q = ($h7 + $q) >> 25;
    253         /** @var int $q */
    254214        $q = ($h8 + $q) >> 26;
    255         /** @var int $q */
    256215        $q = ($h9 + $q) >> 25;
    257216
    258217        $h0 += self::mul($q, 19, 5);
    259218
    260         /** @var int $carry0 */
    261219        $carry0 = $h0 >> 26;
    262220        $h1 += $carry0;
    263221        $h0 -= $carry0 << 26;
    264         /** @var int $carry1 */
    265222        $carry1 = $h1 >> 25;
    266223        $h2 += $carry1;
    267224        $h1 -= $carry1 << 25;
    268         /** @var int $carry2 */
    269225        $carry2 = $h2 >> 26;
    270226        $h3 += $carry2;
    271227        $h2 -= $carry2 << 26;
    272         /** @var int $carry3 */
    273228        $carry3 = $h3 >> 25;
    274229        $h4 += $carry3;
    275230        $h3 -= $carry3 << 25;
    276         /** @var int $carry4 */
    277231        $carry4 = $h4 >> 26;
    278232        $h5 += $carry4;
    279233        $h4 -= $carry4 << 26;
    280         /** @var int $carry5 */
    281234        $carry5 = $h5 >> 25;
    282235        $h6 += $carry5;
    283236        $h5 -= $carry5 << 25;
    284         /** @var int $carry6 */
    285237        $carry6 = $h6 >> 26;
    286238        $h7 += $carry6;
    287239        $h6 -= $carry6 << 26;
    288         /** @var int $carry7 */
    289240        $carry7 = $h7 >> 25;
    290241        $h8 += $carry7;
    291242        $h7 -= $carry7 << 25;
    292         /** @var int $carry8 */
    293243        $carry8 = $h8 >> 26;
    294244        $h9 += $carry8;
    295245        $h8 -= $carry8 << 26;
    296         /** @var int $carry9 */
    297246        $carry9 = $h9 >> 25;
    298247        $h9 -= $carry9 << 25;
     
    394343        ParagonIE_Sodium_Core_Curve25519_Fe $g
    395344    ) {
    396         /** @var int $f0 */
    397345        $f0 = $f[0];
    398         /** @var int $f1 */
    399346        $f1 = $f[1];
    400         /** @var int $f2 */
    401347        $f2 = $f[2];
    402         /** @var int $f3 */
    403348        $f3 = $f[3];
    404         /** @var int $f4 */
    405349        $f4 = $f[4];
    406         /** @var int $f5 */
    407350        $f5 = $f[5];
    408         /** @var int $f6 */
    409351        $f6 = $f[6];
    410         /** @var int $f7 */
    411352        $f7 = $f[7];
    412         /** @var int $f8 */
    413353        $f8 = $f[8];
    414         /** @var int $f9 */
    415354        $f9 = $f[9];
    416         /** @var int $g0 */
    417355        $g0 = $g[0];
    418         /** @var int $g1 */
    419356        $g1 = $g[1];
    420         /** @var int $g2 */
    421357        $g2 = $g[2];
    422         /** @var int $g3 */
    423358        $g3 = $g[3];
    424         /** @var int $g4 */
    425359        $g4 = $g[4];
    426         /** @var int $g5 */
    427360        $g5 = $g[5];
    428         /** @var int $g6 */
    429361        $g6 = $g[6];
    430         /** @var int $g7 */
    431362        $g7 = $g[7];
    432         /** @var int $g8 */
    433363        $g8 = $g[8];
    434         /** @var int $g9 */
    435364        $g9 = $g[9];
    436365        $g1_19 = self::mul($g1, 19, 5);
     
    443372        $g8_19 = self::mul($g8, 19, 5);
    444373        $g9_19 = self::mul($g9, 19, 5);
    445         /** @var int $f1_2 */
    446374        $f1_2 = $f1 << 1;
    447         /** @var int $f3_2 */
    448375        $f3_2 = $f3 << 1;
    449         /** @var int $f5_2 */
    450376        $f5_2 = $f5 << 1;
    451         /** @var int $f7_2 */
    452377        $f7_2 = $f7 << 1;
    453         /** @var int $f9_2 */
    454378        $f9_2 = $f9 << 1;
    455379        $f0g0    = self::mul($f0,    $g0, 26);
     
    564488        $h9 = $f0g9 + $f1g8    + $f2g7    + $f3g6    + $f4g5    + $f5g4    + $f6g3    + $f7g2    + $f8g1    + $f9g0   ;
    565489
    566         /** @var int $carry0 */
    567490        $carry0 = ($h0 + (1 << 25)) >> 26;
    568491        $h1 += $carry0;
    569492        $h0 -= $carry0 << 26;
    570         /** @var int $carry4 */
    571493        $carry4 = ($h4 + (1 << 25)) >> 26;
    572494        $h5 += $carry4;
    573495        $h4 -= $carry4 << 26;
    574496
    575         /** @var int $carry1 */
    576497        $carry1 = ($h1 + (1 << 24)) >> 25;
    577498        $h2 += $carry1;
    578499        $h1 -= $carry1 << 25;
    579         /** @var int $carry5 */
    580500        $carry5 = ($h5 + (1 << 24)) >> 25;
    581501        $h6 += $carry5;
    582502        $h5 -= $carry5 << 25;
    583503
    584         /** @var int $carry2 */
    585504        $carry2 = ($h2 + (1 << 25)) >> 26;
    586505        $h3 += $carry2;
    587506        $h2 -= $carry2 << 26;
    588         /** @var int $carry6 */
    589507        $carry6 = ($h6 + (1 << 25)) >> 26;
    590508        $h7 += $carry6;
    591509        $h6 -= $carry6 << 26;
    592510
    593         /** @var int $carry3 */
    594511        $carry3 = ($h3 + (1 << 24)) >> 25;
    595512        $h4 += $carry3;
    596513        $h3 -= $carry3 << 25;
    597         /** @var int $carry7 */
    598514        $carry7 = ($h7 + (1 << 24)) >> 25;
    599515        $h8 += $carry7;
    600516        $h7 -= $carry7 << 25;
    601517
    602         /** @var int $carry4 */
    603518        $carry4 = ($h4 + (1 << 25)) >> 26;
    604519        $h5 += $carry4;
    605520        $h4 -= $carry4 << 26;
    606         /** @var int $carry8 */
    607521        $carry8 = ($h8 + (1 << 25)) >> 26;
    608522        $h9 += $carry8;
    609523        $h8 -= $carry8 << 26;
    610524
    611         /** @var int $carry9 */
    612525        $carry9 = ($h9 + (1 << 24)) >> 25;
    613526        $h0 += self::mul($carry9, 19, 5);
    614527        $h9 -= $carry9 << 25;
    615528
    616         /** @var int $carry0 */
    617529        $carry0 = ($h0 + (1 << 25)) >> 26;
    618530        $h1 += $carry0;
     
    678590        $f9 = (int) $f[9];
    679591
    680         /** @var int $f0_2 */
    681592        $f0_2 = $f0 << 1;
    682         /** @var int $f1_2 */
    683593        $f1_2 = $f1 << 1;
    684         /** @var int $f2_2 */
    685594        $f2_2 = $f2 << 1;
    686         /** @var int $f3_2 */
    687595        $f3_2 = $f3 << 1;
    688         /** @var int $f4_2 */
    689596        $f4_2 = $f4 << 1;
    690         /** @var int $f5_2 */
    691597        $f5_2 = $f5 << 1;
    692         /** @var int $f6_2 */
    693598        $f6_2 = $f6 << 1;
    694         /** @var int $f7_2 */
    695599        $f7_2 = $f7 << 1;
    696600        $f5_38 = self::mul($f5, 38, 6);
     
    699603        $f8_19 = self::mul($f8, 19, 5);
    700604        $f9_38 = self::mul($f9, 38, 6);
    701         $f0f0    = self::mul($f0,    $f0,    25);
    702         $f0f1_2  = self::mul($f0_2,  $f1,    24);
     605        $f0f0    = self::mul($f0,    $f0,    26);
     606        $f0f1_2  = self::mul($f0_2,  $f1,    26);
    703607        $f0f2_2  = self::mul($f0_2,  $f2,    26);
    704         $f0f3_2  = self::mul($f0_2,  $f3,    24);
    705         $f0f4_2  = self::mul($f0_2,  $f4,    25);
    706         $f0f5_2  = self::mul($f0_2,  $f5,    25);
    707         $f0f6_2  = self::mul($f0_2,  $f6,    25);
    708         $f0f7_2  = self::mul($f0_2,  $f7,    24);
    709         $f0f8_2  = self::mul($f0_2,  $f8,    25);
    710         $f0f9_2  = self::mul($f0_2,  $f9,    25);
    711         $f1f1_2  = self::mul($f1_2,  $f1,    24);
     608        $f0f3_2  = self::mul($f0_2,  $f3,    26);
     609        $f0f4_2  = self::mul($f0_2,  $f4,    26);
     610        $f0f5_2  = self::mul($f0_2,  $f5,    26);
     611        $f0f6_2  = self::mul($f0_2,  $f6,    26);
     612        $f0f7_2  = self::mul($f0_2,  $f7,    26);
     613        $f0f8_2  = self::mul($f0_2,  $f8,    26);
     614        $f0f9_2  = self::mul($f0_2,  $f9,    26);
     615        $f1f1_2  = self::mul($f1_2,  $f1,    26);
    712616        $f1f2_2  = self::mul($f1_2,  $f2,    26);
    713         $f1f3_4  = self::mul($f1_2,  $f3_2,  25);
    714         $f1f4_2  = self::mul($f1_2,  $f4,    25);
     617        $f1f3_4  = self::mul($f1_2,  $f3_2,  26);
     618        $f1f4_2  = self::mul($f1_2,  $f4,    26);
    715619        $f1f5_4  = self::mul($f1_2,  $f5_2,  26);
    716         $f1f6_2  = self::mul($f1_2,  $f6,    25);
    717         $f1f7_4  = self::mul($f1_2,  $f7_2,  25);
    718         $f1f8_2  = self::mul($f1_2,  $f8,    25);
    719         $f1f9_76 = self::mul($f9_38, $f1_2,  25);
    720         $f2f2    = self::mul($f2,    $f2,    26);
    721         $f2f3_2  = self::mul($f2_2,  $f3,    24);
    722         $f2f4_2  = self::mul($f2_2,  $f4,    25);
    723         $f2f5_2  = self::mul($f2_2,  $f5,    25);
    724         $f2f6_2  = self::mul($f2_2,  $f6,    25);
    725         $f2f7_2  = self::mul($f2_2,  $f7,    25);
     620        $f1f6_2  = self::mul($f1_2,  $f6,    26);
     621        $f1f7_4  = self::mul($f1_2,  $f7_2,  26);
     622        $f1f8_2  = self::mul($f1_2,  $f8,    26);
     623        $f1f9_76 = self::mul($f9_38, $f1_2,  27);
     624        $f2f2    = self::mul($f2,    $f2,    27);
     625        $f2f3_2  = self::mul($f2_2,  $f3,    27);
     626        $f2f4_2  = self::mul($f2_2,  $f4,    27);
     627        $f2f5_2  = self::mul($f2_2,  $f5,    27);
     628        $f2f6_2  = self::mul($f2_2,  $f6,    27);
     629        $f2f7_2  = self::mul($f2_2,  $f7,    27);
    726630        $f2f8_38 = self::mul($f8_19, $f2_2,  27);
    727631        $f2f9_38 = self::mul($f9_38, $f2,    26);
    728         $f3f3_2  = self::mul($f3_2,  $f3,    25);
    729         $f3f4_2  = self::mul($f3_2,  $f4,    25);
     632        $f3f3_2  = self::mul($f3_2,  $f3,    26);
     633        $f3f4_2  = self::mul($f3_2,  $f4,    26);
    730634        $f3f5_4  = self::mul($f3_2,  $f5_2,  26);
    731         $f3f6_2  = self::mul($f3_2,  $f6,    25);
    732         $f3f7_76 = self::mul($f7_38, $f3_2,  25);
    733         $f3f8_38 = self::mul($f8_19, $f3_2,  25);
    734         $f3f9_76 = self::mul($f9_38, $f3_2,  25);
    735         $f4f4    = self::mul($f4,    $f4,    25);
    736         $f4f5_2  = self::mul($f4_2,  $f5,    25);
    737         $f4f6_38 = self::mul($f6_19, $f4_2,  26);
    738         $f4f7_38 = self::mul($f7_38, $f4,    25);
    739         $f4f8_38 = self::mul($f8_19, $f4_2,  26);
    740         $f4f9_38 = self::mul($f9_38, $f4,    25);
    741         $f5f5_38 = self::mul($f5_38, $f5,    25);
     635        $f3f6_2  = self::mul($f3_2,  $f6,    26);
     636        $f3f7_76 = self::mul($f7_38, $f3_2,  26);
     637        $f3f8_38 = self::mul($f8_19, $f3_2,  26);
     638        $f3f9_76 = self::mul($f9_38, $f3_2,  26);
     639        $f4f4    = self::mul($f4,    $f4,    26);
     640        $f4f5_2  = self::mul($f4_2,  $f5,    26);
     641        $f4f6_38 = self::mul($f6_19, $f4_2,  27);
     642        $f4f7_38 = self::mul($f7_38, $f4,    26);
     643        $f4f8_38 = self::mul($f8_19, $f4_2,  27);
     644        $f4f9_38 = self::mul($f9_38, $f4,    26);
     645        $f5f5_38 = self::mul($f5_38, $f5,    26);
    742646        $f5f6_38 = self::mul($f6_19, $f5_2,  26);
    743647        $f5f7_76 = self::mul($f7_38, $f5_2,  26);
    744648        $f5f8_38 = self::mul($f8_19, $f5_2,  26);
    745649        $f5f9_76 = self::mul($f9_38, $f5_2,  26);
    746         $f6f6_19 = self::mul($f6_19, $f6,    25);
    747         $f6f7_38 = self::mul($f7_38, $f6,    25);
    748         $f6f8_38 = self::mul($f8_19, $f6_2,  26);
    749         $f6f9_38 = self::mul($f9_38, $f6,    25);
    750         $f7f7_38 = self::mul($f7_38, $f7,    24);
    751         $f7f8_38 = self::mul($f8_19, $f7_2,  25);
    752         $f7f9_76 = self::mul($f9_38, $f7_2,  25);
    753         $f8f8_19 = self::mul($f8_19, $f8,    25);
    754         $f8f9_38 = self::mul($f9_38, $f8,    25);
    755         $f9f9_38 = self::mul($f9_38, $f9,    25);
     650        $f6f6_19 = self::mul($f6_19, $f6,    26);
     651        $f6f7_38 = self::mul($f7_38, $f6,    26);
     652        $f6f8_38 = self::mul($f8_19, $f6_2,  27);
     653        $f6f9_38 = self::mul($f9_38, $f6,    26);
     654        $f7f7_38 = self::mul($f7_38, $f7,    26);
     655        $f7f8_38 = self::mul($f8_19, $f7_2,  26);
     656        $f7f9_76 = self::mul($f9_38, $f7_2,  26);
     657        $f8f8_19 = self::mul($f8_19, $f8,    26);
     658        $f8f9_38 = self::mul($f9_38, $f8,    26);
     659        $f9f9_38 = self::mul($f9_38, $f9,    26);
    756660        $h0 = $f0f0   + $f1f9_76 + $f2f8_38 + $f3f7_76 + $f4f6_38 + $f5f5_38;
    757661        $h1 = $f0f1_2 + $f2f9_38 + $f3f8_38 + $f4f7_38 + $f5f6_38;
     
    765669        $h9 = $f0f9_2 + $f1f8_2  + $f2f7_2  + $f3f6_2  + $f4f5_2;
    766670
    767         /** @var int $carry0 */
    768671        $carry0 = ($h0 + (1 << 25)) >> 26;
    769672        $h1 += $carry0;
    770673        $h0 -= $carry0 << 26;
    771         /** @var int $carry4 */
    772674        $carry4 = ($h4 + (1 << 25)) >> 26;
    773675        $h5 += $carry4;
    774676        $h4 -= $carry4 << 26;
    775677
    776         /** @var int $carry1 */
    777678        $carry1 = ($h1 + (1 << 24)) >> 25;
    778679        $h2 += $carry1;
    779680        $h1 -= $carry1 << 25;
    780         /** @var int $carry5 */
    781681        $carry5 = ($h5 + (1 << 24)) >> 25;
    782682        $h6 += $carry5;
    783683        $h5 -= $carry5 << 25;
    784684
    785         /** @var int $carry2 */
    786685        $carry2 = ($h2 + (1 << 25)) >> 26;
    787686        $h3 += $carry2;
    788687        $h2 -= $carry2 << 26;
    789         /** @var int $carry6 */
    790688        $carry6 = ($h6 + (1 << 25)) >> 26;
    791689        $h7 += $carry6;
    792690        $h6 -= $carry6 << 26;
    793691
    794         /** @var int $carry3 */
    795692        $carry3 = ($h3 + (1 << 24)) >> 25;
    796693        $h4 += $carry3;
    797694        $h3 -= $carry3 << 25;
    798         /** @var int $carry7 */
    799695        $carry7 = ($h7 + (1 << 24)) >> 25;
    800696        $h8 += $carry7;
    801697        $h7 -= $carry7 << 25;
    802698
    803         /** @var int $carry4 */
    804699        $carry4 = ($h4 + (1 << 25)) >> 26;
    805700        $h5 += $carry4;
    806701        $h4 -= $carry4 << 26;
    807         /** @var int $carry8 */
    808702        $carry8 = ($h8 + (1 << 25)) >> 26;
    809703        $h9 += $carry8;
    810704        $h8 -= $carry8 << 26;
    811705
    812         /** @var int $carry9 */
    813706        $carry9 = ($h9 + (1 << 24)) >> 25;
    814707        $h0 += self::mul($carry9, 19, 5);
    815708        $h9 -= $carry9 << 25;
    816709
    817         /** @var int $carry0 */
    818710        $carry0 = ($h0 + (1 << 25)) >> 26;
    819711        $h1 += $carry0;
     
    860752        $f9 = (int) $f[9];
    861753
    862         /** @var int $f0_2 */
    863754        $f0_2 = $f0 << 1;
    864         /** @var int $f1_2 */
    865755        $f1_2 = $f1 << 1;
    866         /** @var int $f2_2 */
    867756        $f2_2 = $f2 << 1;
    868         /** @var int $f3_2 */
    869757        $f3_2 = $f3 << 1;
    870         /** @var int $f4_2 */
    871758        $f4_2 = $f4 << 1;
    872         /** @var int $f5_2 */
    873759        $f5_2 = $f5 << 1;
    874         /** @var int $f6_2 */
    875760        $f6_2 = $f6 << 1;
    876         /** @var int $f7_2 */
    877761        $f7_2 = $f7 << 1;
    878762        $f5_38 = self::mul($f5, 38, 6); /* 1.959375*2^30 */
     
    937821        $f9f9_38 = self::mul($f9_38, $f9, 24);
    938822
    939         /** @var int $h0 */
    940823        $h0 = (int) ($f0f0 + $f1f9_76 + $f2f8_38 + $f3f7_76 + $f4f6_38 + $f5f5_38) << 1;
    941         /** @var int $h1 */
    942824        $h1 = (int) ($f0f1_2 + $f2f9_38 + $f3f8_38 + $f4f7_38 + $f5f6_38) << 1;
    943         /** @var int $h2 */
    944825        $h2 = (int) ($f0f2_2 + $f1f1_2  + $f3f9_76 + $f4f8_38 + $f5f7_76 + $f6f6_19) << 1;
    945         /** @var int $h3 */
    946826        $h3 = (int) ($f0f3_2 + $f1f2_2  + $f4f9_38 + $f5f8_38 + $f6f7_38) << 1;
    947         /** @var int $h4 */
    948827        $h4 = (int) ($f0f4_2 + $f1f3_4  + $f2f2    + $f5f9_76 + $f6f8_38 + $f7f7_38) << 1;
    949         /** @var int $h5 */
    950828        $h5 = (int) ($f0f5_2 + $f1f4_2  + $f2f3_2  + $f6f9_38 + $f7f8_38) << 1;
    951         /** @var int $h6 */
    952829        $h6 = (int) ($f0f6_2 + $f1f5_4  + $f2f4_2  + $f3f3_2  + $f7f9_76 + $f8f8_19) << 1;
    953         /** @var int $h7 */
    954830        $h7 = (int) ($f0f7_2 + $f1f6_2  + $f2f5_2  + $f3f4_2  + $f8f9_38) << 1;
    955         /** @var int $h8 */
    956831        $h8 = (int) ($f0f8_2 + $f1f7_4  + $f2f6_2  + $f3f5_4  + $f4f4    + $f9f9_38) << 1;
    957         /** @var int $h9 */
    958832        $h9 = (int) ($f0f9_2 + $f1f8_2  + $f2f7_2  + $f3f6_2  + $f4f5_2) << 1;
    959833
    960         /** @var int $carry0 */
    961834        $carry0 = ($h0 + (1 << 25)) >> 26;
    962835        $h1 += $carry0;
    963836        $h0 -= $carry0 << 26;
    964         /** @var int $carry4 */
    965837        $carry4 = ($h4 + (1 << 25)) >> 26;
    966838        $h5 += $carry4;
    967839        $h4 -= $carry4 << 26;
    968840
    969         /** @var int $carry1 */
    970841        $carry1 = ($h1 + (1 << 24)) >> 25;
    971842        $h2 += $carry1;
    972843        $h1 -= $carry1 << 25;
    973         /** @var int $carry5 */
    974844        $carry5 = ($h5 + (1 << 24)) >> 25;
    975845        $h6 += $carry5;
    976846        $h5 -= $carry5 << 25;
    977847
    978         /** @var int $carry2 */
    979848        $carry2 = ($h2 + (1 << 25)) >> 26;
    980849        $h3 += $carry2;
    981850        $h2 -= $carry2 << 26;
    982         /** @var int $carry6 */
    983851        $carry6 = ($h6 + (1 << 25)) >> 26;
    984852        $h7 += $carry6;
    985853        $h6 -= $carry6 << 26;
    986854
    987         /** @var int $carry3 */
    988855        $carry3 = ($h3 + (1 << 24)) >> 25;
    989856        $h4 += $carry3;
    990857        $h3 -= $carry3 << 25;
    991         /** @var int $carry7 */
    992858        $carry7 = ($h7 + (1 << 24)) >> 25;
    993859        $h8 += $carry7;
    994860        $h7 -= $carry7 << 25;
    995861
    996         /** @var int $carry4 */
    997862        $carry4 = ($h4 + (1 << 25)) >> 26;
    998863        $h5 += $carry4;
    999864        $h4 -= $carry4 << 26;
    1000         /** @var int $carry8 */
    1001865        $carry8 = ($h8 + (1 << 25)) >> 26;
    1002866        $h9 += $carry8;
    1003867        $h8 -= $carry8 << 26;
    1004868
    1005         /** @var int $carry9 */
    1006869        $carry9 = ($h9 + (1 << 24)) >> 25;
    1007870        $h0 += self::mul($carry9, 19, 5);
    1008871        $h9 -= $carry9 << 25;
    1009872
    1010         /** @var int $carry0 */
    1011873        $carry0 = ($h0 + (1 << 25)) >> 26;
    1012874        $h1 += $carry0;
     
    17911653        }
    17921654
    1793         /** @var int $bnegative */
    17941655        $bnegative = self::negative($b);
    1795         /** @var int $babs */
    17961656        $babs = $b - (((-$bnegative) & $b) << 1);
    17971657
     
    20811941        //        }
    20821942        $carry = 0;
    2083         for ($i = 0; $i < 64; ++$i) {
     1943        for ($i = 0; $i < 63; ++$i) {
    20841944            $e[$i] += $carry;
    20851945            $carry = $e[$i] + 8;
     
    21472007
    21482008        for ($i = 0; $i < 32; ++$i) {
    2149             /** @var int $dbl */
    21502009            $dbl = (int) $i << 1;
    21512010            $e[$dbl] = (int) self::chrToInt($a[$i]) & 15;
     
    21532012        }
    21542013
    2155         /** @var int $carry */
    21562014        $carry = 0;
    21572015        for ($i = 0; $i < 63; ++$i) {
    21582016            $e[$i] += $carry;
    2159             /** @var int $carry */
    21602017            $carry = $e[$i] + 8;
    2161             /** @var int $carry */
    21622018            $carry >>= 4;
    21632019            $e[$i] -= $carry << 4;
    21642020        }
    2165         /** @var array<int, int> $e */
    21662021        $e[63] += (int) $carry;
    21672022
     
    22072062    public static function sc_muladd($a, $b, $c)
    22082063    {
    2209         /** @var int $a0 */
    22102064        $a0 = 2097151 & self::load_3(self::substr($a, 0, 3));
    2211         /** @var int $a1 */
    22122065        $a1 = 2097151 & (self::load_4(self::substr($a, 2, 4)) >> 5);
    2213         /** @var int $a2 */
    22142066        $a2 = 2097151 & (self::load_3(self::substr($a, 5, 3)) >> 2);
    2215         /** @var int $a3 */
    22162067        $a3 = 2097151 & (self::load_4(self::substr($a, 7, 4)) >> 7);
    2217         /** @var int $a4 */
    22182068        $a4 = 2097151 & (self::load_4(self::substr($a, 10, 4)) >> 4);
    2219         /** @var int $a5 */
    22202069        $a5 = 2097151 & (self::load_3(self::substr($a, 13, 3)) >> 1);
    2221         /** @var int $a6 */
    22222070        $a6 = 2097151 & (self::load_4(self::substr($a, 15, 4)) >> 6);
    2223         /** @var int $a7 */
    22242071        $a7 = 2097151 & (self::load_3(self::substr($a, 18, 3)) >> 3);
    2225         /** @var int $a8 */
    22262072        $a8 = 2097151 & self::load_3(self::substr($a, 21, 3));
    2227         /** @var int $a9 */
    22282073        $a9 = 2097151 & (self::load_4(self::substr($a, 23, 4)) >> 5);
    2229         /** @var int $a10 */
    22302074        $a10 = 2097151 & (self::load_3(self::substr($a, 26, 3)) >> 2);
    2231         /** @var int $a11 */
    22322075        $a11 = (self::load_4(self::substr($a, 28, 4)) >> 7);
    22332076
    2234         /** @var int $b0 */
    22352077        $b0 = 2097151 & self::load_3(self::substr($b, 0, 3));
    2236         /** @var int $b1 */
    22372078        $b1 = 2097151 & (self::load_4(self::substr($b, 2, 4)) >> 5);
    2238         /** @var int $b2 */
    22392079        $b2 = 2097151 & (self::load_3(self::substr($b, 5, 3)) >> 2);
    2240         /** @var int $b3 */
    22412080        $b3 = 2097151 & (self::load_4(self::substr($b, 7, 4)) >> 7);
    2242         /** @var int $b4 */
    22432081        $b4 = 2097151 & (self::load_4(self::substr($b, 10, 4)) >> 4);
    2244         /** @var int $b5 */
    22452082        $b5 = 2097151 & (self::load_3(self::substr($b, 13, 3)) >> 1);
    2246         /** @var int $b6 */
    22472083        $b6 = 2097151 & (self::load_4(self::substr($b, 15, 4)) >> 6);
    2248         /** @var int $b7 */
    22492084        $b7 = 2097151 & (self::load_3(self::substr($b, 18, 3)) >> 3);
    2250         /** @var int $b8 */
    22512085        $b8 = 2097151 & self::load_3(self::substr($b, 21, 3));
    2252         /** @var int $b9 */
    22532086        $b9 = 2097151 & (self::load_4(self::substr($b, 23, 4)) >> 5);
    2254         /** @var int $b10 */
    22552087        $b10 = 2097151 & (self::load_3(self::substr($b, 26, 3)) >> 2);
    2256         /** @var int $b11 */
    22572088        $b11 = (self::load_4(self::substr($b, 28, 4)) >> 7);
    22582089
    2259         /** @var int $c0 */
    22602090        $c0 = 2097151 & self::load_3(self::substr($c, 0, 3));
    2261         /** @var int $c1 */
    22622091        $c1 = 2097151 & (self::load_4(self::substr($c, 2, 4)) >> 5);
    2263         /** @var int $c2 */
    22642092        $c2 = 2097151 & (self::load_3(self::substr($c, 5, 3)) >> 2);
    2265         /** @var int $c3 */
    22662093        $c3 = 2097151 & (self::load_4(self::substr($c, 7, 4)) >> 7);
    2267         /** @var int $c4 */
    22682094        $c4 = 2097151 & (self::load_4(self::substr($c, 10, 4)) >> 4);
    2269         /** @var int $c5 */
    22702095        $c5 = 2097151 & (self::load_3(self::substr($c, 13, 3)) >> 1);
    2271         /** @var int $c6 */
    22722096        $c6 = 2097151 & (self::load_4(self::substr($c, 15, 4)) >> 6);
    2273         /** @var int $c7 */
    22742097        $c7 = 2097151 & (self::load_3(self::substr($c, 18, 3)) >> 3);
    2275         /** @var int $c8 */
    22762098        $c8 = 2097151 & self::load_3(self::substr($c, 21, 3));
    2277         /** @var int $c9 */
    22782099        $c9 = 2097151 & (self::load_4(self::substr($c, 23, 4)) >> 5);
    2279         /** @var int $c10 */
    22802100        $c10 = 2097151 & (self::load_3(self::substr($c, 26, 3)) >> 2);
    2281         /** @var int $c11 */
    22822101        $c11 = (self::load_4(self::substr($c, 28, 4)) >> 7);
    22832102
     
    23302149        $s23 = 0;
    23312150
    2332         /** @var int $carry0 */
    23332151        $carry0 = ($s0 + (1 << 20)) >> 21;
    23342152        $s1 += $carry0;
    23352153        $s0 -= $carry0 << 21;
    2336         /** @var int $carry2 */
    23372154        $carry2 = ($s2 + (1 << 20)) >> 21;
    23382155        $s3 += $carry2;
    23392156        $s2 -= $carry2 << 21;
    2340         /** @var int $carry4 */
    23412157        $carry4 = ($s4 + (1 << 20)) >> 21;
    23422158        $s5 += $carry4;
    23432159        $s4 -= $carry4 << 21;
    2344         /** @var int $carry6 */
    23452160        $carry6 = ($s6 + (1 << 20)) >> 21;
    23462161        $s7 += $carry6;
    23472162        $s6 -= $carry6 << 21;
    2348         /** @var int $carry8 */
    23492163        $carry8 = ($s8 + (1 << 20)) >> 21;
    23502164        $s9 += $carry8;
    23512165        $s8 -= $carry8 << 21;
    2352         /** @var int $carry10 */
    23532166        $carry10 = ($s10 + (1 << 20)) >> 21;
    23542167        $s11 += $carry10;
    23552168        $s10 -= $carry10 << 21;
    2356         /** @var int $carry12 */
    23572169        $carry12 = ($s12 + (1 << 20)) >> 21;
    23582170        $s13 += $carry12;
    23592171        $s12 -= $carry12 << 21;
    2360         /** @var int $carry14 */
    23612172        $carry14 = ($s14 + (1 << 20)) >> 21;
    23622173        $s15 += $carry14;
    23632174        $s14 -= $carry14 << 21;
    2364         /** @var int $carry16 */
    23652175        $carry16 = ($s16 + (1 << 20)) >> 21;
    23662176        $s17 += $carry16;
    23672177        $s16 -= $carry16 << 21;
    2368         /** @var int $carry18 */
    23692178        $carry18 = ($s18 + (1 << 20)) >> 21;
    23702179        $s19 += $carry18;
    23712180        $s18 -= $carry18 << 21;
    2372         /** @var int $carry20 */
    23732181        $carry20 = ($s20 + (1 << 20)) >> 21;
    23742182        $s21 += $carry20;
    23752183        $s20 -= $carry20 << 21;
    2376         /** @var int $carry22 */
    23772184        $carry22 = ($s22 + (1 << 20)) >> 21;
    23782185        $s23 += $carry22;
    23792186        $s22 -= $carry22 << 21;
    23802187
    2381         /** @var int $carry1 */
    23822188        $carry1 = ($s1 + (1 << 20)) >> 21;
    23832189        $s2 += $carry1;
    23842190        $s1 -= $carry1 << 21;
    2385         /** @var int $carry3 */
    23862191        $carry3 = ($s3 + (1 << 20)) >> 21;
    23872192        $s4 += $carry3;
    23882193        $s3 -= $carry3 << 21;
    2389         /** @var int $carry5 */
    23902194        $carry5 = ($s5 + (1 << 20)) >> 21;
    23912195        $s6 += $carry5;
    23922196        $s5 -= $carry5 << 21;
    2393         /** @var int $carry7 */
    23942197        $carry7 = ($s7 + (1 << 20)) >> 21;
    23952198        $s8 += $carry7;
    23962199        $s7 -= $carry7 << 21;
    2397         /** @var int $carry9 */
    23982200        $carry9 = ($s9 + (1 << 20)) >> 21;
    23992201        $s10 += $carry9;
    24002202        $s9 -= $carry9 << 21;
    2401         /** @var int $carry11 */
    24022203        $carry11 = ($s11 + (1 << 20)) >> 21;
    24032204        $s12 += $carry11;
    24042205        $s11 -= $carry11 << 21;
    2405         /** @var int $carry13 */
    24062206        $carry13 = ($s13 + (1 << 20)) >> 21;
    24072207        $s14 += $carry13;
    24082208        $s13 -= $carry13 << 21;
    2409         /** @var int $carry15 */
    24102209        $carry15 = ($s15 + (1 << 20)) >> 21;
    24112210        $s16 += $carry15;
    24122211        $s15 -= $carry15 << 21;
    2413         /** @var int $carry17 */
    24142212        $carry17 = ($s17 + (1 << 20)) >> 21;
    24152213        $s18 += $carry17;
    24162214        $s17 -= $carry17 << 21;
    2417         /** @var int $carry19 */
    24182215        $carry19 = ($s19 + (1 << 20)) >> 21;
    24192216        $s20 += $carry19;
    24202217        $s19 -= $carry19 << 21;
    2421         /** @var int $carry21 */
    24222218        $carry21 = ($s21 + (1 << 20)) >> 21;
    24232219        $s22 += $carry21;
     
    24662262        $s11 -= self::mul($s18,  683901, 20);
    24672263
    2468         /** @var int $carry6 */
    24692264        $carry6 = ($s6 + (1 << 20)) >> 21;
    24702265        $s7 += $carry6;
    24712266        $s6 -= $carry6 << 21;
    2472         /** @var int $carry8 */
    24732267        $carry8 = ($s8 + (1 << 20)) >> 21;
    24742268        $s9 += $carry8;
    24752269        $s8 -= $carry8 << 21;
    2476         /** @var int $carry10 */
    24772270        $carry10 = ($s10 + (1 << 20)) >> 21;
    24782271        $s11 += $carry10;
    24792272        $s10 -= $carry10 << 21;
    2480         /** @var int $carry12 */
    24812273        $carry12 = ($s12 + (1 << 20)) >> 21;
    24822274        $s13 += $carry12;
    24832275        $s12 -= $carry12 << 21;
    2484         /** @var int $carry14 */
    24852276        $carry14 = ($s14 + (1 << 20)) >> 21;
    24862277        $s15 += $carry14;
    24872278        $s14 -= $carry14 << 21;
    2488         /** @var int $carry16 */
    24892279        $carry16 = ($s16 + (1 << 20)) >> 21;
    24902280        $s17 += $carry16;
    24912281        $s16 -= $carry16 << 21;
    24922282
    2493         /** @var int $carry7 */
    24942283        $carry7 = ($s7 + (1 << 20)) >> 21;
    24952284        $s8 += $carry7;
    24962285        $s7 -= $carry7 << 21;
    2497         /** @var int $carry9 */
    24982286        $carry9 = ($s9 + (1 << 20)) >> 21;
    24992287        $s10 += $carry9;
    25002288        $s9 -= $carry9 << 21;
    2501         /** @var int $carry11 */
    25022289        $carry11 = ($s11 + (1 << 20)) >> 21;
    25032290        $s12 += $carry11;
    25042291        $s11 -= $carry11 << 21;
    2505         /** @var int $carry13 */
    25062292        $carry13 = ($s13 + (1 << 20)) >> 21;
    25072293        $s14 += $carry13;
    25082294        $s13 -= $carry13 << 21;
    2509         /** @var int $carry15 */
    25102295        $carry15 = ($s15 + (1 << 20)) >> 21;
    25112296        $s16 += $carry15;
     
    25552340        $s12 = 0;
    25562341
    2557         /** @var int $carry0 */
    25582342        $carry0 = ($s0 + (1 << 20)) >> 21;
    25592343        $s1 += $carry0;
    25602344        $s0 -= $carry0 << 21;
    2561         /** @var int $carry2 */
    25622345        $carry2 = ($s2 + (1 << 20)) >> 21;
    25632346        $s3 += $carry2;
    25642347        $s2 -= $carry2 << 21;
    2565         /** @var int $carry4 */
    25662348        $carry4 = ($s4 + (1 << 20)) >> 21;
    25672349        $s5 += $carry4;
    25682350        $s4 -= $carry4 << 21;
    2569         /** @var int $carry6 */
    25702351        $carry6 = ($s6 + (1 << 20)) >> 21;
    25712352        $s7 += $carry6;
    25722353        $s6 -= $carry6 << 21;
    2573         /** @var int $carry8 */
    25742354        $carry8 = ($s8 + (1 << 20)) >> 21;
    25752355        $s9 += $carry8;
    25762356        $s8 -= $carry8 << 21;
    2577         /** @var int $carry10 */
    25782357        $carry10 = ($s10 + (1 << 20)) >> 21;
    25792358        $s11 += $carry10;
    25802359        $s10 -= $carry10 << 21;
    25812360
    2582         /** @var int $carry1 */
    25832361        $carry1 = ($s1 + (1 << 20)) >> 21;
    25842362        $s2 += $carry1;
    25852363        $s1 -= $carry1 << 21;
    2586         /** @var int $carry3 */
    25872364        $carry3 = ($s3 + (1 << 20)) >> 21;
    25882365        $s4 += $carry3;
    25892366        $s3 -= $carry3 << 21;
    2590         /** @var int $carry5 */
    25912367        $carry5 = ($s5 + (1 << 20)) >> 21;
    25922368        $s6 += $carry5;
    25932369        $s5 -= $carry5 << 21;
    2594         /** @var int $carry7 */
    25952370        $carry7 = ($s7 + (1 << 20)) >> 21;
    25962371        $s8 += $carry7;
    25972372        $s7 -= $carry7 << 21;
    2598         /** @var int $carry9 */
    25992373        $carry9 = ($s9 + (1 << 20)) >> 21;
    26002374        $s10 += $carry9;
    26012375        $s9 -= $carry9 << 21;
    2602         /** @var int $carry11 */
    26032376        $carry11 = ($s11 + (1 << 20)) >> 21;
    26042377        $s12 += $carry11;
     
    26132386        $s12 = 0;
    26142387
    2615         /** @var int $carry0 */
    26162388        $carry0 = $s0 >> 21;
    26172389        $s1 += $carry0;
    26182390        $s0 -= $carry0 << 21;
    2619         /** @var int $carry1 */
    26202391        $carry1 = $s1 >> 21;
    26212392        $s2 += $carry1;
    26222393        $s1 -= $carry1 << 21;
    2623         /** @var int $carry2 */
    26242394        $carry2 = $s2 >> 21;
    26252395        $s3 += $carry2;
    26262396        $s2 -= $carry2 << 21;
    2627         /** @var int $carry3 */
    26282397        $carry3 = $s3 >> 21;
    26292398        $s4 += $carry3;
    26302399        $s3 -= $carry3 << 21;
    2631         /** @var int $carry4 */
    26322400        $carry4 = $s4 >> 21;
    26332401        $s5 += $carry4;
    26342402        $s4 -= $carry4 << 21;
    2635         /** @var int $carry5 */
    26362403        $carry5 = $s5 >> 21;
    26372404        $s6 += $carry5;
    26382405        $s5 -= $carry5 << 21;
    2639         /** @var int $carry6 */
    26402406        $carry6 = $s6 >> 21;
    26412407        $s7 += $carry6;
    26422408        $s6 -= $carry6 << 21;
    2643         /** @var int $carry7 */
    26442409        $carry7 = $s7 >> 21;
    26452410        $s8 += $carry7;
    26462411        $s7 -= $carry7 << 21;
    2647         /** @var int $carry8 */
    26482412        $carry8 = $s8 >> 21;
    26492413        $s9 += $carry8;
    26502414        $s8 -= $carry8 << 21;
    2651         /** @var int $carry9 */
    26522415        $carry9 = $s9 >> 21;
    26532416        $s10 += $carry9;
    26542417        $s9 -= $carry9 << 21;
    2655         /** @var int $carry10 */
    26562418        $carry10 = $s10 >> 21;
    26572419        $s11 += $carry10;
    26582420        $s10 -= $carry10 << 21;
    2659         /** @var int $carry11 */
    26602421        $carry11 = $s11 >> 21;
    26612422        $s12 += $carry11;
     
    26692430        $s5 -= self::mul($s12,  683901, 20);
    26702431
    2671         /** @var int $carry0 */
    26722432        $carry0 = $s0 >> 21;
    26732433        $s1 += $carry0;
    26742434        $s0 -= $carry0 << 21;
    2675         /** @var int $carry1 */
    26762435        $carry1 = $s1 >> 21;
    26772436        $s2 += $carry1;
    26782437        $s1 -= $carry1 << 21;
    2679         /** @var int $carry2 */
    26802438        $carry2 = $s2 >> 21;
    26812439        $s3 += $carry2;
    26822440        $s2 -= $carry2 << 21;
    2683         /** @var int $carry3 */
    26842441        $carry3 = $s3 >> 21;
    26852442        $s4 += $carry3;
    26862443        $s3 -= $carry3 << 21;
    2687         /** @var int $carry4 */
    26882444        $carry4 = $s4 >> 21;
    26892445        $s5 += $carry4;
    26902446        $s4 -= $carry4 << 21;
    2691         /** @var int $carry5 */
    26922447        $carry5 = $s5 >> 21;
    26932448        $s6 += $carry5;
    26942449        $s5 -= $carry5 << 21;
    2695         /** @var int $carry6 */
    26962450        $carry6 = $s6 >> 21;
    26972451        $s7 += $carry6;
    26982452        $s6 -= $carry6 << 21;
    2699         /** @var int $carry7 */
    27002453        $carry7 = $s7 >> 21;
    27012454        $s8 += $carry7;
    27022455        $s7 -= $carry7 << 21;
    2703         /** @var int $carry8 */
    27042456        $carry8 = $s8 >> 21;
    27052457        $s9 += $carry8;
    27062458        $s8 -= $carry8 << 21;
    2707         /** @var int $carry9 */
    27082459        $carry9 = $s9 >> 21;
    27092460        $s10 += $carry9;
    27102461        $s9 -= $carry9 << 21;
    2711         /** @var int $carry10 */
    27122462        $carry10 = $s10 >> 21;
    27132463        $s11 += $carry10;
     
    27632513    public static function sc_reduce($s)
    27642514    {
    2765         /** @var int $s0 */
    27662515        $s0 = 2097151 & self::load_3(self::substr($s, 0, 3));
    2767         /** @var int $s1 */
    27682516        $s1 = 2097151 & (self::load_4(self::substr($s, 2, 4)) >> 5);
    2769         /** @var int $s2 */
    27702517        $s2 = 2097151 & (self::load_3(self::substr($s, 5, 3)) >> 2);
    2771         /** @var int $s3 */
    27722518        $s3 = 2097151 & (self::load_4(self::substr($s, 7, 4)) >> 7);
    2773         /** @var int $s4 */
    27742519        $s4 = 2097151 & (self::load_4(self::substr($s, 10, 4)) >> 4);
    2775         /** @var int $s5 */
    27762520        $s5 = 2097151 & (self::load_3(self::substr($s, 13, 3)) >> 1);
    2777         /** @var int $s6 */
    27782521        $s6 = 2097151 & (self::load_4(self::substr($s, 15, 4)) >> 6);
    2779         /** @var int $s7 */
    27802522        $s7 = 2097151 & (self::load_3(self::substr($s, 18, 4)) >> 3);
    2781         /** @var int $s8 */
    27822523        $s8 = 2097151 & self::load_3(self::substr($s, 21, 3));
    2783         /** @var int $s9 */
    27842524        $s9 = 2097151 & (self::load_4(self::substr($s, 23, 4)) >> 5);
    2785         /** @var int $s10 */
    27862525        $s10 = 2097151 & (self::load_3(self::substr($s, 26, 3)) >> 2);
    2787         /** @var int $s11 */
    27882526        $s11 = 2097151 & (self::load_4(self::substr($s, 28, 4)) >> 7);
    2789         /** @var int $s12 */
    27902527        $s12 = 2097151 & (self::load_4(self::substr($s, 31, 4)) >> 4);
    2791         /** @var int $s13 */
    27922528        $s13 = 2097151 & (self::load_3(self::substr($s, 34, 3)) >> 1);
    2793         /** @var int $s14 */
    27942529        $s14 = 2097151 & (self::load_4(self::substr($s, 36, 4)) >> 6);
    2795         /** @var int $s15 */
    27962530        $s15 = 2097151 & (self::load_3(self::substr($s, 39, 4)) >> 3);
    2797         /** @var int $s16 */
    27982531        $s16 = 2097151 & self::load_3(self::substr($s, 42, 3));
    2799         /** @var int $s17 */
    28002532        $s17 = 2097151 & (self::load_4(self::substr($s, 44, 4)) >> 5);
    2801         /** @var int $s18 */
    28022533        $s18 = 2097151 & (self::load_3(self::substr($s, 47, 3)) >> 2);
    2803         /** @var int $s19 */
    28042534        $s19 = 2097151 & (self::load_4(self::substr($s, 49, 4)) >> 7);
    2805         /** @var int $s20 */
    28062535        $s20 = 2097151 & (self::load_4(self::substr($s, 52, 4)) >> 4);
    2807         /** @var int $s21 */
    28082536        $s21 = 2097151 & (self::load_3(self::substr($s, 55, 3)) >> 1);
    2809         /** @var int $s22 */
    28102537        $s22 = 2097151 & (self::load_4(self::substr($s, 57, 4)) >> 6);
    2811         /** @var int $s23 */
    28122538        $s23 = (self::load_4(self::substr($s, 60, 4)) >> 3);
    28132539
     
    28542580        $s11 -= self::mul($s18,  683901, 20);
    28552581
    2856         /** @var int $carry6 */
    28572582        $carry6 = ($s6 + (1 << 20)) >> 21;
    28582583        $s7 += $carry6;
    28592584        $s6 -= $carry6 << 21;
    2860         /** @var int $carry8 */
    28612585        $carry8 = ($s8 + (1 << 20)) >> 21;
    28622586        $s9 += $carry8;
    28632587        $s8 -= $carry8 << 21;
    2864         /** @var int $carry10 */
    28652588        $carry10 = ($s10 + (1 << 20)) >> 21;
    28662589        $s11 += $carry10;
    28672590        $s10 -= $carry10 << 21;
    2868         /** @var int $carry12 */
    28692591        $carry12 = ($s12 + (1 << 20)) >> 21;
    28702592        $s13 += $carry12;
    28712593        $s12 -= $carry12 << 21;
    2872         /** @var int $carry14 */
    28732594        $carry14 = ($s14 + (1 << 20)) >> 21;
    28742595        $s15 += $carry14;
    28752596        $s14 -= $carry14 << 21;
    2876         /** @var int $carry16 */
    28772597        $carry16 = ($s16 + (1 << 20)) >> 21;
    28782598        $s17 += $carry16;
    28792599        $s16 -= $carry16 << 21;
    28802600
    2881         /** @var int $carry7 */
    28822601        $carry7 = ($s7 + (1 << 20)) >> 21;
    28832602        $s8 += $carry7;
    28842603        $s7 -= $carry7 << 21;
    2885         /** @var int $carry9 */
    28862604        $carry9 = ($s9 + (1 << 20)) >> 21;
    28872605        $s10 += $carry9;
    28882606        $s9 -= $carry9 << 21;
    2889         /** @var int $carry11 */
    28902607        $carry11 = ($s11 + (1 << 20)) >> 21;
    28912608        $s12 += $carry11;
    28922609        $s11 -= $carry11 << 21;
    2893         /** @var int $carry13 */
    28942610        $carry13 = ($s13 + (1 << 20)) >> 21;
    28952611        $s14 += $carry13;
    28962612        $s13 -= $carry13 << 21;
    2897         /** @var int $carry15 */
    28982613        $carry15 = ($s15 + (1 << 20)) >> 21;
    28992614        $s16 += $carry15;
     
    29432658        $s12 = 0;
    29442659
    2945         /** @var int $carry0 */
    29462660        $carry0 = ($s0 + (1 << 20)) >> 21;
    29472661        $s1 += $carry0;
    29482662        $s0 -= $carry0 << 21;
    2949         /** @var int $carry2 */
    29502663        $carry2 = ($s2 + (1 << 20)) >> 21;
    29512664        $s3 += $carry2;
    29522665        $s2 -= $carry2 << 21;
    2953         /** @var int $carry4 */
    29542666        $carry4 = ($s4 + (1 << 20)) >> 21;
    29552667        $s5 += $carry4;
    29562668        $s4 -= $carry4 << 21;
    2957         /** @var int $carry6 */
    29582669        $carry6 = ($s6 + (1 << 20)) >> 21;
    29592670        $s7 += $carry6;
    29602671        $s6 -= $carry6 << 21;
    2961         /** @var int $carry8 */
    29622672        $carry8 = ($s8 + (1 << 20)) >> 21;
    29632673        $s9 += $carry8;
    29642674        $s8 -= $carry8 << 21;
    2965         /** @var int $carry10 */
    29662675        $carry10 = ($s10 + (1 << 20)) >> 21;
    29672676        $s11 += $carry10;
    29682677        $s10 -= $carry10 << 21;
    29692678
    2970         /** @var int $carry1 */
    29712679        $carry1 = ($s1 + (1 << 20)) >> 21;
    29722680        $s2 += $carry1;
    29732681        $s1 -= $carry1 << 21;
    2974         /** @var int $carry3 */
    29752682        $carry3 = ($s3 + (1 << 20)) >> 21;
    29762683        $s4 += $carry3;
    29772684        $s3 -= $carry3 << 21;
    2978         /** @var int $carry5 */
    29792685        $carry5 = ($s5 + (1 << 20)) >> 21;
    29802686        $s6 += $carry5;
    29812687        $s5 -= $carry5 << 21;
    2982         /** @var int $carry7 */
    29832688        $carry7 = ($s7 + (1 << 20)) >> 21;
    29842689        $s8 += $carry7;
    29852690        $s7 -= $carry7 << 21;
    2986         /** @var int $carry9 */
    29872691        $carry9 = ($s9 + (1 << 20)) >> 21;
    29882692        $s10 += $carry9;
    29892693        $s9 -= $carry9 << 21;
    2990         /** @var int $carry11 */
    29912694        $carry11 = ($s11 + (1 << 20)) >> 21;
    29922695        $s12 += $carry11;
     
    30012704        $s12 = 0;
    30022705
    3003         /** @var int $carry0 */
    30042706        $carry0 = $s0 >> 21;
    30052707        $s1 += $carry0;
    30062708        $s0 -= $carry0 << 21;
    3007         /** @var int $carry1 */
    30082709        $carry1 = $s1 >> 21;
    30092710        $s2 += $carry1;
    30102711        $s1 -= $carry1 << 21;
    3011         /** @var int $carry2 */
    30122712        $carry2 = $s2 >> 21;
    30132713        $s3 += $carry2;
    30142714        $s2 -= $carry2 << 21;
    3015         /** @var int $carry3 */
    30162715        $carry3 = $s3 >> 21;
    30172716        $s4 += $carry3;
    30182717        $s3 -= $carry3 << 21;
    3019         /** @var int $carry4 */
    30202718        $carry4 = $s4 >> 21;
    30212719        $s5 += $carry4;
    30222720        $s4 -= $carry4 << 21;
    3023         /** @var int $carry5 */
    30242721        $carry5 = $s5 >> 21;
    30252722        $s6 += $carry5;
    30262723        $s5 -= $carry5 << 21;
    3027         /** @var int $carry6 */
    30282724        $carry6 = $s6 >> 21;
    30292725        $s7 += $carry6;
    30302726        $s6 -= $carry6 << 21;
    3031         /** @var int $carry7 */
    30322727        $carry7 = $s7 >> 21;
    30332728        $s8 += $carry7;
    30342729        $s7 -= $carry7 << 21;
    3035         /** @var int $carry8 */
    30362730        $carry8 = $s8 >> 21;
    30372731        $s9 += $carry8;
    30382732        $s8 -= $carry8 << 21;
    3039         /** @var int $carry9 */
    30402733        $carry9 = $s9 >> 21;
    30412734        $s10 += $carry9;
    30422735        $s9 -= $carry9 << 21;
    3043         /** @var int $carry10 */
    30442736        $carry10 = $s10 >> 21;
    30452737        $s11 += $carry10;
    30462738        $s10 -= $carry10 << 21;
    3047         /** @var int $carry11 */
    30482739        $carry11 = $s11 >> 21;
    30492740        $s12 += $carry11;
     
    30572748        $s5 -= self::mul($s12,  683901, 20);
    30582749
    3059         /** @var int $carry0 */
    30602750        $carry0 = $s0 >> 21;
    30612751        $s1 += $carry0;
    30622752        $s0 -= $carry0 << 21;
    3063         /** @var int $carry1 */
    30642753        $carry1 = $s1 >> 21;
    30652754        $s2 += $carry1;
    30662755        $s1 -= $carry1 << 21;
    3067         /** @var int $carry2 */
    30682756        $carry2 = $s2 >> 21;
    30692757        $s3 += $carry2;
    30702758        $s2 -= $carry2 << 21;
    3071         /** @var int $carry3 */
    30722759        $carry3 = $s3 >> 21;
    30732760        $s4 += $carry3;
    30742761        $s3 -= $carry3 << 21;
    3075         /** @var int $carry4 */
    30762762        $carry4 = $s4 >> 21;
    30772763        $s5 += $carry4;
    30782764        $s4 -= $carry4 << 21;
    3079         /** @var int $carry5 */
    30802765        $carry5 = $s5 >> 21;
    30812766        $s6 += $carry5;
    30822767        $s5 -= $carry5 << 21;
    3083         /** @var int $carry6 */
    30842768        $carry6 = $s6 >> 21;
    30852769        $s7 += $carry6;
    30862770        $s6 -= $carry6 << 21;
    3087         /** @var int $carry7 */
    30882771        $carry7 = $s7 >> 21;
    30892772        $s8 += $carry7;
    30902773        $s7 -= $carry7 << 21;
    3091         /** @var int $carry8 */
    30922774        $carry8 = $s8 >> 21;
    30932775        $s9 += $carry8;
    30942776        $s8 -= $carry8 << 21;
    3095         /** @var int $carry9 */
    30962777        $carry9 = $s9 >> 21;
    30972778        $s10 += $carry9;
    30982779        $s9 -= $carry9 << 21;
    3099         /** @var int $carry10 */
    31002780        $carry10 = $s10 >> 21;
    31012781        $s11 += $carry10;
     
    31502830    public static function ge_mul_l(ParagonIE_Sodium_Core_Curve25519_Ge_P3 $A)
    31512831    {
    3152         /** @var array<int, int> $aslide */
    31532832        $aslide = array(
    31542833            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/Core/Curve25519/Fe.php

    r46586 r51591  
    6161     * @psalm-suppress MixedArrayOffset
    6262     */
     63    #[ReturnTypeWillChange]
    6364    public function offsetSet($offset, $value)
    6465    {
     
    8081     * @psalm-suppress MixedArrayOffset
    8182     */
     83    #[ReturnTypeWillChange]
    8284    public function offsetExists($offset)
    8385    {
     
    9294     * @psalm-suppress MixedArrayOffset
    9395     */
     96    #[ReturnTypeWillChange]
    9497    public function offsetUnset($offset)
    9598    {
     
    104107     * @psalm-suppress MixedArrayOffset
    105108     */
     109    #[ReturnTypeWillChange]
    106110    public function offsetGet($offset)
    107111    {
  • trunk/src/wp-includes/sodium_compat/src/Core/Util.php

    r51002 r51591  
    288288
    289289    /**
    290      * Catch hash_update() failures and throw instead of silently proceding
     290     * Catch hash_update() failures and throw instead of silently proceeding
    291291     *
    292292     * @param HashContext|resource &$hs
     
    587587            $b >>= 1;
    588588        }
     589        $c = (int) @($c & -1);
    589590
    590591        /**
     
    930931
    931932        if ($mbstring === null) {
     933            if (!defined('MB_OVERLOAD_STRING')) {
     934                $mbstring = false;
     935                return $mbstring;
     936            }
    932937            $mbstring = extension_loaded('mbstring')
    933938                && defined('MB_OVERLOAD_STRING')
  • trunk/src/wp-includes/sodium_compat/src/Core32/ChaCha20/Ctx.php

    r46586 r51591  
    7171     * @return void
    7272     */
     73    #[ReturnTypeWillChange]
    7374    public function offsetSet($offset, $value)
    7475    {
     
    9495     * @psalm-suppress MixedArrayOffset
    9596     */
     97    #[ReturnTypeWillChange]
    9698    public function offsetExists($offset)
    9799    {
     
    106108     * @psalm-suppress MixedArrayOffset
    107109     */
     110    #[ReturnTypeWillChange]
    108111    public function offsetUnset($offset)
    109112    {
     
    118121     * @psalm-suppress MixedArrayOffset
    119122     */
     123    #[ReturnTypeWillChange]
    120124    public function offsetGet($offset)
    121125    {
  • trunk/src/wp-includes/sodium_compat/src/Core32/Curve25519/Fe.php

    r46586 r51591  
    105105     * @throws TypeError
    106106     */
     107    #[ReturnTypeWillChange]
    107108    public function offsetSet($offset, $value)
    108109    {
     
    125126     * @psalm-suppress MixedArrayOffset
    126127     */
     128    #[ReturnTypeWillChange]
    127129    public function offsetExists($offset)
    128130    {
     
    137139     * @psalm-suppress MixedArrayOffset
    138140     */
     141    #[ReturnTypeWillChange]
    139142    public function offsetUnset($offset)
    140143    {
     
    149152     * @psalm-suppress MixedArrayOffset
    150153     */
     154    #[ReturnTypeWillChange]
    151155    public function offsetGet($offset)
    152156    {
Note: See TracChangeset for help on using the changeset viewer.