: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
if (class_exists('ParagonIE_Sodium_Core32_XChaCha20', false)) {
* 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
* @throws SodiumException
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::substr($nonce, 0, 16),
self::substr($nonce, 16, 8)
* @internal You should not use this directly from another application
* @throws SodiumException
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),
* @internal You should not use this directly from another application
* @throws SodiumException
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),