You are here

public static function ParagonIE_Sodium_Core_Curve25519::ge_p3_to_cached in Automatic Updates 7

Same name and namespace in other branches
  1. 8 vendor/paragonie/sodium_compat/src/Core/Curve25519.php \ParagonIE_Sodium_Core_Curve25519::ge_p3_to_cached()

@internal You should not use this directly from another application

Parameters

ParagonIE_Sodium_Core_Curve25519_Ge_P3 $p:

Return value

ParagonIE_Sodium_Core_Curve25519_Ge_Cached

2 calls to ParagonIE_Sodium_Core_Curve25519::ge_p3_to_cached()
ParagonIE_Sodium_Core_Curve25519::ge_double_scalarmult_vartime in vendor/paragonie/sodium_compat/src/Core/Curve25519.php
@internal You should not use this directly from another application
ParagonIE_Sodium_Core_Curve25519::ge_mul_l in vendor/paragonie/sodium_compat/src/Core/Curve25519.php
multiply by the order of the main subgroup l = 2^252+27742317777372353535851937790883648493

File

vendor/paragonie/sodium_compat/src/Core/Curve25519.php, line 1564

Class

ParagonIE_Sodium_Core_Curve25519
Class ParagonIE_Sodium_Core_Curve25519

Code

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;
}