Changeset 54310 for trunk/src/wp-includes/sodium_compat/src/Core/Util.php
- Timestamp:
- 09/26/2022 01:58:53 PM (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/sodium_compat/src/Core/Util.php
r52988 r54310 310 310 * 311 311 * @param string $hexString 312 * @param string $ignore 312 313 * @param bool $strictPadding 313 314 * @return string (raw binary) … … 315 316 * @throws TypeError 316 317 */ 317 public static function hex2bin($hexString, $ strictPadding = false)318 public static function hex2bin($hexString, $ignore = '', $strictPadding = false) 318 319 { 319 320 /* Type checks: */ … … 321 322 throw new TypeError('Argument 1 must be a string, ' . gettype($hexString) . ' given.'); 322 323 } 323 324 /** @var int $hex_pos */ 324 if (!is_string($ignore)) { 325 throw new TypeError('Argument 2 must be a string, ' . gettype($hexString) . ' given.'); 326 } 327 325 328 $hex_pos = 0; 326 /** @var string $bin */327 329 $bin = ''; 328 /** @var int $c_acc */329 330 $c_acc = 0; 330 /** @var int $hex_len */331 331 $hex_len = self::strlen($hexString); 332 /** @var int $state */333 332 $state = 0; 334 333 if (($hex_len & 1) !== 0) { … … 348 347 /** @var int $c */ 349 348 $c = $chunk[$hex_pos]; 350 /** @var int $c_num */351 349 $c_num = $c ^ 48; 352 /** @var int $c_num0 */353 350 $c_num0 = ($c_num - 10) >> 8; 354 /** @var int $c_alpha */355 351 $c_alpha = ($c & ~32) - 55; 356 /** @var int $c_alpha0 */357 352 $c_alpha0 = (($c_alpha - 10) ^ ($c_alpha - 16)) >> 8; 358 353 if (($c_num0 | $c_alpha0) === 0) { 354 if ($ignore && $state === 0 && strpos($ignore, self::intToChr($c)) !== false) { 355 continue; 356 } 359 357 throw new RangeException( 360 358 'hex2bin() only expects hexadecimal characters' 361 359 ); 362 360 } 363 /** @var int $c_val */364 361 $c_val = ($c_num0 & $c_num) | ($c_alpha & $c_alpha0); 365 362 if ($state === 0) { … … 383 380 public static function intArrayToString(array $ints) 384 381 { 385 /** @var array<int, int> $args */386 382 $args = $ints; 387 383 foreach ($args as $i => $v) {
Note: See TracChangeset
for help on using the changeset viewer.