Priority File Manager

📁 public_html
Base Directory:
/home/ecedu/public_html/wp-includes/sodium_compat/src/Core32
NameTypeSizeActions
📁 .. Folder -
📄 BLAKE2b.php File 22324
Edit Download
📁 ChaCha20 Folder -
📄 ChaCha20.php File 14511
Edit Download
📁 Curve25519 Folder -
📄 Curve25519.php File 132974
Edit Download
📄 Ed25519.php File 15735
Edit Download
📄 HChaCha20.php File 5297
Edit Download
📄 HSalsa20.php File 6941
Edit Download
📄 Int32.php File 24580
Edit Download
📄 Int64.php File 31172
Edit Download
📁 Poly1305 Folder -
📄 Poly1305.php File 1586
Edit Download
📄 Salsa20.php File 11506
Edit Download
📁 SecretStream Folder -
📄 SipHash.php File 6613
Edit Download
📄 Util.php File 209
Edit Download
📄 X25519.php File 11042
Edit Download
📄 XChaCha20.php File 2454
Edit Download
📄 XSalsa20.php File 1379
Edit Download

View File: XChaCha20.php

<?php

if (class_exists('ParagonIE_Sodium_Core32_XChaCha20', false)) {
    return;
}

/**
 * Class ParagonIE_Sodium_Core32_XChaCha20
 */
class ParagonIE_Sodium_Core32_XChaCha20 extends ParagonIE_Sodium_Core32_HChaCha20
{
    /**
     * @internal You should not use this directly from another application
     *
     * @param int $len
     * @param string $nonce
     * @param string $key
     * @return string
     * @throws SodiumException
     * @throws TypeError
     */
    public static function stream($len = 64, $nonce = '', $key = '')
    {
        if (self::strlen($nonce) !== 24) {
            throw new SodiumException('Nonce must be 24 bytes long');
        }
        return self::encryptBytes(
            new ParagonIE_Sodium_Core32_ChaCha20_Ctx(
                self::hChaCha20(
                    self::substr($nonce, 0, 16),
                    $key
                ),
                self::substr($nonce, 16, 8)
            ),
            str_repeat("\x00", $len)
        );
    }

    /**
     * @internal You should not use this directly from another application
     *
     * @param string $message
     * @param string $nonce
     * @param string $key
     * @param string $ic
     * @return string
     * @throws SodiumException
     * @throws TypeError
     */
    public static function streamXorIc($message, $nonce = '', $key = '', $ic = '')
    {
        if (self::strlen($nonce) !== 24) {
            throw new SodiumException('Nonce must be 24 bytes long');
        }
        return self::encryptBytes(
            new ParagonIE_Sodium_Core32_ChaCha20_Ctx(
                self::hChaCha20(self::substr($nonce, 0, 16), $key),
                self::substr($nonce, 16, 8),
                $ic
            ),
            $message
        );
    }

    /**
     * @internal You should not use this directly from another application
     *
     * @param string $message
     * @param string $nonce
     * @param string $key
     * @param string $ic
     * @return string
     * @throws SodiumException
     * @throws TypeError
     */
    public static function ietfStreamXorIc($message, $nonce = '', $key = '', $ic = '')
    {
        return self::encryptBytes(
            new ParagonIE_Sodium_Core32_ChaCha20_IetfCtx(
                self::hChaCha20(self::substr($nonce, 0, 16), $key),
                "\x00\x00\x00\x00" . self::substr($nonce, 16, 8),
                $ic
            ),
            $message
        );
    }
}