!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/smab.picotech.app/public_html/vendor/namshi/jose/tests/Namshi/JOSE/Test/   drwxr-xr-x
Free 26.82 GB of 117.98 GB (22.73%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     JWSTest.php (8.74 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace Namshi\JOSE\Test;

use 
DateTime;
use 
Namshi\JOSE\JWS;
use 
PHPUnit_Framework_TestCase as TestCase;
use 
Prophecy\Argument;
use 
Namshi\JOSE\Signer\OpenSSL\HS256;
use 
Namshi\JOSE\Base64\Base64UrlSafeEncoder;

class 
JWSTest extends TestCase
{
    const 
SSL_KEY_PASSPHRASE 'tests';

    public function 
setup()
    {
        
$date = new DateTime('tomorrow');
        
$data = array(
            
'a' => 'b',
        );
        
$this->jws = new JWS(array('alg' => 'RS256'));
        
$this->jws->setPayload($data);
    }

    
/**
     * @expectedException InvalidArgumentException
     */
    
public function testLoadingUnsecureJwsWithNoneAlgo()
    {
        
$date = new DateTime('tomorrow');
        
$data = array(
            
'a' => 'b',
            
'exp' => $date->format('U'),
        );
        
$this->jws = new JWS(array('alg' => 'None'));
        
$this->jws->setPayload($data);
        
$this->jws->sign('111');

        
$jws JWS::load($this->jws->getTokenString());
        
$this->assertFalse($jws->verify('111'));

        
$payload $jws->getPayload();
        
$this->assertEquals('b'$payload['a']);
    }

    
/**
     * @expectedException InvalidArgumentException
     */
    
public function testLoadingUnsecureJwsWithLowercaseNone()
    {
        
$date = new DateTime('tomorrow');
        
$data = array(
            
'a' => 'b',
            
'exp' => $date->format('U'),
        );
        
$this->jws = new JWS(array('alg' => 'none'));
        
$this->jws->setPayload($data);
        
$this->jws->sign('111');

        
$jws JWS::load($this->jws->getTokenString());
        
$this->assertFalse($jws->verify('111'));

        
$payload $jws->getPayload();
        
$this->assertEquals('b'$payload['a']);
    }

    public function 
testAllowingUnsecureJws()
    {
        
$date = new DateTime('tomorrow');
        
$data = array(
            
'a' => 'b',
            
'exp' => $date->format('U'),
        );
        
$this->jws = new JWS(array('alg' => 'None'));
        
$this->jws->setPayload($data);
        
$this->jws->sign('111');

        
$jws JWS::load($this->jws->getTokenString(), true);
        
$this->assertTrue($jws->verify('111'));

        
$payload $jws->getPayload();
        
$this->assertEquals('b'$payload['a']);
    }

    public function 
testRestrictingTheAlgorithmsKo()
    {
        
$this->jws = new JWS(array('alg' => 'HS256'));
        
$this->jws->sign('12345');

        
$jws JWS::load($this->jws->getTokenString());
        
$this->assertFalse($jws->verify('12345''RS256'));
    }

    public function 
testRestrictingTheAlgorithmsOk()
    {
        
$date = new DateTime('tomorrow');
        
$data = array(
            
'a' => 'b',
            
'exp' => $date->format('U'),
        );
        
$this->jws = new JWS(array('alg' => 'HS256'));
        
$this->jws->setPayload($data);
        
$this->jws->sign('123');

        
$jws JWS::load($this->jws->getTokenString());
        
$this->assertTrue($jws->verify('123''HS256'));
    }

    public function 
testVerificationRS256()
    {
        
$privateKey openssl_pkey_get_private(SSL_KEYS_PATH.'private.key'self::SSL_KEY_PASSPHRASE);
        
$this->jws->sign($privateKey);

        
$jws JWS::load($this->jws->getTokenString());
        
$public_key openssl_pkey_get_public(SSL_KEYS_PATH.'public.key');
        
$this->assertTrue($jws->verify($public_key));

        
$payload $jws->getPayload();
        
$this->assertEquals('b'$payload['a']);
    }

    public function 
testVerificationRS256KeyAsString()
    {
        
$privateKey file_get_contents(TEST_DIR.'/private.key');
        
$this->jws->sign($privateKeyself::SSL_KEY_PASSPHRASE);

        
$jws JWS::load($this->jws->getTokenString());
        
$public_key openssl_pkey_get_public(SSL_KEYS_PATH.'public.key');
        
$this->assertTrue($jws->verify($public_key));

        
$payload $jws->getPayload();
        
$this->assertEquals('b'$payload['a']);
    }

    public function 
testUseOfCustomEncoder()
    {
        
$encoder $this->prophesize('Namshi\JOSE\Base64\Encoder');
        
$encoder
            
->decode(Argument::any())
            ->
willReturn('{"whatever": "the payload should be"}')
            ->
shouldBeCalled();
        
$encoder
            
->decode(Argument::any())
            ->
willReturn('{"alg": "test"}')
            ->
shouldBeCalled();
        
JWS::load($this->jws->getTokenString(), false$encoder->reveal());
    }

    public function 
testVerificationThatTheJWSIsSigned()
    {
        
$privateKey openssl_pkey_get_private(SSL_KEYS_PATH.'private.key'self::SSL_KEY_PASSPHRASE);
        
$this->jws->sign($privateKey);
        
$this->assertTrue($this->jws->isSigned());
    }

    public function 
testVerificationThatTheJWSIsNotSigned()
    {
        
$this->assertFalse($this->jws->isSigned());
    }

    
/**
     * @expectedException InvalidArgumentException
     */
    
public function testWrongVerificationRS256()
    {
        
$privateKey openssl_pkey_get_private(SSL_KEYS_PATH.'private.key'self::SSL_KEY_PASSPHRASE);
        
$this->jws->sign($privateKey);

        
$jws JWS::load('eyJhbGciOiJ0ZXN0In0=.eyJhbGciOiJ0ZXN0In0=.eyJhbGciOiJ0ZXN0In0=');
        
$public_key openssl_pkey_get_public(SSL_KEYS_PATH.'public.key');
        
$this->assertFalse($jws->verify($public_key));
    }

    
/**
     * @expectedException InvalidArgumentException
     */
    
public function testLoadingAMalformedTokenString()
    {
        
JWS::load('test.Test.TEST');
    }

    
/**
     * @expectedException InvalidArgumentException
     */
    
public function testLoadingAMalformedTokenString2()
    {
        
JWS::load('test');
    }

    public function 
testSignAndVerifyWithFalsePublicKey()
    {
        
$public_key false;
        
$jwsHMAC = new JWS(array('alg' => 'HS256'));

        
$jwsHMAC->sign(false);
        
$jws JWS::load($jwsHMAC->getTokenString());

        
$this->assertFalse($jws->verify($public_key));
    }

    public function 
testSignAndVerifyWithEmptyStringPublicKey()
    {
        
$public_key false;
        
$jwsHMAC = new JWS(array('alg' => 'HS256'));

        
$jwsHMAC->sign('');
        
$jws JWS::load($jwsHMAC->getTokenString());

        
$this->assertFalse($jws->verify($public_key));
    }

    public function 
testLoadingWithAnyOrderOfHeaders()
    {
        
$privateKey openssl_pkey_get_private(SSL_KEYS_PATH.'private.key'self::SSL_KEY_PASSPHRASE);
        
$public_key openssl_pkey_get_public(SSL_KEYS_PATH.'public.key');

        
$this->jws = new JWS(array('alg' => 'RS256''custom' => '1'));

        
$header $this->jws->getHeader();
        
$reversedHeader array_reverse($header);
        
$this->assertFalse($header === $reversedHeader);

        
$this->jws->setHeader($reversedHeader);
        
$this->jws->sign($privateKey);

        
$tokenString $this->jws->getTokenString();
        
$jws JWS::load($tokenString);
        
$this->assertTrue($reversedHeader === $jws->getHeader());
    }

    public function 
testSignAndVerifyWithSecLib()
    {
        if (
version_compare(PHP_VERSION'7.0.0-dev') >= 0) {
            
$this->setExpectedException('InvalidArgumentException');
        }

        
$jwsRSA = new JWS(array('alg' => 'RS256'), 'SecLib');
        
$data = array('a' => 'b');
        
$jwsRSA->setPayload($data);

        
$jwsRSA->sign(file_get_contents(SSL_KEYS_PATH.'private.key'), 'tests');
        
$jws JWS::load($jwsRSA->getTokenString(), falsenull'SecLib');

        
$this->assertTrue($jws->verify(file_get_contents(SSL_KEYS_PATH.'public.key''RS256')));
    }

    public function 
testConstructionFromHeader()
    {
        
$header = array('alg' => 'RS256''test' => true);
        
$jws = new JWS($header);

        
$this->assertTrue($header == $jws->getHeader());
    }

    public function 
testVerificationCustomizedHeader()
    {
        
$header $this->jws->getHeader();
        
$header['test'] = true;
        
$this->jws->setHeader($header);

        
$privateKey openssl_pkey_get_private(SSL_KEYS_PATH.'private.key'self::SSL_KEY_PASSPHRASE);
        
$this->jws->sign($privateKey);

        
$jws JWS::load($this->jws->getTokenString());
        
$public_key openssl_pkey_get_public(SSL_KEYS_PATH.'public.key');
        
$headerFromSig $jws->getHeader();

        
$this->assertSame($headerFromSig['test'], true);
        
$this->assertTrue($jws->verify($public_key));
    }

    public function 
testVerificationWithJsonThatContainsWhitespace()
    {
        
$header '{
            "alg": "HS256"
        }'
;

        
$payload '{
            "a": "b"
        }'
;

        
$encoder = new Base64UrlSafeEncoder();
        
$signer = new HS256();

        
$token sprintf('%s.%s'$encoder->encode($header), $encoder->encode($payload));
        
$signature $encoder->encode($signer->sign($token'123'));
        
$jwsToken sprintf('%s.%s'$token$signature);

        
$jws JWS::load($jwsToken);

        
$this->assertTrue($jws->verify('123'));
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0044 ]--