wppaste
WordPress

ParagonIE_Sodium_Core_Ristretto255

Source
wp-includes/sodium_compat/src/Core/Ristretto255.php:6
Class ParagonIE_Sodium_Core_Ristretto255

Compatibility

WordPress
core
  • 6.7.7
  • 6.8.8
  • 6.9.7
  • 7.0.4
  • 7.1.0

Present in every tracked release (6.7.7 to 7.1.0).

Methods · 28

Source code

class ParagonIE_Sodium_Core_Ristretto255 extends ParagonIE_Sodium_Core_Ed25519{    const crypto_core_ristretto255_HASHBYTES = 64;    const HASH_SC_L = 48;    const CORE_H2C_SHA256 = 1;    const CORE_H2C_SHA512 = 2;     /**     * @param ParagonIE_Sodium_Core_Curve25519_Fe $f     * @param int $b     * @return ParagonIE_Sodium_Core_Curve25519_Fe     */    public static function fe_cneg(ParagonIE_Sodium_Core_Curve25519_Fe $f, $b)    {        $negf = self::fe_neg($f);        return self::fe_cmov($f, $negf, $b);    }     /**     * @param ParagonIE_Sodium_Core_Curve25519_Fe $f     * @return ParagonIE_Sodium_Core_Curve25519_Fe     * @throws SodiumException     */    public static function fe_abs(ParagonIE_Sodium_Core_Curve25519_Fe $f)    {        return self::fe_cneg($f, self::fe_isnegative($f));    }     /**     * Returns 0 if this field element results in all NUL bytes.     *     * @internal You should not use this directly from another application     *     * @param ParagonIE_Sodium_Core_Curve25519_Fe $f     * @return int     * @throws SodiumException     */    public static function fe_iszero(ParagonIE_Sodium_Core_Curve25519_Fe $f)    {        static $zero;        if ($zero === null) {            $zero = str_repeat("\x00", 32);        }        /** @var string $zero */        $str = self::fe_tobytes($f);         $d = 0;        for ($i = 0; $i < 32; ++$i) {            $d |= self::chrToInt($str[$i]);        }        return (($d - 1) >> 31) & 1;    }      /**     * @param ParagonIE_Sodium_Core_Curve25519_Fe $u     * @param ParagonIE_Sodium_Core_Curve25519_Fe $v     * @return array{x: ParagonIE_Sodium_Core_Curve25519_Fe, nonsquare: int}     *     * @throws SodiumException     */    public static function ristretto255_sqrt_ratio_m1(        ParagonIE_Sodium_Core_Curve25519_Fe $u,        ParagonIE_Sodium_Core_Curve25519_Fe $v    ) {        $sqrtm1 = ParagonIE_Sodium_Core_Curve25519_Fe::fromArray(self::$sqrtm1);         $v3 = self::fe_mul(            self::fe_sq($v),            $v        ); /* v3 = v^3 */        $x = self::fe_mul(            self::fe_mul(                self::fe_sq($v3),                $u            ),            $v        ); /* x = uv^7 */         $x = self::fe_mul(

Changelog

Unchanged from 6.7.7 through 7.1.0.

  1. 6.7.7
  2. 6.8.8
  3. 6.9.7
  4. 7.0.4
  5. 7.1.0

Signature, return type and hooks compared across 5 parsed releases.

About this page

Parsed data
Generated from the wordpress-develop 7.1.0 tag, from src/wp-includes/sodium_compat/src/Core/Ristretto255.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.