403Webshell
Server IP : 85.158.181.41  /  Your IP : 216.73.217.12
Web Server : Apache
System : Linux cloud9-vm129 6.1.178+1-ph #ph SMP PREEMPT_DYNAMIC Wed Jul 29 09:00:54 UTC 2026 x86_64
User : moncbefd ( 1024)
PHP Version : 7.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/moncbefd/www.moneta.at/GXMainComponents/Extensions/JsonWebToken/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/moncbefd/www.moneta.at/GXMainComponents/Extensions/JsonWebToken/JsonWebToken.inc.php
<?php
/* --------------------------------------------------------------
   JsonWebToken.inc.php 2019-08-09
   Gambio GmbH
   http://www.gambio.de
   Copyright (c) 2019 Gambio GmbH
   Released under the GNU General Public License (Version 2)
   [http://www.gnu.org/licenses/gpl-2.0.html]
   --------------------------------------------------------------
*/

class JsonWebToken
{
    protected $headers;
    
    protected $payload;
    
    /** @var \NonEmptyStringType */
    protected $secret;
    
    /** @var bool */
    protected $includeSecretInSignaturePayload;
    
    /** @var bool */
    protected $useRawHmacForSignature;
    
    
    /**
     * JsonWebToken constructor.
     *
     * @param \KeyValueCollection $headers
     * @param \KeyValueCollection $payload
     * @param \NonEmptyStringType $secret
     *
     * @throws \JsonWebTokenException
     */
    public function __construct(KeyValueCollection $headers, KeyValueCollection $payload)
    {
        $this->headers = MainFactory::create('EditableKeyValueCollection', []);
        $this->payload = MainFactory::create('EditableKeyValueCollection', []);
        $this->secret  = null;
        $this->setHeaders($headers);
        $this->setPayload($payload);
        //$this->setSecret($secret);
        $this->setIncludeSecretInSignaturePayload(true);
        $this->setUseRawHmacForSignature(false);
    }
    
    
    public function __toString()
    {
        if ($this->secret === null) {
            $token = 'ERROR: secret not set';
        } else {
            $header    = $this->getHeaderString();
            $payload   = $this->getPayloadString();
            $signature = $this->makeSignature($this->secret);
            $token     = $header . '.' . $payload . '.' . $signature;
        }
        
        return $token;
    }
    
    
    public function getHeaderString()
    {
        $header = $this->base64urlEncode(json_encode($this->headers->getArray()));
        
        return $header;
    }
    
    
    public function getPayloadString()
    {
        $payload = $this->base64urlEncode(json_encode($this->payload->getArray()));
        
        return $payload;
    }
    
    
    protected function base64urlEncode($input)
    {
        $output = base64_encode($input);
        $output = rtrim($output, '=');
        $output = strtr($output, ['+' => '-', '/' => '_']);
        
        return $output;
    }
    
    
    public function makeSignature(NonEmptyStringType $secret)
    {
        $header  = $this->getHeaderString();
        $payload = $this->getPayloadString();
        $data    = $header . '.' . $payload;
        if ($this->isIncludeSecretInSignaturePayload()) {
            $data .= '.' . $secret->asString();
        }
        $signature = hash_hmac('sha256', $data, $secret->asString(), $this->isUseRawHmacForSignature());
        $signature = $this->base64urlEncode($signature);
        
        return $signature;
    }
    
    
    /**
     * @param \KeyValueCollection $headers
     *
     * @throws \JsonWebTokenException
     */
    public function setHeaders(KeyValueCollection $headers)
    {
        try {
            if ($headers->getValue('alg') !== 'HS256' || $headers->getValue('typ') !== 'JWT') {
                throw new JsonWebTokenException('Invalid header values');
            }
            $this->headers = MainFactory::create('EditableKeyValueCollection', $headers->getArray());
        } catch (InvalidArgumentException $e) {
            throw new JsonWebTokenException('Required keys missing in header');
        }
    }
    
    
    public function getHeaders()
    {
        return $this->headers;
    }
    
    
    public function setPayload(KeyValueCollection $payload)
    {
        $this->payload = MainFactory::create('EditableKeyValueCollection', $payload->getArray());
    }
    
    
    public function getPayload()
    {
        return $this->payload;
    }
    
    
    public function setSecret(NonEmptyStringType $secret)
    {
        $this->secret = $secret;
    }
    
    
    /**
     * @return bool
     */
    public function isIncludeSecretInSignaturePayload()
    {
        return $this->includeSecretInSignaturePayload;
    }
    
    
    /**
     * @param bool $includeSecretInSignaturePayload
     */
    public function setIncludeSecretInSignaturePayload($includeSecretInSignaturePayload)
    {
        $this->includeSecretInSignaturePayload = (bool)$includeSecretInSignaturePayload;
    }
    
    
    /**
     * @return bool
     */
    public function isUseRawHmacForSignature()
    {
        return $this->useRawHmacForSignature;
    }
    
    
    /**
     * @param bool $useRawHmacForSignature
     */
    public function setUseRawHmacForSignature($useRawHmacForSignature)
    {
        $this->useRawHmacForSignature = (bool)$useRawHmacForSignature;
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit