Summery Summery
Give: 32-byte string.
Syntax Syntax
Description Description
Receive: A field element object to use for internal calculations.
Parameters Parameters
- $s
-
(Required)
Return Return
Source Source
File: wp-includes/sodium_compat/src/Core/Curve25519.php
public static function fe_frombytes($s) { if (self::strlen($s) !== 32) { throw new RangeException('Expected a 32-byte string.'); } /** @var int $h0 */ $h0 = self::load_4($s); /** @var int $h1 */ $h1 = self::load_3(self::substr($s, 4, 3)) << 6; /** @var int $h2 */ $h2 = self::load_3(self::substr($s, 7, 3)) << 5; /** @var int $h3 */ $h3 = self::load_3(self::substr($s, 10, 3)) << 3; /** @var int $h4 */ $h4 = self::load_3(self::substr($s, 13, 3)) << 2; /** @var int $h5 */ $h5 = self::load_4(self::substr($s, 16, 4)); /** @var int $h6 */ $h6 = self::load_3(self::substr($s, 20, 3)) << 7; /** @var int $h7 */ $h7 = self::load_3(self::substr($s, 23, 3)) << 5; /** @var int $h8 */ $h8 = self::load_3(self::substr($s, 26, 3)) << 4; /** @var int $h9 */ $h9 = (self::load_3(self::substr($s, 29, 3)) & 8388607) << 2; /** @var int $carry9 */ $carry9 = ($h9 + (1 << 24)) >> 25; $h0 += self::mul($carry9, 19, 5); $h9 -= $carry9 << 25; /** @var int $carry1 */ $carry1 = ($h1 + (1 << 24)) >> 25; $h2 += $carry1; $h1 -= $carry1 << 25; /** @var int $carry3 */ $carry3 = ($h3 + (1 << 24)) >> 25; $h4 += $carry3; $h3 -= $carry3 << 25; /** @var int $carry5 */ $carry5 = ($h5 + (1 << 24)) >> 25; $h6 += $carry5; $h5 -= $carry5 << 25; /** @var int $carry7 */ $carry7 = ($h7 + (1 << 24)) >> 25; $h8 += $carry7; $h7 -= $carry7 << 25; /** @var int $carry0 */ $carry0 = ($h0 + (1 << 25)) >> 26; $h1 += $carry0; $h0 -= $carry0 << 26; /** @var int $carry2 */ $carry2 = ($h2 + (1 << 25)) >> 26; $h3 += $carry2; $h2 -= $carry2 << 26; /** @var int $carry4 */ $carry4 = ($h4 + (1 << 25)) >> 26; $h5 += $carry4; $h4 -= $carry4 << 26; /** @var int $carry6 */ $carry6 = ($h6 + (1 << 25)) >> 26; $h7 += $carry6; $h6 -= $carry6 << 26; /** @var int $carry8 */ $carry8 = ($h8 + (1 << 25)) >> 26; $h9 += $carry8; $h8 -= $carry8 << 26; return ParagonIE_Sodium_Core_Curve25519_Fe::fromArray( array( (int) $h0, (int) $h1, (int) $h2, (int) $h3, (int) $h4, (int) $h5, (int) $h6, (int) $h7, (int) $h8, (int) $h9 ) ); }