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

ParagonIE_Sodium_Core_Poly1305_State::finish() public WP 1.0

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

Хуков нет.

Возвращает

Строку.

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

$ParagonIE_Sodium_Core_Poly1305_State = new ParagonIE_Sodium_Core_Poly1305_State();
$ParagonIE_Sodium_Core_Poly1305_State->finish();

Код ParagonIE_Sodium_Core_Poly1305_State::finish() WP 5.5.3

<?php
public function finish()
{
    /* process the remaining block */
    if ($this->leftover) {
        $i = $this->leftover;
        $this->buffer[$i++] = 1;
        for (; $i < ParagonIE_Sodium_Core_Poly1305::BLOCK_SIZE; ++$i) {
            $this->buffer[$i] = 0;
        }
        $this->final = true;
        $this->blocks(
            self::substr(
                self::intArrayToString($this->buffer),
                0,
                ParagonIE_Sodium_Core_Poly1305::BLOCK_SIZE
            ),
            ParagonIE_Sodium_Core_Poly1305::BLOCK_SIZE
        );
    }

    $h0 = (int) $this->h[0];
    $h1 = (int) $this->h[1];
    $h2 = (int) $this->h[2];
    $h3 = (int) $this->h[3];
    $h4 = (int) $this->h[4];

    /** @var int $c */
    $c = $h1 >> 26;
    /** @var int $h1 */
    $h1 &= 0x3ffffff;
    /** @var int $h2 */
    $h2 += $c;
    /** @var int $c */
    $c = $h2 >> 26;
    /** @var int $h2 */
    $h2 &= 0x3ffffff;
    $h3 += $c;
    /** @var int $c */
    $c = $h3 >> 26;
    $h3 &= 0x3ffffff;
    $h4 += $c;
    /** @var int $c */
    $c = $h4 >> 26;
    $h4 &= 0x3ffffff;
    /** @var int $h0 */
    $h0 += self::mul($c, 5, 3);
    /** @var int $c */
    $c = $h0 >> 26;
    /** @var int $h0 */
    $h0 &= 0x3ffffff;
    /** @var int $h1 */
    $h1 += $c;

    /* compute h + -p */
    /** @var int $g0 */
    $g0 = $h0 + 5;
    /** @var int $c */
    $c = $g0 >> 26;
    /** @var int $g0 */
    $g0 &= 0x3ffffff;

    /** @var int $g1 */
    $g1 = $h1 + $c;
    /** @var int $c */
    $c = $g1 >> 26;
    $g1 &= 0x3ffffff;

    /** @var int $g2 */
    $g2 = $h2 + $c;
    /** @var int $c */
    $c = $g2 >> 26;
    /** @var int $g2 */
    $g2 &= 0x3ffffff;

    /** @var int $g3 */
    $g3 = $h3 + $c;
    /** @var int $c */
    $c = $g3 >> 26;
    /** @var int $g3 */
    $g3 &= 0x3ffffff;

    /** @var int $g4 */
    $g4 = ($h4 + $c - (1 << 26)) & 0xffffffff;

    /* select h if h < p, or h + -p if h >= p */
    /** @var int $mask */
    $mask = ($g4 >> 31) - 1;

    $g0 &= $mask;
    $g1 &= $mask;
    $g2 &= $mask;
    $g3 &= $mask;
    $g4 &= $mask;

    /** @var int $mask */
    $mask = ~$mask & 0xffffffff;
    /** @var int $h0 */
    $h0 = ($h0 & $mask) | $g0;
    /** @var int $h1 */
    $h1 = ($h1 & $mask) | $g1;
    /** @var int $h2 */
    $h2 = ($h2 & $mask) | $g2;
    /** @var int $h3 */
    $h3 = ($h3 & $mask) | $g3;
    /** @var int $h4 */
    $h4 = ($h4 & $mask) | $g4;

    /* h = h % (2^128) */
    /** @var int $h0 */
    $h0 = (($h0) | ($h1 << 26)) & 0xffffffff;
    /** @var int $h1 */
    $h1 = (($h1 >>  6) | ($h2 << 20)) & 0xffffffff;
    /** @var int $h2 */
    $h2 = (($h2 >> 12) | ($h3 << 14)) & 0xffffffff;
    /** @var int $h3 */
    $h3 = (($h3 >> 18) | ($h4 <<  8)) & 0xffffffff;

    /* mac = (h + pad) % (2^128) */
    $f = (int) ($h0 + $this->pad[0]);
    $h0 = (int) $f;
    $f = (int) ($h1 + $this->pad[1] + ($f >> 32));
    $h1 = (int) $f;
    $f = (int) ($h2 + $this->pad[2] + ($f >> 32));
    $h2 = (int) $f;
    $f = (int) ($h3 + $this->pad[3] + ($f >> 32));
    $h3 = (int) $f;

    return self::store32_le($h0 & 0xffffffff) .
        self::store32_le($h1 & 0xffffffff) .
        self::store32_le($h2 & 0xffffffff) .
        self::store32_le($h3 & 0xffffffff);
}