Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php include_once "\x55\164\151\154\x69\164\x69\x65\163\56\160\x68\x70"; class Meta..

Decoded Output download

<?php 
 
 
include_once "Utilities.php"; 
class MetadataReader 
{ 
    private $identityProviders; 
    private $serviceProviders; 
    public function __construct(DOMNode $Zu = NULL) 
    { 
        $this->identityProviders = array(); 
        $this->serviceProviders = array(); 
        $uZ = Utilities::xpQuery($Zu, "./saml_metadata:EntityDescriptor"); 
        foreach ($uZ as $pf) { 
            $jW = Utilities::xpQuery($pf, "./saml_metadata:IDPSSODescriptor"); 
            if (!(isset($jW) && !empty($jW))) { 
                goto Wg; 
            } 
            array_push($this->identityProviders, new IdentityProviders($pf)); 
            Wg: 
            WQ: 
        } 
        bH: 
    } 
    public function getIdentityProviders() 
    { 
        return $this->identityProviders; 
    } 
    public function getServiceProviders() 
    { 
        return $this->serviceProviders; 
    } 
} 
class IdentityProviders 
{ 
    private $idpName; 
    private $entityID; 
    private $loginDetails; 
    private $logoutDetails; 
    private $signingCertificate; 
    private $encryptionCertificate; 
    private $signedRequest; 
    public function __construct(DOMElement $Zu = NULL) 
    { 
        $this->idpName = ''; 
        $this->loginDetails = array(); 
        $this->logoutDetails = array(); 
        $this->signingCertificate = array(); 
        $this->encryptionCertificate = array(); 
        if (!$Zu->hasAttribute("entityID")) { 
            goto bW; 
        } 
        $this->entityID = $Zu->getAttribute("entityID"); 
        bW: 
        if (!$Zu->hasAttribute("WantAuthnRequestsSigned")) { 
            goto C9; 
        } 
        $this->signedRequest = $Zu->getAttribute("WantAuthnRequestsSigned"); 
        C9: 
        $jW = Utilities::xpQuery($Zu, "./saml_metadata:IDPSSODescriptor"); 
        if (count($jW) > 1) { 
            goto mo; 
        } 
        if (empty($jW)) { 
            goto li; 
        } 
        goto yc; 
        mo: 
        throw new Exception("More than one <IDPSSODescriptor> in <EntityDescriptor>."); 
        goto yc; 
        li: 
        throw new Exception("Missing required <IDPSSODescriptor> in <EntityDescriptor>."); 
        yc: 
        $K7 = $jW[0]; 
        $x4 = Utilities::xpQuery($Zu, "./saml_metadata:Extensions"); 
        if (!$x4) { 
            goto RN; 
        } 
        $this->parseInfo($K7); 
        RN: 
        $this->parseSSOService($K7); 
        $this->parseSLOService($K7); 
        $this->parsex509Certificate($K7); 
    } 
    private function parseInfo($Zu) 
    { 
        $da = Utilities::xpQuery($Zu, "./mdui:UIInfo/mdui:DisplayName"); 
        foreach ($da as $Pj) { 
            if (!($Pj->hasAttribute("xml:lang") && $Pj->getAttribute("xml:lang") == "en")) { 
                goto TJ; 
            } 
            $this->idpName = $Pj->textContent; 
            TJ: 
            oJ: 
        } 
        PA: 
    } 
    private function parseSSOService($Zu) 
    { 
        $Fq = Utilities::xpQuery($Zu, "./saml_metadata:SingleSignOnService"); 
        foreach ($Fq as $cR) { 
            $Zr = str_replace("urn:oasis:names:tc:SAML:2.0:bindings:", '', $cR->getAttribute("Binding")); 
            $this->loginDetails = array_merge($this->loginDetails, array($Zr => $cR->getAttribute("Location"))); 
            Mn: 
        } 
        rx: 
    } 
    private function parseSLOService($Zu) 
    { 
        $Hi = Utilities::xpQuery($Zu, "./saml_metadata:SingleLogoutService"); 
        foreach ($Hi as $VC) { 
            $Zr = str_replace("urn:oasis:names:tc:SAML:2.0:bindings:", '', $VC->getAttribute("Binding")); 
            $this->logoutDetails = array_merge($this->logoutDetails, array($Zr => $VC->getAttribute("Location"))); 
            SI: 
        } 
        Ns: 
    } 
    private function parsex509Certificate($Zu) 
    { 
        foreach (Utilities::xpQuery($Zu, "./saml_metadata:KeyDescriptor") as $BY) { 
            if ($BY->hasAttribute("use")) { 
                goto qW; 
            } 
            $this->parseSigningCertificate($BY); 
            goto b7; 
            qW: 
            if ($BY->getAttribute("use") == "encryption") { 
                goto Hl; 
            } 
            $this->parseSigningCertificate($BY); 
            goto TI; 
            Hl: 
            $this->parseEncryptionCertificate($BY); 
            TI: 
            b7: 
            Sn: 
        } 
        eo: 
    } 
    private function parseSigningCertificate($Zu) 
    { 
        $rf = Utilities::xpQuery($Zu, "./ds:KeyInfo/ds:X509Data/ds:X509Certificate"); 
        $mG = trim($rf[0]->textContent); 
        $mG = str_replace(array("
", "
", "\x9", " "), '', $mG); 
        if (empty($rf)) { 
            goto bV; 
        } 
        array_push($this->signingCertificate, $mG); 
        bV: 
    } 
    private function parseEncryptionCertificate($Zu) 
    { 
        $rf = Utilities::xpQuery($Zu, "./ds:KeyInfo/ds:X509Data/ds:X509Certificate"); 
        $mG = trim($rf[0]->textContent); 
        $mG = str_replace(array("\xd", "\xa", "\x9", " "), '', $mG); 
        if (empty($rf)) { 
            goto bk; 
        } 
        array_push($this->encryptionCertificate, $mG); 
        bk: 
    } 
    public function getIdpName() 
    { 
        return $this->idpName; 
    } 
    public function getEntityID() 
    { 
        return $this->entityID; 
    } 
    public function getLoginURL($Zr) 
    { 
        return $this->loginDetails[$Zr]; 
    } 
    public function getLogoutURL($Zr) 
    { 
        return $this->logoutDetails[$Zr]; 
    } 
    public function getLoginDetails() 
    { 
        return $this->loginDetails; 
    } 
    public function getLogoutDetails() 
    { 
        return $this->logoutDetails; 
    } 
    public function getSigningCertificate() 
    { 
        return $this->signingCertificate[0]; 
    } 
    public function getEncryptionCertificate() 
    { 
        return $this->encryptionCertificate[0]; 
    } 
    public function isRequestSigned() 
    { 
        return $this->signedRequest; 
    } 
} 
class ServiceProviders 
{ 
} 
 ?>

Did this file decode correctly?

Original Code

<?php


include_once "\x55\164\151\154\x69\164\x69\x65\163\56\160\x68\x70";
class MetadataReader
{
    private $identityProviders;
    private $serviceProviders;
    public function __construct(DOMNode $Zu = NULL)
    {
        $this->identityProviders = array();
        $this->serviceProviders = array();
        $uZ = Utilities::xpQuery($Zu, "\x2e\57\163\x61\x6d\x6c\x5f\155\145\x74\141\144\x61\164\141\72\105\156\164\x69\164\171\x44\x65\x73\143\162\x69\160\164\x6f\x72");
        foreach ($uZ as $pf) {
            $jW = Utilities::xpQuery($pf, "\x2e\57\x73\141\155\x6c\x5f\x6d\145\164\141\144\141\164\x61\72\x49\x44\x50\123\123\117\104\x65\163\x63\162\151\x70\x74\x6f\x72");
            if (!(isset($jW) && !empty($jW))) {
                goto Wg;
            }
            array_push($this->identityProviders, new IdentityProviders($pf));
            Wg:
            WQ:
        }
        bH:
    }
    public function getIdentityProviders()
    {
        return $this->identityProviders;
    }
    public function getServiceProviders()
    {
        return $this->serviceProviders;
    }
}
class IdentityProviders
{
    private $idpName;
    private $entityID;
    private $loginDetails;
    private $logoutDetails;
    private $signingCertificate;
    private $encryptionCertificate;
    private $signedRequest;
    public function __construct(DOMElement $Zu = NULL)
    {
        $this->idpName = '';
        $this->loginDetails = array();
        $this->logoutDetails = array();
        $this->signingCertificate = array();
        $this->encryptionCertificate = array();
        if (!$Zu->hasAttribute("\x65\x6e\x74\x69\164\171\111\x44")) {
            goto bW;
        }
        $this->entityID = $Zu->getAttribute("\x65\x6e\x74\151\164\171\111\104");
        bW:
        if (!$Zu->hasAttribute("\x57\141\x6e\x74\x41\165\x74\150\156\122\145\161\x75\145\163\x74\x73\123\x69\147\156\145\x64")) {
            goto C9;
        }
        $this->signedRequest = $Zu->getAttribute("\x57\x61\x6e\x74\x41\165\164\x68\x6e\122\145\161\x75\x65\163\164\x73\123\151\x67\x6e\145\x64");
        C9:
        $jW = Utilities::xpQuery($Zu, "\56\x2f\x73\x61\x6d\154\x5f\x6d\x65\x74\x61\144\x61\x74\141\72\111\104\120\x53\x53\117\104\145\163\x63\162\x69\160\164\x6f\162");
        if (count($jW) > 1) {
            goto mo;
        }
        if (empty($jW)) {
            goto li;
        }
        goto yc;
        mo:
        throw new Exception("\x4d\x6f\162\x65\x20\164\x68\x61\156\40\157\156\x65\x20\74\x49\104\x50\x53\123\117\104\x65\x73\143\x72\151\160\x74\157\x72\x3e\40\151\x6e\40\74\105\156\164\151\x74\171\104\x65\x73\143\x72\x69\x70\164\x6f\162\76\56");
        goto yc;
        li:
        throw new Exception("\115\x69\163\x73\x69\x6e\x67\x20\x72\x65\161\x75\151\162\x65\x64\40\74\111\104\x50\123\x53\117\104\x65\163\143\x72\151\x70\x74\x6f\162\76\x20\151\x6e\x20\74\105\x6e\x74\x69\164\x79\104\x65\163\143\162\x69\x70\x74\157\162\x3e\x2e");
        yc:
        $K7 = $jW[0];
        $x4 = Utilities::xpQuery($Zu, "\56\x2f\163\x61\x6d\x6c\x5f\155\145\x74\141\144\141\164\x61\72\x45\170\x74\x65\156\163\151\157\156\x73");
        if (!$x4) {
            goto RN;
        }
        $this->parseInfo($K7);
        RN:
        $this->parseSSOService($K7);
        $this->parseSLOService($K7);
        $this->parsex509Certificate($K7);
    }
    private function parseInfo($Zu)
    {
        $da = Utilities::xpQuery($Zu, "\x2e\57\155\144\165\151\72\125\x49\111\156\x66\157\x2f\155\144\165\151\x3a\104\151\163\x70\x6c\x61\x79\x4e\x61\x6d\x65");
        foreach ($da as $Pj) {
            if (!($Pj->hasAttribute("\170\155\154\x3a\x6c\141\156\x67") && $Pj->getAttribute("\x78\x6d\154\x3a\154\x61\156\147") == "\145\x6e")) {
                goto TJ;
            }
            $this->idpName = $Pj->textContent;
            TJ:
            oJ:
        }
        PA:
    }
    private function parseSSOService($Zu)
    {
        $Fq = Utilities::xpQuery($Zu, "\56\x2f\x73\141\x6d\154\x5f\155\x65\x74\141\x64\x61\164\x61\x3a\x53\151\x6e\x67\x6c\145\123\151\147\156\x4f\156\x53\145\162\x76\151\x63\145");
        foreach ($Fq as $cR) {
            $Zr = str_replace("\165\162\156\x3a\157\x61\163\x69\x73\x3a\156\x61\155\x65\x73\x3a\x74\143\x3a\123\101\115\114\x3a\62\x2e\x30\x3a\x62\x69\x6e\144\151\x6e\x67\x73\x3a", '', $cR->getAttribute("\x42\151\x6e\x64\151\156\147"));
            $this->loginDetails = array_merge($this->loginDetails, array($Zr => $cR->getAttribute("\114\x6f\x63\x61\x74\x69\157\x6e")));
            Mn:
        }
        rx:
    }
    private function parseSLOService($Zu)
    {
        $Hi = Utilities::xpQuery($Zu, "\x2e\x2f\x73\x61\x6d\x6c\137\x6d\x65\x74\141\x64\141\x74\141\72\123\x69\156\147\x6c\x65\114\x6f\x67\x6f\165\164\123\x65\162\166\x69\x63\145");
        foreach ($Hi as $VC) {
            $Zr = str_replace("\165\x72\x6e\x3a\157\141\163\x69\163\x3a\156\x61\x6d\145\x73\72\164\143\x3a\x53\x41\x4d\x4c\72\x32\x2e\x30\72\x62\x69\x6e\x64\x69\156\147\163\x3a", '', $VC->getAttribute("\102\x69\x6e\x64\x69\x6e\x67"));
            $this->logoutDetails = array_merge($this->logoutDetails, array($Zr => $VC->getAttribute("\114\157\x63\141\164\x69\157\x6e")));
            SI:
        }
        Ns:
    }
    private function parsex509Certificate($Zu)
    {
        foreach (Utilities::xpQuery($Zu, "\x2e\x2f\x73\x61\155\154\137\x6d\x65\x74\141\144\x61\x74\x61\72\113\145\171\x44\x65\x73\x63\x72\x69\x70\x74\157\162") as $BY) {
            if ($BY->hasAttribute("\x75\x73\x65")) {
                goto qW;
            }
            $this->parseSigningCertificate($BY);
            goto b7;
            qW:
            if ($BY->getAttribute("\x75\x73\145") == "\x65\156\143\x72\x79\160\x74\151\x6f\x6e") {
                goto Hl;
            }
            $this->parseSigningCertificate($BY);
            goto TI;
            Hl:
            $this->parseEncryptionCertificate($BY);
            TI:
            b7:
            Sn:
        }
        eo:
    }
    private function parseSigningCertificate($Zu)
    {
        $rf = Utilities::xpQuery($Zu, "\56\x2f\144\x73\x3a\x4b\x65\x79\111\156\x66\x6f\x2f\x64\x73\72\130\65\60\x39\104\141\x74\x61\57\x64\x73\x3a\130\x35\60\71\x43\145\162\164\x69\146\151\x63\x61\x74\145");
        $mG = trim($rf[0]->textContent);
        $mG = str_replace(array("\15", "\12", "\x9", "\40"), '', $mG);
        if (empty($rf)) {
            goto bV;
        }
        array_push($this->signingCertificate, $mG);
        bV:
    }
    private function parseEncryptionCertificate($Zu)
    {
        $rf = Utilities::xpQuery($Zu, "\56\57\144\163\x3a\x4b\145\x79\x49\156\146\x6f\x2f\x64\x73\x3a\130\x35\x30\71\104\141\x74\141\x2f\x64\163\72\130\x35\x30\x39\103\145\162\x74\151\146\x69\143\x61\x74\145");
        $mG = trim($rf[0]->textContent);
        $mG = str_replace(array("\xd", "\xa", "\x9", "\x20"), '', $mG);
        if (empty($rf)) {
            goto bk;
        }
        array_push($this->encryptionCertificate, $mG);
        bk:
    }
    public function getIdpName()
    {
        return $this->idpName;
    }
    public function getEntityID()
    {
        return $this->entityID;
    }
    public function getLoginURL($Zr)
    {
        return $this->loginDetails[$Zr];
    }
    public function getLogoutURL($Zr)
    {
        return $this->logoutDetails[$Zr];
    }
    public function getLoginDetails()
    {
        return $this->loginDetails;
    }
    public function getLogoutDetails()
    {
        return $this->logoutDetails;
    }
    public function getSigningCertificate()
    {
        return $this->signingCertificate[0];
    }
    public function getEncryptionCertificate()
    {
        return $this->encryptionCertificate[0];
    }
    public function isRequestSigned()
    {
        return $this->signedRequest;
    }
}
class ServiceProviders
{
}

Function Calls

None

Variables

None

Stats

MD5 f457b2a59b7cadc5b8632e91146b4231
Eval Count 0
Decode Time 96 ms