public static function ge_p3_to_cached(ParagonIE_Sodium_Core_Curve25519_Ge_P3
$p) { static $d2 = null;
if ($d2 === null
) { $d2 = ParagonIE_Sodium_Core_Curve25519_Fe::
fromArray(self::
$d2);
} /** @var ParagonIE_Sodium_Core_Curve25519_Fe $d2 */
$r =
new ParagonIE_Sodium_Core_Curve25519_Ge_Cached();
$r->YplusX = self::
fe_add($p->Y,
$p->X
);
$r->YminusX = self::
fe_sub($p->Y,
$p->X
);
$r->Z = self::
fe_copy($p->Z
);
$r->T2d = self::
fe_mul($p->T,
$d2);
return $r;
} /**
* @internal You should not use this directly from another application
*
* @param ParagonIE_Sodium_Core_Curve25519_Ge_P3 $p
* @return ParagonIE_Sodium_Core_Curve25519_Ge_P2
*/