Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-inclu.../sodium_c.../src/Core
File: Util.php
[500] Fix | Delete
/**
[501] Fix | Delete
* @internal You should not use this directly from another application
[502] Fix | Delete
*
[503] Fix | Delete
* @param string $left
[504] Fix | Delete
* @param string $right
[505] Fix | Delete
* @return int
[506] Fix | Delete
* @throws SodiumException
[507] Fix | Delete
* @throws TypeError
[508] Fix | Delete
*/
[509] Fix | Delete
public static function memcmp($left, $right)
[510] Fix | Delete
{
[511] Fix | Delete
if (self::hashEquals($left, $right)) {
[512] Fix | Delete
return 0;
[513] Fix | Delete
}
[514] Fix | Delete
return -1;
[515] Fix | Delete
}
[516] Fix | Delete
[517] Fix | Delete
/**
[518] Fix | Delete
* Multiply two integers in constant-time
[519] Fix | Delete
*
[520] Fix | Delete
* Micro-architecture timing side-channels caused by how your CPU
[521] Fix | Delete
* implements multiplication are best prevented by never using the
[522] Fix | Delete
* multiplication operators and ensuring that our code always takes
[523] Fix | Delete
* the same number of operations to complete, regardless of the values
[524] Fix | Delete
* of $a and $b.
[525] Fix | Delete
*
[526] Fix | Delete
* @internal You should not use this directly from another application
[527] Fix | Delete
*
[528] Fix | Delete
* @param int $a
[529] Fix | Delete
* @param int $b
[530] Fix | Delete
* @param int $size Limits the number of operations (useful for small,
[531] Fix | Delete
* constant operands)
[532] Fix | Delete
* @return int
[533] Fix | Delete
*/
[534] Fix | Delete
public static function mul($a, $b, $size = 0)
[535] Fix | Delete
{
[536] Fix | Delete
if (ParagonIE_Sodium_Compat::$fastMult) {
[537] Fix | Delete
return (int) ($a * $b);
[538] Fix | Delete
}
[539] Fix | Delete
[540] Fix | Delete
static $defaultSize = null;
[541] Fix | Delete
/** @var int $defaultSize */
[542] Fix | Delete
if (!$defaultSize) {
[543] Fix | Delete
/** @var int $defaultSize */
[544] Fix | Delete
$defaultSize = (PHP_INT_SIZE << 3) - 1;
[545] Fix | Delete
}
[546] Fix | Delete
if ($size < 1) {
[547] Fix | Delete
/** @var int $size */
[548] Fix | Delete
$size = $defaultSize;
[549] Fix | Delete
}
[550] Fix | Delete
/** @var int $size */
[551] Fix | Delete
[552] Fix | Delete
$c = 0;
[553] Fix | Delete
[554] Fix | Delete
/**
[555] Fix | Delete
* Mask is either -1 or 0.
[556] Fix | Delete
*
[557] Fix | Delete
* -1 in binary looks like 0x1111 ... 1111
[558] Fix | Delete
* 0 in binary looks like 0x0000 ... 0000
[559] Fix | Delete
*
[560] Fix | Delete
* @var int
[561] Fix | Delete
*/
[562] Fix | Delete
$mask = -(($b >> ((int) $defaultSize)) & 1);
[563] Fix | Delete
[564] Fix | Delete
/**
[565] Fix | Delete
* Ensure $b is a positive integer, without creating
[566] Fix | Delete
* a branching side-channel
[567] Fix | Delete
*
[568] Fix | Delete
* @var int $b
[569] Fix | Delete
*/
[570] Fix | Delete
$b = ($b & ~$mask) | ($mask & -$b);
[571] Fix | Delete
[572] Fix | Delete
/**
[573] Fix | Delete
* Unless $size is provided:
[574] Fix | Delete
*
[575] Fix | Delete
* This loop always runs 32 times when PHP_INT_SIZE is 4.
[576] Fix | Delete
* This loop always runs 64 times when PHP_INT_SIZE is 8.
[577] Fix | Delete
*/
[578] Fix | Delete
for ($i = $size; $i >= 0; --$i) {
[579] Fix | Delete
$c += (int) ($a & -($b & 1));
[580] Fix | Delete
$a <<= 1;
[581] Fix | Delete
$b >>= 1;
[582] Fix | Delete
}
[583] Fix | Delete
$c = (int) @($c & -1);
[584] Fix | Delete
[585] Fix | Delete
/**
[586] Fix | Delete
* If $b was negative, we then apply the same value to $c here.
[587] Fix | Delete
* It doesn't matter much if $a was negative; the $c += above would
[588] Fix | Delete
* have produced a negative integer to begin with. But a negative $b
[589] Fix | Delete
* makes $b >>= 1 never return 0, so we would end up with incorrect
[590] Fix | Delete
* results.
[591] Fix | Delete
*
[592] Fix | Delete
* The end result is what we'd expect from integer multiplication.
[593] Fix | Delete
*/
[594] Fix | Delete
return (int) (($c & ~$mask) | ($mask & -$c));
[595] Fix | Delete
}
[596] Fix | Delete
[597] Fix | Delete
/**
[598] Fix | Delete
* Convert any arbitrary numbers into two 32-bit integers that represent
[599] Fix | Delete
* a 64-bit integer.
[600] Fix | Delete
*
[601] Fix | Delete
* @internal You should not use this directly from another application
[602] Fix | Delete
*
[603] Fix | Delete
* @param int|float $num
[604] Fix | Delete
* @return array<int, int>
[605] Fix | Delete
*/
[606] Fix | Delete
public static function numericTo64BitInteger($num)
[607] Fix | Delete
{
[608] Fix | Delete
$high = 0;
[609] Fix | Delete
/** @var int $low */
[610] Fix | Delete
if (PHP_INT_SIZE === 4) {
[611] Fix | Delete
$low = (int) $num;
[612] Fix | Delete
} else {
[613] Fix | Delete
$low = $num & 0xffffffff;
[614] Fix | Delete
}
[615] Fix | Delete
[616] Fix | Delete
if ((+(abs($num))) >= 1) {
[617] Fix | Delete
if ($num > 0) {
[618] Fix | Delete
/** @var int $high */
[619] Fix | Delete
$high = min((+(floor($num/4294967296))), 4294967295);
[620] Fix | Delete
} else {
[621] Fix | Delete
/** @var int $high */
[622] Fix | Delete
$high = ~~((+(ceil(($num - (+((~~($num)))))/4294967296))));
[623] Fix | Delete
}
[624] Fix | Delete
}
[625] Fix | Delete
return array((int) $high, (int) $low);
[626] Fix | Delete
}
[627] Fix | Delete
[628] Fix | Delete
/**
[629] Fix | Delete
* Store a 24-bit integer into a string, treating it as big-endian.
[630] Fix | Delete
*
[631] Fix | Delete
* @internal You should not use this directly from another application
[632] Fix | Delete
*
[633] Fix | Delete
* @param int $int
[634] Fix | Delete
* @return string
[635] Fix | Delete
* @throws TypeError
[636] Fix | Delete
*/
[637] Fix | Delete
public static function store_3($int)
[638] Fix | Delete
{
[639] Fix | Delete
/* Type checks: */
[640] Fix | Delete
if (!is_int($int)) {
[641] Fix | Delete
if (is_numeric($int)) {
[642] Fix | Delete
$int = (int) $int;
[643] Fix | Delete
} else {
[644] Fix | Delete
throw new TypeError('Argument 1 must be an integer, ' . gettype($int) . ' given.');
[645] Fix | Delete
}
[646] Fix | Delete
}
[647] Fix | Delete
/** @var string $packed */
[648] Fix | Delete
$packed = pack('N', $int);
[649] Fix | Delete
return self::substr($packed, 1, 3);
[650] Fix | Delete
}
[651] Fix | Delete
[652] Fix | Delete
/**
[653] Fix | Delete
* Store a 32-bit integer into a string, treating it as little-endian.
[654] Fix | Delete
*
[655] Fix | Delete
* @internal You should not use this directly from another application
[656] Fix | Delete
*
[657] Fix | Delete
* @param int $int
[658] Fix | Delete
* @return string
[659] Fix | Delete
* @throws TypeError
[660] Fix | Delete
*/
[661] Fix | Delete
public static function store32_le($int)
[662] Fix | Delete
{
[663] Fix | Delete
/* Type checks: */
[664] Fix | Delete
if (!is_int($int)) {
[665] Fix | Delete
if (is_numeric($int)) {
[666] Fix | Delete
$int = (int) $int;
[667] Fix | Delete
} else {
[668] Fix | Delete
throw new TypeError('Argument 1 must be an integer, ' . gettype($int) . ' given.');
[669] Fix | Delete
}
[670] Fix | Delete
}
[671] Fix | Delete
[672] Fix | Delete
/** @var string $packed */
[673] Fix | Delete
$packed = pack('V', $int);
[674] Fix | Delete
return $packed;
[675] Fix | Delete
}
[676] Fix | Delete
[677] Fix | Delete
/**
[678] Fix | Delete
* Store a 32-bit integer into a string, treating it as big-endian.
[679] Fix | Delete
*
[680] Fix | Delete
* @internal You should not use this directly from another application
[681] Fix | Delete
*
[682] Fix | Delete
* @param int $int
[683] Fix | Delete
* @return string
[684] Fix | Delete
* @throws TypeError
[685] Fix | Delete
*/
[686] Fix | Delete
public static function store_4($int)
[687] Fix | Delete
{
[688] Fix | Delete
/* Type checks: */
[689] Fix | Delete
if (!is_int($int)) {
[690] Fix | Delete
if (is_numeric($int)) {
[691] Fix | Delete
$int = (int) $int;
[692] Fix | Delete
} else {
[693] Fix | Delete
throw new TypeError('Argument 1 must be an integer, ' . gettype($int) . ' given.');
[694] Fix | Delete
}
[695] Fix | Delete
}
[696] Fix | Delete
[697] Fix | Delete
/** @var string $packed */
[698] Fix | Delete
$packed = pack('N', $int);
[699] Fix | Delete
return $packed;
[700] Fix | Delete
}
[701] Fix | Delete
[702] Fix | Delete
/**
[703] Fix | Delete
* Stores a 64-bit integer as an string, treating it as little-endian.
[704] Fix | Delete
*
[705] Fix | Delete
* @internal You should not use this directly from another application
[706] Fix | Delete
*
[707] Fix | Delete
* @param int $int
[708] Fix | Delete
* @return string
[709] Fix | Delete
* @throws TypeError
[710] Fix | Delete
*/
[711] Fix | Delete
public static function store64_le($int)
[712] Fix | Delete
{
[713] Fix | Delete
/* Type checks: */
[714] Fix | Delete
if (!is_int($int)) {
[715] Fix | Delete
if (is_numeric($int)) {
[716] Fix | Delete
$int = (int) $int;
[717] Fix | Delete
} else {
[718] Fix | Delete
throw new TypeError('Argument 1 must be an integer, ' . gettype($int) . ' given.');
[719] Fix | Delete
}
[720] Fix | Delete
}
[721] Fix | Delete
[722] Fix | Delete
if (PHP_INT_SIZE === 8) {
[723] Fix | Delete
if (PHP_VERSION_ID >= 50603) {
[724] Fix | Delete
/** @var string $packed */
[725] Fix | Delete
$packed = pack('P', $int);
[726] Fix | Delete
return $packed;
[727] Fix | Delete
}
[728] Fix | Delete
return self::intToChr($int & 0xff) .
[729] Fix | Delete
self::intToChr(($int >> 8) & 0xff) .
[730] Fix | Delete
self::intToChr(($int >> 16) & 0xff) .
[731] Fix | Delete
self::intToChr(($int >> 24) & 0xff) .
[732] Fix | Delete
self::intToChr(($int >> 32) & 0xff) .
[733] Fix | Delete
self::intToChr(($int >> 40) & 0xff) .
[734] Fix | Delete
self::intToChr(($int >> 48) & 0xff) .
[735] Fix | Delete
self::intToChr(($int >> 56) & 0xff);
[736] Fix | Delete
}
[737] Fix | Delete
if ($int > PHP_INT_MAX) {
[738] Fix | Delete
list($hiB, $int) = self::numericTo64BitInteger($int);
[739] Fix | Delete
} else {
[740] Fix | Delete
$hiB = 0;
[741] Fix | Delete
}
[742] Fix | Delete
return
[743] Fix | Delete
self::intToChr(($int ) & 0xff) .
[744] Fix | Delete
self::intToChr(($int >> 8) & 0xff) .
[745] Fix | Delete
self::intToChr(($int >> 16) & 0xff) .
[746] Fix | Delete
self::intToChr(($int >> 24) & 0xff) .
[747] Fix | Delete
self::intToChr($hiB & 0xff) .
[748] Fix | Delete
self::intToChr(($hiB >> 8) & 0xff) .
[749] Fix | Delete
self::intToChr(($hiB >> 16) & 0xff) .
[750] Fix | Delete
self::intToChr(($hiB >> 24) & 0xff);
[751] Fix | Delete
}
[752] Fix | Delete
[753] Fix | Delete
/**
[754] Fix | Delete
* Safe string length
[755] Fix | Delete
*
[756] Fix | Delete
* @internal You should not use this directly from another application
[757] Fix | Delete
*
[758] Fix | Delete
* @ref mbstring.func_overload
[759] Fix | Delete
*
[760] Fix | Delete
* @param string $str
[761] Fix | Delete
* @return int
[762] Fix | Delete
* @throws TypeError
[763] Fix | Delete
*/
[764] Fix | Delete
public static function strlen($str)
[765] Fix | Delete
{
[766] Fix | Delete
/* Type checks: */
[767] Fix | Delete
if (!is_string($str)) {
[768] Fix | Delete
throw new TypeError('String expected');
[769] Fix | Delete
}
[770] Fix | Delete
[771] Fix | Delete
return (int) (
[772] Fix | Delete
self::isMbStringOverride()
[773] Fix | Delete
? mb_strlen($str, '8bit')
[774] Fix | Delete
: strlen($str)
[775] Fix | Delete
);
[776] Fix | Delete
}
[777] Fix | Delete
[778] Fix | Delete
/**
[779] Fix | Delete
* Turn a string into an array of integers
[780] Fix | Delete
*
[781] Fix | Delete
* @internal You should not use this directly from another application
[782] Fix | Delete
*
[783] Fix | Delete
* @param string $string
[784] Fix | Delete
* @return array<int, int>
[785] Fix | Delete
* @throws TypeError
[786] Fix | Delete
*/
[787] Fix | Delete
public static function stringToIntArray($string)
[788] Fix | Delete
{
[789] Fix | Delete
if (!is_string($string)) {
[790] Fix | Delete
throw new TypeError('String expected');
[791] Fix | Delete
}
[792] Fix | Delete
/**
[793] Fix | Delete
* @var array<int, int>
[794] Fix | Delete
*/
[795] Fix | Delete
$values = array_values(
[796] Fix | Delete
unpack('C*', $string)
[797] Fix | Delete
);
[798] Fix | Delete
return $values;
[799] Fix | Delete
}
[800] Fix | Delete
[801] Fix | Delete
/**
[802] Fix | Delete
* Safe substring
[803] Fix | Delete
*
[804] Fix | Delete
* @internal You should not use this directly from another application
[805] Fix | Delete
*
[806] Fix | Delete
* @ref mbstring.func_overload
[807] Fix | Delete
*
[808] Fix | Delete
* @param string $str
[809] Fix | Delete
* @param int $start
[810] Fix | Delete
* @param int $length
[811] Fix | Delete
* @return string
[812] Fix | Delete
* @throws TypeError
[813] Fix | Delete
*/
[814] Fix | Delete
public static function substr($str, $start = 0, $length = null)
[815] Fix | Delete
{
[816] Fix | Delete
/* Type checks: */
[817] Fix | Delete
if (!is_string($str)) {
[818] Fix | Delete
throw new TypeError('String expected');
[819] Fix | Delete
}
[820] Fix | Delete
[821] Fix | Delete
if ($length === 0) {
[822] Fix | Delete
return '';
[823] Fix | Delete
}
[824] Fix | Delete
[825] Fix | Delete
if (self::isMbStringOverride()) {
[826] Fix | Delete
if (PHP_VERSION_ID < 50400 && $length === null) {
[827] Fix | Delete
$length = self::strlen($str);
[828] Fix | Delete
}
[829] Fix | Delete
$sub = (string) mb_substr($str, $start, $length, '8bit');
[830] Fix | Delete
} elseif ($length === null) {
[831] Fix | Delete
$sub = (string) substr($str, $start);
[832] Fix | Delete
} else {
[833] Fix | Delete
$sub = (string) substr($str, $start, $length);
[834] Fix | Delete
}
[835] Fix | Delete
if ($sub !== '') {
[836] Fix | Delete
return $sub;
[837] Fix | Delete
}
[838] Fix | Delete
return '';
[839] Fix | Delete
}
[840] Fix | Delete
[841] Fix | Delete
/**
[842] Fix | Delete
* Compare a 16-character byte string in constant time.
[843] Fix | Delete
*
[844] Fix | Delete
* @internal You should not use this directly from another application
[845] Fix | Delete
*
[846] Fix | Delete
* @param string $a
[847] Fix | Delete
* @param string $b
[848] Fix | Delete
* @return bool
[849] Fix | Delete
* @throws SodiumException
[850] Fix | Delete
* @throws TypeError
[851] Fix | Delete
*/
[852] Fix | Delete
public static function verify_16($a, $b)
[853] Fix | Delete
{
[854] Fix | Delete
/* Type checks: */
[855] Fix | Delete
if (!is_string($a)) {
[856] Fix | Delete
throw new TypeError('String expected');
[857] Fix | Delete
}
[858] Fix | Delete
if (!is_string($b)) {
[859] Fix | Delete
throw new TypeError('String expected');
[860] Fix | Delete
}
[861] Fix | Delete
return self::hashEquals(
[862] Fix | Delete
self::substr($a, 0, 16),
[863] Fix | Delete
self::substr($b, 0, 16)
[864] Fix | Delete
);
[865] Fix | Delete
}
[866] Fix | Delete
[867] Fix | Delete
/**
[868] Fix | Delete
* Compare a 32-character byte string in constant time.
[869] Fix | Delete
*
[870] Fix | Delete
* @internal You should not use this directly from another application
[871] Fix | Delete
*
[872] Fix | Delete
* @param string $a
[873] Fix | Delete
* @param string $b
[874] Fix | Delete
* @return bool
[875] Fix | Delete
* @throws SodiumException
[876] Fix | Delete
* @throws TypeError
[877] Fix | Delete
*/
[878] Fix | Delete
public static function verify_32($a, $b)
[879] Fix | Delete
{
[880] Fix | Delete
/* Type checks: */
[881] Fix | Delete
if (!is_string($a)) {
[882] Fix | Delete
throw new TypeError('String expected');
[883] Fix | Delete
}
[884] Fix | Delete
if (!is_string($b)) {
[885] Fix | Delete
throw new TypeError('String expected');
[886] Fix | Delete
}
[887] Fix | Delete
return self::hashEquals(
[888] Fix | Delete
self::substr($a, 0, 32),
[889] Fix | Delete
self::substr($b, 0, 32)
[890] Fix | Delete
);
[891] Fix | Delete
}
[892] Fix | Delete
[893] Fix | Delete
/**
[894] Fix | Delete
* Calculate $a ^ $b for two strings.
[895] Fix | Delete
*
[896] Fix | Delete
* @internal You should not use this directly from another application
[897] Fix | Delete
*
[898] Fix | Delete
* @param string $a
[899] Fix | Delete
* @param string $b
[900] Fix | Delete
* @return string
[901] Fix | Delete
* @throws TypeError
[902] Fix | Delete
*/
[903] Fix | Delete
public static function xorStrings($a, $b)
[904] Fix | Delete
{
[905] Fix | Delete
/* Type checks: */
[906] Fix | Delete
if (!is_string($a)) {
[907] Fix | Delete
throw new TypeError('Argument 1 must be a string');
[908] Fix | Delete
}
[909] Fix | Delete
if (!is_string($b)) {
[910] Fix | Delete
throw new TypeError('Argument 2 must be a string');
[911] Fix | Delete
}
[912] Fix | Delete
[913] Fix | Delete
return (string) ($a ^ $b);
[914] Fix | Delete
}
[915] Fix | Delete
[916] Fix | Delete
/**
[917] Fix | Delete
* Returns whether or not mbstring.func_overload is in effect.
[918] Fix | Delete
*
[919] Fix | Delete
* @internal You should not use this directly from another application
[920] Fix | Delete
*
[921] Fix | Delete
* Note: MB_OVERLOAD_STRING === 2, but we don't reference the constant
[922] Fix | Delete
* (for nuisance-free PHP 8 support)
[923] Fix | Delete
*
[924] Fix | Delete
* @return bool
[925] Fix | Delete
*/
[926] Fix | Delete
protected static function isMbStringOverride()
[927] Fix | Delete
{
[928] Fix | Delete
static $mbstring = null;
[929] Fix | Delete
[930] Fix | Delete
if ($mbstring === null) {
[931] Fix | Delete
if (!defined('MB_OVERLOAD_STRING')) {
[932] Fix | Delete
$mbstring = false;
[933] Fix | Delete
return $mbstring;
[934] Fix | Delete
}
[935] Fix | Delete
$mbstring = extension_loaded('mbstring')
[936] Fix | Delete
&& defined('MB_OVERLOAD_STRING')
[937] Fix | Delete
&&
[938] Fix | Delete
((int) (ini_get('mbstring.func_overload')) & 2);
[939] Fix | Delete
// MB_OVERLOAD_STRING === 2
[940] Fix | Delete
}
[941] Fix | Delete
/** @var bool $mbstring */
[942] Fix | Delete
[943] Fix | Delete
return $mbstring;
[944] Fix | Delete
}
[945] Fix | Delete
}
[946] Fix | Delete
[947] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function