!C99Shell v. 2.1 [PHP 8 Update] [02.02.2022]!

Software: Apache/2.4.53 (Unix) OpenSSL/1.1.1o PHP/7.4.29 mod_perl/2.0.12 Perl/v5.34.1. PHP/7.4.29 

uname -a: Linux vps-2738122-x 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 

uid=1(daemon) gid=1(daemon) grupos=1(daemon) 

Safe-mode: OFF (not secure)

/opt/apex_led/php/3ros/simplesamlphp/lib/SAML2/   drwxrwxr-x
Free 13.95 GB of 61.93 GB (22.53%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     LogoutRequest.php (6.76 KB)      -rwxrwxr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/**
 * Class for SAML 2 logout request messages.
 *
 * @package simpleSAMLphp
 * @version $Id$
 */
class SAML2_LogoutRequest extends SAML2_Request {

    
/**
     * The expiration time of this request.
     *
     * @var int|NULL
     */
    
private $notOnOrAfter;


    
/**
     * The encrypted NameID in the request.
     *
     * If this is not NULL, the NameID needs decryption before it can be accessed.
     *
     * @var DOMElement|NULL
     */
    
private $encryptedNameId;


    
/**
     * The name identifier of the session that should be terminated.
     *
     * @var array
     */
    
private $nameId;


    
/**
     * The SessionIndexes of the sessions that should be terminated.
     *
     * @var array
     */
    
private $sessionIndexes;


    
/**
     * Constructor for SAML 2 logout request messages.
     *
     * @param DOMElement|NULL $xml  The input message.
     */
    
public function __construct(DOMElement $xml NULL) {
        
parent::__construct('LogoutRequest'$xml);

        
$this->sessionIndexes = array();

        if (
$xml === NULL) {
            return;
        }

        if (
$xml->hasAttribute('NotOnOrAfter')) {
            
$this->notOnOrAfter SimpleSAML_Utilities::parseSAML2Time($xml->getAttribute('NotOnOrAfter'));
        }

        
$nameId SAML2_Utils::xpQuery($xml'./saml_assertion:NameID | ./saml_assertion:EncryptedID/xenc:EncryptedData');
        if (empty(
$nameId)) {
            throw new 
Exception('Missing <saml:NameID> or <saml:EncryptedID> in <samlp:LogoutRequest>.');
        } elseif (
count($nameId) > 1) {
            throw new 
Exception('More than one <saml:NameID> or <saml:EncryptedD> in <samlp:LogoutRequest>.');
        }
        
$nameId $nameId[0];
        if (
$nameId->localName === 'EncryptedData') {
            
/* The NameID element is encrypted. */
            
$this->encryptedNameId $nameId;
        } else {
            
$this->nameId SAML2_Utils::parseNameId($nameId);
        }

        
$sessionIndexes SAML2_Utils::xpQuery($xml'./saml_protocol:SessionIndex');
        foreach (
$sessionIndexes as $sessionIndex) {
            
$this->sessionIndexes[] = trim($sessionIndex->textContent);
        }
    }


    
/**
     * Retrieve the expiration time of this request.
     *
     * @return int|NULL  The expiration time of this request.
     */
    
public function getNotOnOrAfter() {

        return 
$this->notOnOrAfter;
    }


    
/**
     * Set the expiration time of this request.
     *
     * @param int|NULL $notOnOrAfter  The expiration time of this request.
     */
    
public function setNotOnOrAfter($notOnOrAfter) {
        
assert('is_int($notOnOrAfter) || is_null($notOnOrAfter)');

        
$this->notOnOrAfter $notOnOrAfter;
    }


    
/**
     * Check whether the NameId is encrypted.
     *
     * @return TRUE if the NameId is encrypted, FALSE if not.
     */
    
public function isNameIdEncrypted() {

        if (
$this->encryptedNameId !== NULL) {
            return 
TRUE;
        }

        return 
FALSE;
    }


    
/**
     * Encrypt the NameID in the LogoutRequest.
     *
     * @param XMLSecurityKey $key  The encryption key.
     */
    
public function encryptNameId(XMLSecurityKey $key) {

        
/* First create a XML representation of the NameID. */
        
$doc = new DOMDocument();
        
$root $doc->createElement('root');
        
$doc->appendChild($root);
        
SAML2_Utils::addNameId($root$this->nameId);
        
$nameId $root->firstChild;

        
SimpleSAML_Utilities::debugMessage($nameId'encrypt');

        
/* Encrypt the NameID. */
        
$enc = new XMLSecEnc();
        
$enc->setNode($nameId);
        
$enc->type XMLSecEnc::Element;

        
$symmetricKey = new XMLSecurityKey(XMLSecurityKey::AES128_CBC);
        
$symmetricKey->generateSessionKey();
        
$enc->encryptKey($key$symmetricKey);

        
$this->encryptedNameId $enc->encryptNode($symmetricKey);
        
$this->nameId NULL;
    }


    
/**
     * Decrypt the NameID in the LogoutRequest.
     *
     * @param XMLSecurityKey $key  The decryption key.
     * @param array $blacklist  Blacklisted decryption algorithms.
     */
    
public function decryptNameId(XMLSecurityKey $key, array $blacklist = array()) {

        if (
$this->encryptedNameId === NULL) {
            
/* No NameID to decrypt. */
            
return;
        }

        
$nameId SAML2_Utils::decryptElement($this->encryptedNameId$key$blacklist);
        
SimpleSAML_Utilities::debugMessage($nameId'decrypt');
        
$this->nameId SAML2_Utils::parseNameId($nameId);

        
$this->encryptedNameId NULL;
    }


    
/**
     * Retrieve the name identifier of the session that should be terminated.
     *
     * @return array  The name identifier of the session that should be terminated.
     */
    
public function getNameId() {

        if (
$this->encryptedNameId !== NULL) {
            throw new 
Exception('Attempted to retrieve encrypted NameID without decrypting it first.');
        }

        return 
$this->nameId;
    }


    
/**
     * Set the name identifier of the session that should be terminated.
     *
     * The name identifier must be in the format accepted by SAML2_message::buildNameId().
     *
     * @see SAML2_message::buildNameId()
     * @param array $nameId  The name identifier of the session that should be terminated.
     */
    
public function setNameId($nameId) {
        
assert('is_array($nameId)');

        
$this->nameId $nameId;
    }


    
/**
     * Retrieve the SessionIndexes of the sessions that should be terminated.
     *
     * @return array  The SessionIndexes, or an empty array if all sessions should be terminated.
     */
    
public function getSessionIndexes() {
        return 
$this->sessionIndexes;
    }


    
/**
     * Set the SessionIndexes of the sessions that should be terminated.
     *
     * @param array $sessionIndexes  The SessionIndexes, or an empty array if all sessions should be terminated.
     */
    
public function setSessionIndexes(array $sessionIndexes) {
        
$this->sessionIndexes $sessionIndexes;
    }


    
/**
     * Retrieve the sesion index of the session that should be terminated.
     *
     * @return string|NULL  The sesion index of the session that should be terminated.
     */
    
public function getSessionIndex() {

        if (empty(
$this->sessionIndexes)) {
            return 
NULL;
        }

        return 
$this->sessionIndexes[0];
    }


    
/**
     * Set the sesion index of the session that should be terminated.
     *
     * @param string|NULL $sessionIndex The sesion index of the session that should be terminated.
     */
    
public function setSessionIndex($sessionIndex) {
        
assert('is_string($sessionIndex) || is_null($sessionIndex)');

        if (
is_null($sessionIndex)) {
            
$this->sessionIndexes = array();
        } else {
            
$this->sessionIndexes = array($sessionIndex);
        }
    }


    
/**
     * Convert this logout request message to an XML element.
     *
     * @return DOMElement  This logout request.
     */
    
public function toUnsignedXML() {

        
$root parent::toUnsignedXML();

        if (
$this->notOnOrAfter !== NULL) {
            
$root->setAttribute('NotOnOrAfter'gmdate('Y-m-d\TH:i:s\Z'$this->notOnOrAfter));
        }

        if (
$this->encryptedNameId === NULL) {
            
SAML2_Utils::addNameId($root$this->nameId);
        } else {
            
$eid $root->ownerDocument->createElementNS(SAML2_Const::NS_SAML'saml:' 'EncryptedID');
            
$root->appendChild($eid);
            
$eid->appendChild($root->ownerDocument->importNode($this->encryptedNameIdTRUE));
        }

        foreach (
$this->sessionIndexes as $sessionIndex) {
            
SAML2_Utils::addString($rootSAML2_Const::NS_SAMLP'SessionIndex'$sessionIndex);
        }

        return 
$root;
    }

}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

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

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

--[ c99shell v. 2.1 [PHP 8 Update] [02.02.2022] maintained byC99Shell Github | Generation time: 0.977 ]--