You are here

public static function ParagonIE_Sodium_Core32_Curve25519::fe_pow22523 in Automatic Updates 8

Same name and namespace in other branches
  1. 7 vendor/paragonie/sodium_compat/src/Core32/Curve25519.php \ParagonIE_Sodium_Core32_Curve25519::fe_pow22523()

@internal You should not use this directly from another application

@ref https://github.com/jedisct1/libsodium/blob/68564326e1e9dc57ef03746f85734...

Parameters

ParagonIE_Sodium_Core32_Curve25519_Fe $z:

Return value

ParagonIE_Sodium_Core32_Curve25519_Fe

Throws

SodiumException

TypeError

1 call to ParagonIE_Sodium_Core32_Curve25519::fe_pow22523()
ParagonIE_Sodium_Core32_Curve25519::ge_frombytes_negate_vartime in vendor/paragonie/sodium_compat/src/Core32/Curve25519.php
@internal You should not use this directly from another application

File

vendor/paragonie/sodium_compat/src/Core32/Curve25519.php, line 1235

Class

ParagonIE_Sodium_Core32_Curve25519
Class ParagonIE_Sodium_Core32_Curve25519

Code

public static function fe_pow22523(ParagonIE_Sodium_Core32_Curve25519_Fe $z) {

  # fe_sq(t0, z);

  # fe_sq(t1, t0);

  # fe_sq(t1, t1);

  # fe_mul(t1, z, t1);

  # fe_mul(t0, t0, t1);

  # fe_sq(t0, t0);

  # fe_mul(t0, t1, t0);

  # fe_sq(t1, t0);
  $t0 = self::fe_sq($z);
  $t1 = self::fe_sq($t0);
  $t1 = self::fe_sq($t1);
  $t1 = self::fe_mul($z, $t1);
  $t0 = self::fe_mul($t0, $t1);
  $t0 = self::fe_sq($t0);
  $t0 = self::fe_mul($t1, $t0);
  $t1 = self::fe_sq($t0);

  # for (i = 1; i < 5; ++i) {

  #     fe_sq(t1, t1);

  # }
  for ($i = 1; $i < 5; ++$i) {
    $t1 = self::fe_sq($t1);
  }

  # fe_mul(t0, t1, t0);

  # fe_sq(t1, t0);
  $t0 = self::fe_mul($t1, $t0);
  $t1 = self::fe_sq($t0);

  # for (i = 1; i < 10; ++i) {

  #     fe_sq(t1, t1);

  # }
  for ($i = 1; $i < 10; ++$i) {
    $t1 = self::fe_sq($t1);
  }

  # fe_mul(t1, t1, t0);

  # fe_sq(t2, t1);
  $t1 = self::fe_mul($t1, $t0);
  $t2 = self::fe_sq($t1);

  # for (i = 1; i < 20; ++i) {

  #     fe_sq(t2, t2);

  # }
  for ($i = 1; $i < 20; ++$i) {
    $t2 = self::fe_sq($t2);
  }

  # fe_mul(t1, t2, t1);

  # fe_sq(t1, t1);
  $t1 = self::fe_mul($t2, $t1);
  $t1 = self::fe_sq($t1);

  # for (i = 1; i < 10; ++i) {

  #     fe_sq(t1, t1);

  # }
  for ($i = 1; $i < 10; ++$i) {
    $t1 = self::fe_sq($t1);
  }

  # fe_mul(t0, t1, t0);

  # fe_sq(t1, t0);
  $t0 = self::fe_mul($t1, $t0);
  $t1 = self::fe_sq($t0);

  # for (i = 1; i < 50; ++i) {

  #     fe_sq(t1, t1);

  # }
  for ($i = 1; $i < 50; ++$i) {
    $t1 = self::fe_sq($t1);
  }

  # fe_mul(t1, t1, t0);

  # fe_sq(t2, t1);
  $t1 = self::fe_mul($t1, $t0);
  $t2 = self::fe_sq($t1);

  # for (i = 1; i < 100; ++i) {

  #     fe_sq(t2, t2);

  # }
  for ($i = 1; $i < 100; ++$i) {
    $t2 = self::fe_sq($t2);
  }

  # fe_mul(t1, t2, t1);

  # fe_sq(t1, t1);
  $t1 = self::fe_mul($t2, $t1);
  $t1 = self::fe_sq($t1);

  # for (i = 1; i < 50; ++i) {

  #     fe_sq(t1, t1);

  # }
  for ($i = 1; $i < 50; ++$i) {
    $t1 = self::fe_sq($t1);
  }

  # fe_mul(t0, t1, t0);

  # fe_sq(t0, t0);

  # fe_sq(t0, t0);

  # fe_mul(out, t0, z);
  $t0 = self::fe_mul($t1, $t0);
  $t0 = self::fe_sq($t0);
  $t0 = self::fe_sq($t0);
  return self::fe_mul($t0, $z);
}