. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Core\Authentication\Jwt; use RuntimeException; class Util { public static function base64UrlDecode(string $string): string { $extra = 4 - strlen($string) % 4; $extra = $extra < 4 ? $extra : 0; $preparedString = strtr($string . str_repeat('=', $extra), '-_', '+/'); $decoded = base64_decode($preparedString, true); if ($decoded === false) { throw new RuntimeException("Base64url decoding error."); } return $decoded; } }