WordPress.org

Make WordPress Core


Ignore:
Timestamp:
12/09/2019 04:44:58 PM (17 months ago)
Author:
SergeyBiryukov
Message:

Upgrade/Install: Update sodium_compat to v1.12.1.

This includes a speedup for signature verification on most platforms and bugfixes for 32-bit platforms.

Props paragoninitiativeenterprises, lukaswaudentio.
Merges [46858] to the 5.3 branch.
Fixes #48371.

Location:
branches/5.3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/5.3

  • branches/5.3/src/wp-includes/sodium_compat/src/File.php

    r45344 r46859  
    680680
    681681        /* Security checks */
    682         if (ParagonIE_Sodium_Core_Ed25519::check_S_lt_L(self::substr($sig, 32, 32))) {
     682        if (
     683            (ParagonIE_Sodium_Core_Ed25519::chrToInt($sig[63]) & 240)
     684                &&
     685            ParagonIE_Sodium_Core_Ed25519::check_S_lt_L(self::substr($sig, 32, 32))
     686        ) {
    683687            throw new SodiumException('S < L - Invalid signature');
    684688        }
     
    842846            throw new SodiumException('Could not read input file');
    843847        }
    844         $first32 = ftell($ifp);
     848        $first32 = self::ftell($ifp);
    845849
    846850        /** @var string $subkey */
     
    876880
    877881        // Pre-write 16 blank bytes for the Poly1305 tag
    878         $start = ftell($ofp);
     882        $start = self::ftell($ofp);
    879883        fwrite($ofp, str_repeat("\x00", 16));
    880884
     
    927931            $subkey = null;
    928932        }
    929         $end = ftell($ofp);
     933        $end = self::ftell($ofp);
    930934
    931935        /*
     
    10441048    ) {
    10451049        /** @var int $pos */
    1046         $pos = ftell($ifp);
     1050        $pos = self::ftell($ifp);
    10471051
    10481052        /** @var int $iter */
     
    11071111
    11081112        /** @var int $originalPosition */
    1109         $originalPosition = ftell($fp);
     1113        $originalPosition = self::ftell($fp);
    11101114
    11111115        // Move file pointer to beginning of file
     
    13151319            throw new SodiumException('Could not read input file');
    13161320        }
    1317         $first32 = ftell($ifp);
     1321        $first32 = self::ftell($ifp);
    13181322
    13191323        /** @var string $subkey */
     
    13491353
    13501354        // Pre-write 16 blank bytes for the Poly1305 tag
    1351         $start = ftell($ofp);
     1355        $start = self::ftell($ofp);
    13521356        fwrite($ofp, str_repeat("\x00", 16));
    13531357
     
    14001404            $subkey = null;
    14011405        }
    1402         $end = ftell($ofp);
     1406        $end = self::ftell($ofp);
    14031407
    14041408        /*
     
    15161520    ) {
    15171521        /** @var int $pos */
    1518         $pos = ftell($ifp);
     1522        $pos = self::ftell($ifp);
    15191523
    15201524        /** @var int $iter */
     
    15411545        return $res;
    15421546    }
     1547
     1548    /**
     1549     * @param resource $resource
     1550     * @return int
     1551     * @throws SodiumException
     1552     */
     1553    private static function ftell($resource)
     1554    {
     1555        $return = ftell($resource);
     1556        if (!is_int($return)) {
     1557            throw new SodiumException('ftell() returned false');
     1558        }
     1559        return (int) $return;
     1560    }
    15431561}
Note: See TracChangeset for help on using the changeset viewer.