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

ParagonIE_Sodium_Core32_Curve25519::fe_frombytes() public WP 1.0

Give: 32-byte string. Receive: A field element object to use for internal calculations.

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

Хуков нет.

Возвращает

ParagonIE_Sodium_Core32_Curve25519_Fe.

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

$result = ParagonIE_Sodium_Core32_Curve25519::fe_frombytes( $s );
$s(строка) (обязательный)

Код ParagonIE_Sodium_Core32_Curve25519::fe_frombytes() WP 5.5.2

<?php
public static function fe_frombytes($s)
{
    if (self::strlen($s) !== 32) {
        throw new RangeException('Expected a 32-byte string.');
    }
    /** @var ParagonIE_Sodium_Core32_Int32 $h0 */
    $h0 = ParagonIE_Sodium_Core32_Int32::fromInt(
        self::load_4($s)
    );
    /** @var ParagonIE_Sodium_Core32_Int32 $h1 */
    $h1 = ParagonIE_Sodium_Core32_Int32::fromInt(
        self::load_3(self::substr($s, 4, 3)) << 6
    );
    /** @var ParagonIE_Sodium_Core32_Int32 $h2 */
    $h2 = ParagonIE_Sodium_Core32_Int32::fromInt(
        self::load_3(self::substr($s, 7, 3)) << 5
    );
    /** @var ParagonIE_Sodium_Core32_Int32 $h3 */
    $h3 = ParagonIE_Sodium_Core32_Int32::fromInt(
        self::load_3(self::substr($s, 10, 3)) << 3
    );
    /** @var ParagonIE_Sodium_Core32_Int32 $h4 */
    $h4 = ParagonIE_Sodium_Core32_Int32::fromInt(
        self::load_3(self::substr($s, 13, 3)) << 2
    );
    /** @var ParagonIE_Sodium_Core32_Int32 $h5 */
    $h5 = ParagonIE_Sodium_Core32_Int32::fromInt(
        self::load_4(self::substr($s, 16, 4))
    );
    /** @var ParagonIE_Sodium_Core32_Int32 $h6 */
    $h6 = ParagonIE_Sodium_Core32_Int32::fromInt(
        self::load_3(self::substr($s, 20, 3)) << 7
    );
    /** @var ParagonIE_Sodium_Core32_Int32 $h7 */
    $h7 = ParagonIE_Sodium_Core32_Int32::fromInt(
        self::load_3(self::substr($s, 23, 3)) << 5
    );
    /** @var ParagonIE_Sodium_Core32_Int32 $h8 */
    $h8 = ParagonIE_Sodium_Core32_Int32::fromInt(
        self::load_3(self::substr($s, 26, 3)) << 4
    );
    /** @var ParagonIE_Sodium_Core32_Int32 $h9 */
    $h9 = ParagonIE_Sodium_Core32_Int32::fromInt(
        (self::load_3(self::substr($s, 29, 3)) & 8388607) << 2
    );

    $carry9 = $h9->addInt(1 << 24)->shiftRight(25);
    $h0 = $h0->addInt32($carry9->mulInt(19, 5));
    $h9 = $h9->subInt32($carry9->shiftLeft(25));

    $carry1 = $h1->addInt(1 << 24)->shiftRight(25);
    $h2 = $h2->addInt32($carry1);
    $h1 = $h1->subInt32($carry1->shiftLeft(25));

    $carry3 = $h3->addInt(1 << 24)->shiftRight(25);
    $h4 = $h4->addInt32($carry3);
    $h3 = $h3->subInt32($carry3->shiftLeft(25));

    $carry5 = $h5->addInt(1 << 24)->shiftRight(25);
    $h6 = $h6->addInt32($carry5);
    $h5 = $h5->subInt32($carry5->shiftLeft(25));

    $carry7 = $h7->addInt(1 << 24)->shiftRight(25);
    $h8 = $h8->addInt32($carry7);
    $h7 = $h7->subInt32($carry7->shiftLeft(25));

    $carry0 = $h0->addInt(1 << 25)->shiftRight(26);
    $h1 = $h1->addInt32($carry0);
    $h0 = $h0->subInt32($carry0->shiftLeft(26));

    $carry2 = $h2->addInt(1 << 25)->shiftRight(26);
    $h3 = $h3->addInt32($carry2);
    $h2 = $h2->subInt32($carry2->shiftLeft(26));

    $carry4 = $h4->addInt(1 << 25)->shiftRight(26);
    $h5 = $h5->addInt32($carry4);
    $h4 = $h4->subInt32($carry4->shiftLeft(26));

    $carry6 = $h6->addInt(1 << 25)->shiftRight(26);
    $h7 = $h7->addInt32($carry6);
    $h6 = $h6->subInt32($carry6->shiftLeft(26));

    $carry8 = $h8->addInt(1 << 25)->shiftRight(26);
    $h9 = $h9->addInt32($carry8);
    $h8 = $h8->subInt32($carry8->shiftLeft(26));

    return ParagonIE_Sodium_Core32_Curve25519_Fe::fromArray(
        array($h0, $h1, $h2,$h3, $h4, $h5, $h6, $h7, $h8, $h9)
    );
}