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

ParagonIE_Sodium_Core32_Curve25519::sc_reduce() public WP 1.0

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

Хуков нет.

Возвращает

Строку.

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

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

Код ParagonIE_Sodium_Core32_Curve25519::sc_reduce() WP 5.5.1

<?php
public static function sc_reduce($s)
{
    /**
     * @var ParagonIE_Sodium_Core32_Int64 $s0
     * @var ParagonIE_Sodium_Core32_Int64 $s1
     * @var ParagonIE_Sodium_Core32_Int64 $s2
     * @var ParagonIE_Sodium_Core32_Int64 $s3
     * @var ParagonIE_Sodium_Core32_Int64 $s4
     * @var ParagonIE_Sodium_Core32_Int64 $s5
     * @var ParagonIE_Sodium_Core32_Int64 $s6
     * @var ParagonIE_Sodium_Core32_Int64 $s7
     * @var ParagonIE_Sodium_Core32_Int64 $s8
     * @var ParagonIE_Sodium_Core32_Int64 $s9
     * @var ParagonIE_Sodium_Core32_Int64 $s10
     * @var ParagonIE_Sodium_Core32_Int64 $s11
     * @var ParagonIE_Sodium_Core32_Int64 $s12
     * @var ParagonIE_Sodium_Core32_Int64 $s13
     * @var ParagonIE_Sodium_Core32_Int64 $s14
     * @var ParagonIE_Sodium_Core32_Int64 $s15
     * @var ParagonIE_Sodium_Core32_Int64 $s16
     * @var ParagonIE_Sodium_Core32_Int64 $s17
     * @var ParagonIE_Sodium_Core32_Int64 $s18
     * @var ParagonIE_Sodium_Core32_Int64 $s19
     * @var ParagonIE_Sodium_Core32_Int64 $s20
     * @var ParagonIE_Sodium_Core32_Int64 $s21
     * @var ParagonIE_Sodium_Core32_Int64 $s22
     * @var ParagonIE_Sodium_Core32_Int64 $s23
     */
    $s0 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($s, 0, 3)));
    $s1 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 2, 4)) >> 5));
    $s2 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 5, 3)) >> 2));
    $s3 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 7, 4)) >> 7));
    $s4 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 10, 4)) >> 4));
    $s5 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 13, 3)) >> 1));
    $s6 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 15, 4)) >> 6));
    $s7 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 18, 4)) >> 3));
    $s8 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($s, 21, 3)));
    $s9 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 23, 4)) >> 5));
    $s10 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 26, 3)) >> 2));
    $s11 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 28, 4)) >> 7));
    $s12 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 31, 4)) >> 4));
    $s13 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 34, 3)) >> 1));
    $s14 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 36, 4)) >> 6));
    $s15 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 39, 4)) >> 3));
    $s16 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & self::load_3(self::substr($s, 42, 3)));
    $s17 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 44, 4)) >> 5));
    $s18 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 47, 3)) >> 2));
    $s19 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 49, 4)) >> 7));
    $s20 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 52, 4)) >> 4));
    $s21 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_3(self::substr($s, 55, 3)) >> 1));
    $s22 = ParagonIE_Sodium_Core32_Int64::fromInt(2097151 & (self::load_4(self::substr($s, 57, 4)) >> 6));
    $s23 = ParagonIE_Sodium_Core32_Int64::fromInt(0x1fffffff & (self::load_4(self::substr($s, 60, 4)) >> 3));

    $s11 = $s11->addInt64($s23->mulInt(666643, 20));
    $s12 = $s12->addInt64($s23->mulInt(470296, 19));
    $s13 = $s13->addInt64($s23->mulInt(654183, 20));
    $s14 = $s14->subInt64($s23->mulInt(997805, 20));
    $s15 = $s15->addInt64($s23->mulInt(136657, 18));
    $s16 = $s16->subInt64($s23->mulInt(683901, 20));

    $s10 = $s10->addInt64($s22->mulInt(666643, 20));
    $s11 = $s11->addInt64($s22->mulInt(470296, 19));
    $s12 = $s12->addInt64($s22->mulInt(654183, 20));
    $s13 = $s13->subInt64($s22->mulInt(997805, 20));
    $s14 = $s14->addInt64($s22->mulInt(136657, 18));
    $s15 = $s15->subInt64($s22->mulInt(683901, 20));

    $s9  =  $s9->addInt64($s21->mulInt(666643, 20));
    $s10 = $s10->addInt64($s21->mulInt(470296, 19));
    $s11 = $s11->addInt64($s21->mulInt(654183, 20));
    $s12 = $s12->subInt64($s21->mulInt(997805, 20));
    $s13 = $s13->addInt64($s21->mulInt(136657, 18));
    $s14 = $s14->subInt64($s21->mulInt(683901, 20));

    $s8  =  $s8->addInt64($s20->mulInt(666643, 20));
    $s9  =  $s9->addInt64($s20->mulInt(470296, 19));
    $s10 = $s10->addInt64($s20->mulInt(654183, 20));
    $s11 = $s11->subInt64($s20->mulInt(997805, 20));
    $s12 = $s12->addInt64($s20->mulInt(136657, 18));
    $s13 = $s13->subInt64($s20->mulInt(683901, 20));

    $s7  =  $s7->addInt64($s19->mulInt(666643, 20));
    $s8  =  $s8->addInt64($s19->mulInt(470296, 19));
    $s9  =  $s9->addInt64($s19->mulInt(654183, 20));
    $s10 = $s10->subInt64($s19->mulInt(997805, 20));
    $s11 = $s11->addInt64($s19->mulInt(136657, 18));
    $s12 = $s12->subInt64($s19->mulInt(683901, 20));

    $s6  =  $s6->addInt64($s18->mulInt(666643, 20));
    $s7  =  $s7->addInt64($s18->mulInt(470296, 19));
    $s8  =  $s8->addInt64($s18->mulInt(654183, 20));
    $s9  =  $s9->subInt64($s18->mulInt(997805, 20));
    $s10 = $s10->addInt64($s18->mulInt(136657, 18));
    $s11 = $s11->subInt64($s18->mulInt(683901, 20));

    $carry6 = $s6->addInt(1 << 20)->shiftRight(21);
    $s7 = $s7->addInt64($carry6);
    $s6 = $s6->subInt64($carry6->shiftLeft(21));
    $carry8 = $s8->addInt(1 << 20)->shiftRight(21);
    $s9 = $s9->addInt64($carry8);
    $s8 = $s8->subInt64($carry8->shiftLeft(21));
    $carry10 = $s10->addInt(1 << 20)->shiftRight(21);
    $s11 = $s11->addInt64($carry10);
    $s10 = $s10->subInt64($carry10->shiftLeft(21));
    $carry12 = $s12->addInt(1 << 20)->shiftRight(21);
    $s13 = $s13->addInt64($carry12);
    $s12 = $s12->subInt64($carry12->shiftLeft(21));
    $carry14 = $s14->addInt(1 << 20)->shiftRight(21);
    $s15 = $s15->addInt64($carry14);
    $s14 = $s14->subInt64($carry14->shiftLeft(21));
    $carry16 = $s16->addInt(1 << 20)->shiftRight(21);
    $s17 = $s17->addInt64($carry16);
    $s16 = $s16->subInt64($carry16->shiftLeft(21));

    $carry7 = $s7->addInt(1 << 20)->shiftRight(21);
    $s8 = $s8->addInt64($carry7);
    $s7 = $s7->subInt64($carry7->shiftLeft(21));
    $carry9 = $s9->addInt(1 << 20)->shiftRight(21);
    $s10 = $s10->addInt64($carry9);
    $s9 = $s9->subInt64($carry9->shiftLeft(21));
    $carry11 = $s11->addInt(1 << 20)->shiftRight(21);
    $s12 = $s12->addInt64($carry11);
    $s11 = $s11->subInt64($carry11->shiftLeft(21));
    $carry13 = $s13->addInt(1 << 20)->shiftRight(21);
    $s14 = $s14->addInt64($carry13);
    $s13 = $s13->subInt64($carry13->shiftLeft(21));
    $carry15 = $s15->addInt(1 << 20)->shiftRight(21);
    $s16 = $s16->addInt64($carry15);
    $s15 = $s15->subInt64($carry15->shiftLeft(21));

    $s5  =  $s5->addInt64($s17->mulInt(666643, 20));
    $s6  =  $s6->addInt64($s17->mulInt(470296, 19));
    $s7  =  $s7->addInt64($s17->mulInt(654183, 20));
    $s8  =  $s8->subInt64($s17->mulInt(997805, 20));
    $s9  =  $s9->addInt64($s17->mulInt(136657, 18));
    $s10 = $s10->subInt64($s17->mulInt(683901, 20));

    $s4  =  $s4->addInt64($s16->mulInt(666643, 20));
    $s5  =  $s5->addInt64($s16->mulInt(470296, 19));
    $s6  =  $s6->addInt64($s16->mulInt(654183, 20));
    $s7  =  $s7->subInt64($s16->mulInt(997805, 20));
    $s8  =  $s8->addInt64($s16->mulInt(136657, 18));
    $s9  =  $s9->subInt64($s16->mulInt(683901, 20));

    $s3  =  $s3->addInt64($s15->mulInt(666643, 20));
    $s4  =  $s4->addInt64($s15->mulInt(470296, 19));
    $s5  =  $s5->addInt64($s15->mulInt(654183, 20));
    $s6  =  $s6->subInt64($s15->mulInt(997805, 20));
    $s7  =  $s7->addInt64($s15->mulInt(136657, 18));
    $s8  =  $s8->subInt64($s15->mulInt(683901, 20));

    $s2  =  $s2->addInt64($s14->mulInt(666643, 20));
    $s3  =  $s3->addInt64($s14->mulInt(470296, 19));
    $s4  =  $s4->addInt64($s14->mulInt(654183, 20));
    $s5  =  $s5->subInt64($s14->mulInt(997805, 20));
    $s6  =  $s6->addInt64($s14->mulInt(136657, 18));
    $s7  =  $s7->subInt64($s14->mulInt(683901, 20));

    $s1  =  $s1->addInt64($s13->mulInt(666643, 20));
    $s2  =  $s2->addInt64($s13->mulInt(470296, 19));
    $s3  =  $s3->addInt64($s13->mulInt(654183, 20));
    $s4  =  $s4->subInt64($s13->mulInt(997805, 20));
    $s5  =  $s5->addInt64($s13->mulInt(136657, 18));
    $s6  =  $s6->subInt64($s13->mulInt(683901, 20));

    $s0  =  $s0->addInt64($s12->mulInt(666643, 20));
    $s1  =  $s1->addInt64($s12->mulInt(470296, 19));
    $s2  =  $s2->addInt64($s12->mulInt(654183, 20));
    $s3  =  $s3->subInt64($s12->mulInt(997805, 20));
    $s4  =  $s4->addInt64($s12->mulInt(136657, 18));
    $s5  =  $s5->subInt64($s12->mulInt(683901, 20));
    $s12 = new ParagonIE_Sodium_Core32_Int64();

    $carry0 = $s0->addInt(1 << 20)->shiftRight(21);
    $s1 = $s1->addInt64($carry0);
    $s0 = $s0->subInt64($carry0->shiftLeft(21));
    $carry2 = $s2->addInt(1 << 20)->shiftRight(21);
    $s3 = $s3->addInt64($carry2);
    $s2 = $s2->subInt64($carry2->shiftLeft(21));
    $carry4 = $s4->addInt(1 << 20)->shiftRight(21);
    $s5 = $s5->addInt64($carry4);
    $s4 = $s4->subInt64($carry4->shiftLeft(21));
    $carry6 = $s6->addInt(1 << 20)->shiftRight(21);
    $s7 = $s7->addInt64($carry6);
    $s6 = $s6->subInt64($carry6->shiftLeft(21));
    $carry8 = $s8->addInt(1 << 20)->shiftRight(21);
    $s9 = $s9->addInt64($carry8);
    $s8 = $s8->subInt64($carry8->shiftLeft(21));
    $carry10 = $s10->addInt(1 << 20)->shiftRight(21);
    $s11 = $s11->addInt64($carry10);
    $s10 = $s10->subInt64($carry10->shiftLeft(21));
    $carry1 = $s1->addInt(1 << 20)->shiftRight(21);
    $s2 = $s2->addInt64($carry1);
    $s1 = $s1->subInt64($carry1->shiftLeft(21));
    $carry3 = $s3->addInt(1 << 20)->shiftRight(21);
    $s4 = $s4->addInt64($carry3);
    $s3 = $s3->subInt64($carry3->shiftLeft(21));
    $carry5 = $s5->addInt(1 << 20)->shiftRight(21);
    $s6 = $s6->addInt64($carry5);
    $s5 = $s5->subInt64($carry5->shiftLeft(21));
    $carry7 = $s7->addInt(1 << 20)->shiftRight(21);
    $s8 = $s8->addInt64($carry7);
    $s7 = $s7->subInt64($carry7->shiftLeft(21));
    $carry9 = $s9->addInt(1 << 20)->shiftRight(21);
    $s10 = $s10->addInt64($carry9);
    $s9 = $s9->subInt64($carry9->shiftLeft(21));
    $carry11 = $s11->addInt(1 << 20)->shiftRight(21);
    $s12 = $s12->addInt64($carry11);
    $s11 = $s11->subInt64($carry11->shiftLeft(21));

    $s0  =  $s0->addInt64($s12->mulInt(666643, 20));
    $s1  =  $s1->addInt64($s12->mulInt(470296, 19));
    $s2  =  $s2->addInt64($s12->mulInt(654183, 20));
    $s3  =  $s3->subInt64($s12->mulInt(997805, 20));
    $s4  =  $s4->addInt64($s12->mulInt(136657, 18));
    $s5  =  $s5->subInt64($s12->mulInt(683901, 20));
    $s12 = new ParagonIE_Sodium_Core32_Int64();

    $carry0 = $s0->shiftRight(21);
    $s1 = $s1->addInt64($carry0);
    $s0 = $s0->subInt64($carry0->shiftLeft(21));
    $carry1 = $s1->shiftRight(21);
    $s2 = $s2->addInt64($carry1);
    $s1 = $s1->subInt64($carry1->shiftLeft(21));
    $carry2 = $s2->shiftRight(21);
    $s3 = $s3->addInt64($carry2);
    $s2 = $s2->subInt64($carry2->shiftLeft(21));
    $carry3 = $s3->shiftRight(21);
    $s4 = $s4->addInt64($carry3);
    $s3 = $s3->subInt64($carry3->shiftLeft(21));
    $carry4 = $s4->shiftRight(21);
    $s5 = $s5->addInt64($carry4);
    $s4 = $s4->subInt64($carry4->shiftLeft(21));
    $carry5 = $s5->shiftRight(21);
    $s6 = $s6->addInt64($carry5);
    $s5 = $s5->subInt64($carry5->shiftLeft(21));
    $carry6 = $s6->shiftRight(21);
    $s7 = $s7->addInt64($carry6);
    $s6 = $s6->subInt64($carry6->shiftLeft(21));
    $carry7 = $s7->shiftRight(21);
    $s8 = $s8->addInt64($carry7);
    $s7 = $s7->subInt64($carry7->shiftLeft(21));
    $carry8 = $s8->shiftRight(21);
    $s9 = $s9->addInt64($carry8);
    $s8 = $s8->subInt64($carry8->shiftLeft(21));
    $carry9 = $s9->shiftRight(21);
    $s10 = $s10->addInt64($carry9);
    $s9 = $s9->subInt64($carry9->shiftLeft(21));
    $carry10 = $s10->shiftRight(21);
    $s11 = $s11->addInt64($carry10);
    $s10 = $s10->subInt64($carry10->shiftLeft(21));
    $carry11 = $s11->shiftRight(21);
    $s12 = $s12->addInt64($carry11);
    $s11 = $s11->subInt64($carry11->shiftLeft(21));

    $s0  =  $s0->addInt64($s12->mulInt(666643, 20));
    $s1  =  $s1->addInt64($s12->mulInt(470296, 19));
    $s2  =  $s2->addInt64($s12->mulInt(654183, 20));
    $s3  =  $s3->subInt64($s12->mulInt(997805, 20));
    $s4  =  $s4->addInt64($s12->mulInt(136657, 18));
    $s5  =  $s5->subInt64($s12->mulInt(683901, 20));

    $carry0 = $s0->shiftRight(21);
    $s1 = $s1->addInt64($carry0);
    $s0 = $s0->subInt64($carry0->shiftLeft(21));
    $carry1 = $s1->shiftRight(21);
    $s2 = $s2->addInt64($carry1);
    $s1 = $s1->subInt64($carry1->shiftLeft(21));
    $carry2 = $s2->shiftRight(21);
    $s3 = $s3->addInt64($carry2);
    $s2 = $s2->subInt64($carry2->shiftLeft(21));
    $carry3 = $s3->shiftRight(21);
    $s4 = $s4->addInt64($carry3);
    $s3 = $s3->subInt64($carry3->shiftLeft(21));
    $carry4 = $s4->shiftRight(21);
    $s5 = $s5->addInt64($carry4);
    $s4 = $s4->subInt64($carry4->shiftLeft(21));
    $carry5 = $s5->shiftRight(21);
    $s6 = $s6->addInt64($carry5);
    $s5 = $s5->subInt64($carry5->shiftLeft(21));
    $carry6 = $s6->shiftRight(21);
    $s7 = $s7->addInt64($carry6);
    $s6 = $s6->subInt64($carry6->shiftLeft(21));
    $carry7 = $s7->shiftRight(21);
    $s8 = $s8->addInt64($carry7);
    $s7 = $s7->subInt64($carry7->shiftLeft(21));
    $carry8 = $s8->shiftRight(21);
    $s9 = $s9->addInt64($carry8);
    $s8 = $s8->subInt64($carry8->shiftLeft(21));
    $carry9 = $s9->shiftRight(21);
    $s10 = $s10->addInt64($carry9);
    $s9 = $s9->subInt64($carry9->shiftLeft(21));
    $carry10 = $s10->shiftRight(21);
    $s11 = $s11->addInt64($carry10);
    $s10 = $s10->subInt64($carry10->shiftLeft(21));

    $S0 = $s0->toInt32()->toInt();
    $S1 = $s1->toInt32()->toInt();
    $S2 = $s2->toInt32()->toInt();
    $S3 = $s3->toInt32()->toInt();
    $S4 = $s4->toInt32()->toInt();
    $S5 = $s5->toInt32()->toInt();
    $S6 = $s6->toInt32()->toInt();
    $S7 = $s7->toInt32()->toInt();
    $S8 = $s8->toInt32()->toInt();
    $S9 = $s9->toInt32()->toInt();
    $S10 = $s10->toInt32()->toInt();
    $S11 = $s11->toInt32()->toInt();

    /**
     * @var array<int, int>
     */
    $arr = array(
        (int) ($S0 >> 0),
        (int) ($S0 >> 8),
        (int) (($S0 >> 16) | ($S1 << 5)),
        (int) ($S1 >> 3),
        (int) ($S1 >> 11),
        (int) (($S1 >> 19) | ($S2 << 2)),
        (int) ($S2 >> 6),
        (int) (($S2 >> 14) | ($S3 << 7)),
        (int) ($S3 >> 1),
        (int) ($S3 >> 9),
        (int) (($S3 >> 17) | ($S4 << 4)),
        (int) ($S4 >> 4),
        (int) ($S4 >> 12),
        (int) (($S4 >> 20) | ($S5 << 1)),
        (int) ($S5 >> 7),
        (int) (($S5 >> 15) | ($S6 << 6)),
        (int) ($S6 >> 2),
        (int) ($S6 >> 10),
        (int) (($S6 >> 18) | ($S7 << 3)),
        (int) ($S7 >> 5),
        (int) ($S7 >> 13),
        (int) ($S8 >> 0),
        (int) ($S8 >> 8),
        (int) (($S8 >> 16) | ($S9 << 5)),
        (int) ($S9 >> 3),
        (int) ($S9 >> 11),
        (int) (($S9 >> 19) | ($S10 << 2)),
        (int) ($S10 >> 6),
        (int) (($S10 >> 14) | ($S11 << 7)),
        (int) ($S11 >> 1),
        (int) ($S11 >> 9),
        (int) $S11 >> 17
    );
    return self::intArrayToString($arr);
}