WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Самая быстрая Тема-конструктор для WordPress
функция не описана

ParagonIE_Sodium_Core32_Curve25519::ge_select() public WP 1.0

{} Это метод класса: ParagonIE_Sodium_Core32_Curve25519{}

Хуков нет.

Возвращает

ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp.

Использование

$result = ParagonIE_Sodium_Core32_Curve25519::ge_select( $pos, $b );
$pos(число)

По умолчанию: 0
$b(число)

По умолчанию: 0

Код ParagonIE_Sodium_Core32_Curve25519::ge_select() WP 5.5.1

<?php
public static function ge_select($pos = 0, $b = 0)
{
    static $base = null;
    if ($base === null) {
        $base = array();
        foreach (self::$base as $i => $bas) {
            for ($j = 0; $j < 8; ++$j) {
                $base[$i][$j] = new ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp(
                    ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray(
                        array(
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][0]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][1]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][2]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][3]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][4]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][5]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][6]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][7]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][8]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][0][9])
                        )
                    ),
                    ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray(
                        array(
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][0]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][1]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][2]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][3]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][4]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][5]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][6]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][7]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][8]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][1][9])
                        )
                    ),
                    ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray(
                        array(
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][0]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][1]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][2]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][3]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][4]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][5]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][6]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][7]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][8]),
                            ParagonIE_Sodium_Core32_Int32::fromInt($bas[$j][2][9])
                        )
                    )
                );
            }
        }
    }
    if (!is_int($pos)) {
        throw new InvalidArgumentException('Position must be an integer');
    }
    if ($pos < 0 || $pos > 31) {
        throw new RangeException('Position is out of range [0, 31]');
    }

    $bnegative = self::negative($b);
    /** @var int $babs */
    $babs = $b - (((-$bnegative) & $b) << 1);

    $t = self::ge_precomp_0();
    for ($i = 0; $i < 8; ++$i) {
        $t = self::cmov(
            $t,
            $base[$pos][$i],
            self::equal($babs, $i + 1)
        );
    }
    $minusT = new ParagonIE_Sodium_Core32_Curve25519_Ge_Precomp(
        self::fe_copy($t->yminusx),
        self::fe_copy($t->yplusx),
        self::fe_neg($t->xy2d)
    );
    return self::cmov($t, $minusT, -$bnegative);
}