$70 GRAYBYTE WORDPRESS FILE MANAGER $21

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 104.21.43.35 | ADMIN IP 216.73.216.180
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : mail

/home/bravrvjk/growmaxafrica.com/wp-content/plugins/litespeed-cache/src/

HOME
Current File : /home/bravrvjk/growmaxafrica.com/wp-content/plugins/litespeed-cache/src//cloud-auth.trait.php
<?php
/**
 * Cloud auth trait
 *
 * @package LiteSpeed
 * @since 7.8
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit();

/**
 * Trait Cloud_Auth
 *
 * Handles QUIC.cloud activation, authentication, and CDN setup.
 */
trait Cloud_Auth {
	use Cloud_Auth_Callback;
	use Cloud_Auth_IP;

	/**
	 * Init QC setup preparation
	 *
	 * @since 7.0
	 */
	public function init_qc_prepare() {
		if ( empty( $this->_summary['sk_b64'] ) ) {
			$keypair                  = sodium_crypto_sign_keypair();
			$pk                       = base64_encode( sodium_crypto_sign_publickey( $keypair ) ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
			$sk                       = base64_encode( sodium_crypto_sign_secretkey( $keypair ) ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
			$this->_summary['pk_b64'] = $pk;
			$this->_summary['sk_b64'] = $sk;
			$this->save_summary();
			// ATM `qc_activated` = null
			return true;
		}

		return false;
	}

	/**
	 * Init QC setup
	 *
	 * @since 7.0
	 */
	public function init_qc() {
		$this->init_qc_prepare();

		$ref = $this->_get_ref_url();

		// WPAPI REST echo dryrun
		$echobox = self::post( self::API_REST_ECHO, false, 60 );
		if ( false === $echobox ) {
			self::debugErr( 'REST Echo Failed!' );
			$msg = __( "QUIC.cloud's access to your WP REST API seems to be blocked.", 'litespeed-cache' );
			Admin_Display::error( $msg );
			wp_safe_redirect( $ref );
			exit;
		}

		self::debug( 'echo succeeded' );

		// Load separate thread echoed data from storage
		if ( empty( $echobox['wpapi_ts'] ) || empty( $echobox['wpapi_signature_b64'] ) ) {
			Admin_Display::error( __( 'Failed to get echo data from WPAPI', 'litespeed-cache' ) );
			wp_safe_redirect( $ref );
			exit;
		}

		$data      = [
			'wp_pk_b64'           => $this->_summary['pk_b64'],
			'wpapi_ts'            => $echobox['wpapi_ts'],
			'wpapi_signature_b64' => $echobox['wpapi_signature_b64'],
		];
		$server_ip = $this->conf( self::O_SERVER_IP );
		if ( $server_ip ) {
			$data['server_ip'] = $server_ip;
		}

		// Activation redirect
		$param = [
			'site_url' => site_url(),
			'ver'      => Core::VER,
			'data'     => $data,
			'ref'      => $ref,
		];
		wp_safe_redirect( $this->_cloud_server_dash . '/' . self::SVC_U_ACTIVATE . '?data=' . rawurlencode( Utility::arr2str( $param ) ) );
		exit;
	}

	/**
	 * Decide the ref
	 *
	 * @param string|false $ref Ref slug.
	 * @return string
	 */
	private function _get_ref_url( $ref = false ) {
		$link = 'admin.php?page=litespeed';
		if ( 'cdn' === $ref ) {
			$link = 'admin.php?page=litespeed-cdn';
		}
		if ( 'online' === $ref ) {
			$link = 'admin.php?page=litespeed-general';
		}
		// phpcs:ignore WordPress.Security.NonceVerification.Recommended
		$ref_get = ! empty( $_GET['ref'] ) ? sanitize_text_field( wp_unslash( $_GET['ref'] ) ) : '';
		if ( $ref_get && 'cdn' === $ref_get ) {
			$link = 'admin.php?page=litespeed-cdn';
		}
		if ( $ref_get && 'online' === $ref_get ) {
			$link = 'admin.php?page=litespeed-general';
		}
		return get_admin_url( null, $link );
	}

	/**
	 * Init QC setup (CLI)
	 *
	 * @since 7.0
	 */
	public function init_qc_cli() {
		$this->init_qc_prepare();

		$server_ip = $this->conf( self::O_SERVER_IP );
		if ( ! $server_ip ) {
			self::debugErr( 'Server IP needs to be set first!' );
			$msg = sprintf(
				__( 'You need to set the %1$s first. Please use the command %2$s to set.', 'litespeed-cache' ),
				'`' . __( 'Server IP', 'litespeed-cache' ) . '`',
				'`wp litespeed-option set server_ip __your_ip_value__`'
			);
			Admin_Display::error( $msg );
			return;
		}

		// WPAPI REST echo dryrun
		$echobox = self::post( self::API_REST_ECHO, false, 60 );
		if ( false === $echobox ) {
			self::debugErr( 'REST Echo Failed!' );
			$msg = __( "QUIC.cloud's access to your WP REST API seems to be blocked.", 'litespeed-cache' );
			Admin_Display::error( $msg );
			return;
		}

		self::debug( 'echo succeeded' );

		// Load separate thread echoed data from storage
		if ( empty( $echobox['wpapi_ts'] ) || empty( $echobox['wpapi_signature_b64'] ) ) {
			self::debug( 'Resp: ', $echobox );
			Admin_Display::error( __( 'Failed to get echo data from WPAPI', 'litespeed-cache' ) );
			return;
		}

		$data = [
			'wp_pk_b64'           => $this->_summary['pk_b64'],
			'wpapi_ts'            => $echobox['wpapi_ts'],
			'wpapi_signature_b64' => $echobox['wpapi_signature_b64'],
			'server_ip'           => $server_ip,
		];

		$res = $this->post( self::SVC_D_ACTIVATE, $data );
		return $res;
	}

	/**
	 * Init QC CDN setup (CLI)
	 *
	 * @since 7.0
	 *
	 * @param string      $method   Method.
	 * @param string|bool $cert     Cert path.
	 * @param string|bool $key      Key path.
	 * @param string|bool $cf_token Cloudflare token.
	 */
	public function init_qc_cdn_cli( $method, $cert = false, $key = false, $cf_token = false ) {
		if ( ! $this->activated() ) {
			Admin_Display::error( __( 'You need to activate QC first.', 'litespeed-cache' ) );
			return;
		}

		$server_ip = $this->conf( self::O_SERVER_IP );
		if ( ! $server_ip ) {
			self::debugErr( 'Server IP needs to be set first!' );
			$msg = sprintf(
				__( 'You need to set the %1$s first. Please use the command %2$s to set.', 'litespeed-cache' ),
				'`' . __( 'Server IP', 'litespeed-cache' ) . '`',
				'`wp litespeed-option set server_ip __your_ip_value__`'
			);
			Admin_Display::error( $msg );
			return;
		}

		if ( $cert ) {
			if ( ! file_exists( $cert ) || ! file_exists( $key ) ) {
				Admin_Display::error( __( 'Cert or key file does not exist.', 'litespeed-cache' ) );
				return;
			}
		}

		$data = [
			'method'    => $method,
			'server_ip' => $server_ip,
		];
		if ( $cert ) {
			$data['cert'] = File::read( $cert );
			$data['key']  = File::read( $key );
		}
		if ( $cf_token ) {
			$data['cf_token'] = $cf_token;
		}

		$res = $this->post( self::SVC_D_ENABLE_CDN, $data );
		return $res;
	}

	/**
	 * Link to QC setup
	 *
	 * @since 7.0
	 */
	public function link_qc() {
		if ( ! $this->activated() ) {
			Admin_Display::error( __( 'You need to activate QC first.', 'litespeed-cache' ) );
			return;
		}

		$data                     = [
			'wp_ts' => time(),
		];
		$data['wp_signature_b64'] = $this->_sign_b64( $data['wp_ts'] );

		// Activation redirect
		$param = [
			'site_url' => site_url(),
			'ver'      => Core::VER,
			'data'     => $data,
			'ref'      => $this->_get_ref_url(),
		];
		wp_safe_redirect( $this->_cloud_server_dash . '/' . self::SVC_U_LINK . '?data=' . rawurlencode( Utility::arr2str( $param ) ) );
		exit;
	}

	/**
	 * Show QC Account CDN status
	 *
	 * @since 7.0
	 */
	public function cdn_status_cli() {
		if ( ! $this->activated() ) {
			Admin_Display::error( __( 'You need to activate QC first.', 'litespeed-cache' ) );
			return;
		}

		$data = [];
		$res  = $this->post( self::SVC_D_STATUS_CDN_CLI, $data );
		return $res;
	}

	/**
	 * Link to QC Account for CLI
	 *
	 * @since 7.0
	 *
	 * @param string $email Account email.
	 * @param string $key   API key.
	 */
	public function link_qc_cli( $email, $key ) {
		if ( ! $this->activated() ) {
			Admin_Display::error( __( 'You need to activate QC first.', 'litespeed-cache' ) );
			return;
		}

		$data = [
			'qc_acct_email' => $email,
			'qc_acct_apikey'=> $key,
		];
		$res  = $this->post( self::SVC_D_LINK, $data );
		return $res;
	}

	/**
	 * API link parsed call to QC
	 *
	 * @since 7.0
	 *
	 * @param string $action2 Action slug.
	 */
	public function api_link_call( $action2 ) {
		if ( ! $this->activated() ) {
			Admin_Display::error( __( 'You need to activate QC first.', 'litespeed-cache' ) );
			return;
		}

		$data = [
			'action2' => $action2,
		];
		$res  = $this->post( self::SVC_D_API, $data );
		self::debug( 'API link call result: ', $res );
	}

	/**
	 * Enable QC CDN
	 *
	 * @since 7.0
	 */
	public function enable_cdn() {
		if ( ! $this->activated() ) {
			Admin_Display::error( __( 'You need to activate QC first.', 'litespeed-cache' ) );
			return;
		}

		$data                     = [
			'wp_ts' => time(),
		];
		$data['wp_signature_b64'] = $this->_sign_b64( $data['wp_ts'] );

		// Activation redirect
		$param = [
			'site_url' => site_url(),
			'ver'      => Core::VER,
			'data'     => $data,
			'ref'      => $this->_get_ref_url(),
		];
		wp_safe_redirect( $this->_cloud_server_dash . '/' . self::SVC_U_ENABLE_CDN . '?data=' . rawurlencode( Utility::arr2str( $param ) ) );
		exit;
	}

	/**
	 * Reset QC setup
	 *
	 * @since 7.0
	 */
	public function reset_qc() {
		unset( $this->_summary['pk_b64'] );
		unset( $this->_summary['sk_b64'] );
		unset( $this->_summary['qc_activated'] );
		if ( ! empty( $this->_summary['partner'] ) ) {
			unset( $this->_summary['partner'] );
		}
		$this->save_summary();
		self::debug( 'Clear local QC activation.' );

		$this->clear_cloud();

		Admin_Display::success( sprintf( __( 'Reset %s activation successfully.', 'litespeed-cache' ), 'QUIC.cloud' ) );
		wp_safe_redirect( $this->_get_ref_url() );
		exit;
	}

	/**
	 * Check if activated QUIC.cloud service or not
	 *
	 * @since  7.0
	 * @access public
	 */
	public function activated() {
		return ! empty( $this->_summary['sk_b64'] ) && ! empty( $this->_summary['qc_activated'] );
	}

	/**
	 * Show my.qc quick link to the domain page
	 *
	 * @return string
	 */
	public function qc_link() {
		$data = [
			'site_url' => site_url(),
			'ver' => LSCWP_V,
			'ref' => $this->_get_ref_url(),
		];
		return $this->_cloud_server_dash . '/u/wp3/manage?data=' . rawurlencode( Utility::arr2str( $data ) ); // . (!empty($this->_summary['is_linked']) ? '?wplogin=1' : '');
	}
}


Current_dir [ WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
cdn
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
data_structure
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
activation.cls.php
17.308 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
admin-display.cls.php
48.469 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
admin-settings.cls.php
11.116 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
admin.cls.php
6.129 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
api.cls.php
10.363 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
avatar.cls.php
8.652 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
base.cls.php
37.656 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
cdn.cls.php
15.918 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
cloud-auth-callback.trait.php
10.433 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
cloud-auth-ip.trait.php
4.329 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
cloud-auth.trait.php
9.383 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
cloud-misc.trait.php
10.324 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
cloud-node.trait.php
5.947 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
cloud-request.trait.php
19.685 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
cloud.cls.php
7.324 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
conf.cls.php
19.531 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
control.cls.php
24.349 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
core.cls.php
20.971 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
crawler-map.cls.php
19.408 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
crawler.cls.php
44.722 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
css.cls.php
17.773 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
data.cls.php
22.205 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
data.upgrade.func.php
5.719 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
db-optm.cls.php
15.349 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
debug2.cls.php
18.4 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
doc.cls.php
5.446 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
error.cls.php
7.354 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
esi.cls.php
27.182 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
file.cls.php
10.569 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
guest.cls.php
2.755 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
gui.cls.php
36.573 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
health.cls.php
2.831 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
htaccess.cls.php
29.811 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
img-optm-manage.trait.php
30.846 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
img-optm-pull.trait.php
22.102 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
img-optm-send.trait.php
21.896 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
img-optm.cls.php
5.257 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
import.cls.php
4.292 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
import.preset.cls.php
5.501 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
lang.cls.php
17.021 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
localization.cls.php
4.026 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
media.cls.php
44.084 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
metabox.cls.php
5.292 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
object-cache-wp.cls.php
18.816 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
object-cache.cls.php
20.947 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
object.lib.php
14.164 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
optimize.cls.php
38.641 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
optimizer.cls.php
10.502 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
placeholder.cls.php
17.928 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
purge.cls.php
34.409 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
report.cls.php
6.119 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
rest.cls.php
9.083 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
root.cls.php
14.288 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
router.cls.php
20.758 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
str.cls.php
3.082 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
tag.cls.php
9.259 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
task.cls.php
7.05 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
tool.cls.php
4.168 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
ucss.cls.php
16.347 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
utility.cls.php
26.014 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
vary.cls.php
21.33 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644
vpi.cls.php
9.375 KB
1 Apr 2026 8.54 PM
bravrvjk / bravrvjk
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF