Server IP : 104.21.14.48 / Your IP : 3.17.179.193 [ Web Server : Apache System : Linux b70eb322-3aee-0c53-7c82-0db91281f2c6.secureserver.net 6.1.90-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 2 12:09:22 EDT 2024 x86_64 User : root ( 0) PHP Version : 8.0.30.2 Disable Function : NONE Domains : 0 Domains MySQL : ON | cURL : ON | WGET : ON | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/wp-content/plugins/defender-security/vendor/web-token/jwt-signature/ |
Upload File : |
<?php declare(strict_types=1); /* * The MIT License (MIT) * * Copyright (c) 2014-2020 Spomky-Labs * * This software may be modified and distributed under the terms * of the MIT license. See the LICENSE file for details. */ namespace Jose\Component\Signature; use function count; use InvalidArgumentException; use Jose\Component\Core\JWT; class JWS implements JWT { /** * @var bool */ private $isPayloadDetached = false; /** * @var null|string */ private $encodedPayload; /** * @var Signature[] */ private $signatures = []; /** * @var null|string */ private $payload; public function __construct(?string $payload, ?string $encodedPayload = null, bool $isPayloadDetached = false) { $this->payload = $payload; $this->encodedPayload = $encodedPayload; $this->isPayloadDetached = $isPayloadDetached; } public function getPayload(): ?string { return $this->payload; } /** * Returns true if the payload is detached. */ public function isPayloadDetached(): bool { return $this->isPayloadDetached; } /** * Returns the Base64Url encoded payload. * If the payload is detached, this method returns null. */ public function getEncodedPayload(): ?string { if (true === $this->isPayloadDetached()) { return null; } return $this->encodedPayload; } /** * Returns the signatures associated with the JWS. * * @return Signature[] */ public function getSignatures(): array { return $this->signatures; } /** * Returns the signature at the given index. * * @throws InvalidArgumentException if the signature index does not exist */ public function getSignature(int $id): Signature { if (isset($this->signatures[$id])) { return $this->signatures[$id]; } throw new InvalidArgumentException('The signature does not exist.'); } /** * This method adds a signature to the JWS object. * Its returns a new JWS object. * * @internal * * @return JWS */ public function addSignature(string $signature, array $protectedHeader, ?string $encodedProtectedHeader, array $header = []): self { $jws = clone $this; $jws->signatures[] = new Signature($signature, $protectedHeader, $encodedProtectedHeader, $header); return $jws; } /** * Returns the number of signature associated with the JWS. */ public function countSignatures(): int { return count($this->signatures); } /** * This method splits the JWS into a list of JWSs. * It is only useful when the JWS contains more than one signature (JSON General Serialization). * * @return JWS[] */ public function split(): array { $result = []; foreach ($this->signatures as $signature) { $jws = new self( $this->payload, $this->encodedPayload, $this->isPayloadDetached ); $jws = $jws->addSignature( $signature->getSignature(), $signature->getProtectedHeader(), $signature->getEncodedProtectedHeader(), $signature->getHeader() ); $result[] = $jws; } return $result; } }