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 "\125\x74\x69\154\x69\x74\x69\145\x73\x2e\x70\150\x70"; class SAM..

Decoded Output download

<?php 
 
 
include_once "Utilities.php"; 
class SAML2_Assertion 
{ 
    private $id; 
    private $issueInstant; 
    private $issuer; 
    private $nameId; 
    private $encryptedNameId; 
    private $encryptedAttribute; 
    private $encryptionKey; 
    private $notBefore; 
    private $notOnOrAfter; 
    private $validAudiences; 
    private $sessionNotOnOrAfter; 
    private $sessionIndex; 
    private $authnInstant; 
    private $authnContextClassRef; 
    private $authnContextDecl; 
    private $authnContextDeclRef; 
    private $AuthenticatingAuthority; 
    private $attributes; 
    private $nameFormat; 
    private $signatureKey; 
    private $certificates; 
    private $signatureData; 
    private $requiredEncAttributes; 
    private $SubjectConfirmation; 
    protected $wasSignedAtConstruction = FALSE; 
    public function __construct(DOMElement $A3 = NULL) 
    { 
        $this->id = Utilities::generateId(); 
        $this->issueInstant = Utilities::generateTimestamp(); 
        $this->issuer = ''; 
        $this->authnInstant = Utilities::generateTimestamp(); 
        $this->attributes = array(); 
        $this->nameFormat = "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"; 
        $this->certificates = array(); 
        $this->AuthenticatingAuthority = array(); 
        $this->SubjectConfirmation = array(); 
        if (!($A3 === NULL)) { 
            goto j3; 
        } 
        return; 
        j3: 
        if (!($A3->localName === "EncryptedAssertion")) { 
            goto fc; 
        } 
        $E2 = Utilities::xpQuery($A3, ".//*[local-name()="EncryptedData"]"); 
        $hd = Utilities::xpQuery($A3, ".//*[local-name()="EncryptedData"]/*[local-name()="KeyInfo"]"); 
        $hd = Utilities::xpQuery($A3, ".//*[local-name()="EncryptedData"]/*[local-name()="KeyInfo"]/*[local-name()="EncryptedKey"]"); 
        $Vw = ''; 
        if (empty($hd)) { 
            goto qh; 
        } 
        $Vw = "http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"; 
        goto kJ; 
        qh: 
        $hd = Utilities::xpQuery($A3, ".//*[local-name()="EncryptedData"]/*[local-name()="KeyInfo"]/*[local-name()="EncryptedKey"]"); 
        $Vw = $hd[0]->getAttribute("Algorithm"); 
        kJ: 
        $eY = Utilities::getEncryptionAlgorithm($Vw); 
        if (count($E2) === 0) { 
            goto A2; 
        } 
        if (count($E2) > 1) { 
            goto vy; 
        } 
        goto CO; 
        A2: 
        throw new Exception("Missing encrypted data in <saml:EncryptedAssertion>."); 
        goto CO; 
        vy: 
        throw new Exception("More than one encrypted data element in <saml:EncryptedAssertion>."); 
        CO: 
        $t9 = Utilities::getPrivateKey(); 
        $tg = new XMLSecurityKey($eY, array("type" => "private")); 
        $tg->loadKey($t9, FALSE); 
        $iP = array(); 
        try { 
            $A3 = Utilities::decryptElement($E2[0], $tg, $iP); 
        } catch (Exception $vc) { 
            echo "Caught exception: ", $vc->getMessage(), "\xa"; 
        } 
        fc: 
        if ($A3->hasAttribute("ID")) { 
            goto HK; 
        } 
        throw new Exception("Missing ID attribute on SAML assertion."); 
        HK: 
        $this->id = $A3->getAttribute("ID"); 
        if (!($A3->getAttribute("Version") !== "2.0")) { 
            goto N8; 
        } 
        throw new Exception("Unsupported version: " . $A3->getAttribute("Version")); 
        N8: 
        $this->issueInstant = Utilities::xsDateTimeToTimestamp($A3->getAttribute("IssueInstant")); 
        $wf = Utilities::xpQuery($A3, "./saml_assertion:Issuer"); 
        if (!empty($wf)) { 
            goto md; 
        } 
        throw new Exception("Missing <saml:Issuer> in assertion."); 
        md: 
        $this->issuer = trim($wf[0]->textContent); 
        $this->parseConditions($A3); 
        $this->parseAuthnStatement($A3); 
        $this->parseAttributes($A3); 
        $this->parseEncryptedAttributes($A3); 
        $this->parseSignature($A3); 
        $this->parseSubject($A3); 
    } 
    private function parseSubject(DOMElement $A3) 
    { 
        $I9 = Utilities::xpQuery($A3, "./saml_assertion:Subject"); 
        if (empty($I9)) { 
            goto yS; 
        } 
        if (count($I9) > 1) { 
            goto DM; 
        } 
        goto Wt; 
        yS: 
        return; 
        goto Wt; 
        DM: 
        throw new Exception("More than one <saml:Subject> in <saml:Assertion>."); 
        Wt: 
        $I9 = $I9[0]; 
        $nD = Utilities::xpQuery($I9, "./saml_assertion:NameID | ./saml_assertion:EncryptedID/xenc:EncryptedData"); 
        if (empty($nD)) { 
            goto VB; 
        } 
        if (count($nD) > 1) { 
            goto id; 
        } 
        goto TE; 
        VB: 
        throw new Exception("Missing <saml:NameID> or <saml:EncryptedID> in <saml:Subject>."); 
        goto TE; 
        id: 
        throw new Exception("More than one <saml:NameID> or <saml:EncryptedD> in <saml:Subject>."); 
        TE: 
        $nD = $nD[0]; 
        if ($nD->localName === "EncryptedData") { 
            goto FQ; 
        } 
        $this->nameId = Utilities::parseNameId($nD); 
        goto Pq; 
        FQ: 
        $this->encryptedNameId = $nD; 
        Pq: 
    } 
    private function parseConditions(DOMElement $A3) 
    { 
        $q7 = Utilities::xpQuery($A3, "./saml_assertion:Conditions"); 
        if (empty($q7)) { 
            goto We; 
        } 
        if (count($q7) > 1) { 
            goto Gu; 
        } 
        goto ZN; 
        We: 
        return; 
        goto ZN; 
        Gu: 
        throw new Exception("More than one <saml:Conditions> in <saml:Assertion>."); 
        ZN: 
        $q7 = $q7[0]; 
        if (!$q7->hasAttribute("NotBefore")) { 
            goto Iu; 
        } 
        $tO = Utilities::xsDateTimeToTimestamp($q7->getAttribute("NotBefore")); 
        if (!($this->notBefore === NULL || $this->notBefore < $tO)) { 
            goto wu; 
        } 
        $this->notBefore = $tO; 
        wu: 
        Iu: 
        if (!$q7->hasAttribute("NotOnOrAfter")) { 
            goto Rd; 
        } 
        $fh = Utilities::xsDateTimeToTimestamp($q7->getAttribute("NotOnOrAfter")); 
        if (!($this->notOnOrAfter === NULL || $this->notOnOrAfter > $fh)) { 
            goto go; 
        } 
        $this->notOnOrAfter = $fh; 
        go: 
        Rd: 
        $pU = $q7->firstChild; 
        kX: 
        if (!($pU !== NULL)) { 
            goto pK; 
        } 
        if (!$pU instanceof DOMText) { 
            goto T0; 
        } 
        goto OL; 
        T0: 
        if (!($pU->namespaceURI !== "urn:oasis:names:tc:SAML:2.0:assertion")) { 
            goto qD; 
        } 
        throw new Exception("Unknown namespace of condition: " . var_export($pU->namespaceURI, TRUE)); 
        qD: 
        switch ($pU->localName) { 
            case "AudienceRestriction": 
                $lb = Utilities::extractStrings($pU, "urn:oasis:names:tc:SAML:2.0:assertion", "Audience"); 
                if ($this->validAudiences === NULL) { 
                    goto PA; 
                } 
                $this->validAudiences = array_intersect($this->validAudiences, $lb); 
                goto SI; 
                PA: 
                $this->validAudiences = $lb; 
                SI: 
                goto D_; 
            case "OneTimeUse": 
                goto D_; 
            case "ProxyRestriction": 
                goto D_; 
            default: 
                throw new Exception("Unknown condition: " . var_export($pU->localName, TRUE)); 
        } 
        dp: 
        D_: 
        OL: 
        $pU = $pU->nextSibling; 
        goto kX; 
        pK: 
    } 
    private function parseAuthnStatement(DOMElement $A3) 
    { 
        $Lt = Utilities::xpQuery($A3, "./saml_assertion:AuthnStatement"); 
        if (empty($Lt)) { 
            goto Yb; 
        } 
        if (count($Lt) > 1) { 
            goto f_; 
        } 
        goto qg; 
        Yb: 
        $this->authnInstant = NULL; 
        return; 
        goto qg; 
        f_: 
        throw new Exception("More that one <saml:AuthnStatement> in <saml:Assertion> not supported."); 
        qg: 
        $nG = $Lt[0]; 
        if ($nG->hasAttribute("AuthnInstant")) { 
            goto UO; 
        } 
        throw new Exception("Missing required AuthnInstant attribute on <saml:AuthnStatement>."); 
        UO: 
        $this->authnInstant = Utilities::xsDateTimeToTimestamp($nG->getAttribute("AuthnInstant")); 
        if (!$nG->hasAttribute("SessionNotOnOrAfter")) { 
            goto DH; 
        } 
        $this->sessionNotOnOrAfter = Utilities::xsDateTimeToTimestamp($nG->getAttribute("SessionNotOnOrAfter")); 
        DH: 
        if (!$nG->hasAttribute("SessionIndex")) { 
            goto xq; 
        } 
        $this->sessionIndex = $nG->getAttribute("SessionIndex"); 
        xq: 
        $this->parseAuthnContext($nG); 
    } 
    private function parseAuthnContext(DOMElement $P0) 
    { 
        $O_ = Utilities::xpQuery($P0, "./saml_assertion:AuthnContext"); 
        if (count($O_) > 1) { 
            goto UA; 
        } 
        if (empty($O_)) { 
            goto FD; 
        } 
        goto hG; 
        UA: 
        throw new Exception("More than one <saml:AuthnContext> in <saml:AuthnStatement>."); 
        goto hG; 
        FD: 
        throw new Exception("Missing required <saml:AuthnContext> in <saml:AuthnStatement>."); 
        hG: 
        $Iu = $O_[0]; 
        $i1 = Utilities::xpQuery($Iu, "./saml_assertion:AuthnContextDeclRef"); 
        if (count($i1) > 1) { 
            goto y5; 
        } 
        if (count($i1) === 1) { 
            goto Pg; 
        } 
        goto Z8; 
        y5: 
        throw new Exception("More than one <saml:AuthnContextDeclRef> found?"); 
        goto Z8; 
        Pg: 
        $this->setAuthnContextDeclRef(trim($i1[0]->textContent)); 
        Z8: 
        $lf = Utilities::xpQuery($Iu, "./saml_assertion:AuthnContextDecl"); 
        if (count($lf) > 1) { 
            goto nR; 
        } 
        if (count($lf) === 1) { 
            goto AM; 
        } 
        goto rh; 
        nR: 
        throw new Exception("More than one <saml:AuthnContextDecl> found?"); 
        goto rh; 
        AM: 
        $this->setAuthnContextDecl(new SAML2_XML_Chunk($lf[0])); 
        rh: 
        $SI = Utilities::xpQuery($Iu, "./saml_assertion:AuthnContextClassRef"); 
        if (count($SI) > 1) { 
            goto q9; 
        } 
        if (count($SI) === 1) { 
            goto gs; 
        } 
        goto s3; 
        q9: 
        throw new Exception("More than one <saml:AuthnContextClassRef> in <saml:AuthnContext>."); 
        goto s3; 
        gs: 
        $this->setAuthnContextClassRef(trim($SI[0]->textContent)); 
        s3: 
        if (!(empty($this->authnContextClassRef) && empty($this->authnContextDecl) && empty($this->authnContextDeclRef))) { 
            goto bv; 
        } 
        throw new Exception("Missing either <saml:AuthnContextClassRef> or <saml:AuthnContextDeclRef> or <saml:AuthnContextDecl>"); 
        bv: 
        $this->AuthenticatingAuthority = Utilities::extractStrings($Iu, "urn:oasis:names:tc:SAML:2.0:assertion", "AuthenticatingAuthority"); 
    } 
    private function parseAttributes(DOMElement $A3) 
    { 
        $gu = TRUE; 
        $pP = Utilities::xpQuery($A3, "./saml_assertion:AttributeStatement/saml_assertion:Attribute"); 
        foreach ($pP as $rv) { 
            if ($rv->hasAttribute("Name")) { 
                goto MD; 
            } 
            throw new Exception("Missing name on <saml:Attribute> element."); 
            MD: 
            $xy = $rv->getAttribute("Name"); 
            if ($rv->hasAttribute("NameFormat")) { 
                goto iT; 
            } 
            $ax = "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"; 
            goto Ko; 
            iT: 
            $ax = $rv->getAttribute("NameFormat"); 
            Ko: 
            if ($gu) { 
                goto p0; 
            } 
            if (!($this->nameFormat !== $ax)) { 
                goto aP; 
            } 
            $this->nameFormat = "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"; 
            aP: 
            goto ck; 
            p0: 
            $this->nameFormat = $ax; 
            $gu = FALSE; 
            ck: 
            if (array_key_exists($xy, $this->attributes)) { 
                goto g9; 
            } 
            $this->attributes[$xy] = array(); 
            g9: 
            $WT = Utilities::xpQuery($rv, "./saml_assertion:AttributeValue"); 
            foreach ($WT as $fg) { 
                $this->attributes[$xy][] = trim($fg->textContent); 
                J1: 
            } 
            FG: 
            tv: 
        } 
        rq: 
    } 
    private function parseEncryptedAttributes(DOMElement $A3) 
    { 
        $this->encryptedAttribute = Utilities::xpQuery($A3, "./saml_assertion:AttributeStatement/saml_assertion:EncryptedAttribute"); 
    } 
    private function parseSignature(DOMElement $A3) 
    { 
        $kT = Utilities::validateElement($A3); 
        if (!($kT !== FALSE)) { 
            goto LB; 
        } 
        $this->wasSignedAtConstruction = TRUE; 
        $this->certificates = $kT["Certificates"]; 
        $this->signatureData = $kT; 
        LB: 
    } 
    public function validate(XMLSecurityKey $tg) 
    { 
        if (!($this->signatureData === NULL)) { 
            goto M1; 
        } 
        return FALSE; 
        M1: 
        Utilities::validateSignature($this->signatureData, $tg); 
        return TRUE; 
    } 
    public function getId() 
    { 
        return $this->id; 
    } 
    public function setId($lS) 
    { 
        $this->id = $lS; 
    } 
    public function getIssueInstant() 
    { 
        return $this->issueInstant; 
    } 
    public function setIssueInstant($I8) 
    { 
        $this->issueInstant = $I8; 
    } 
    public function getIssuer() 
    { 
        return $this->issuer; 
    } 
    public function setIssuer($wf) 
    { 
        $this->issuer = $wf; 
    } 
    public function getNameId() 
    { 
        if (!($this->encryptedNameId !== NULL)) { 
            goto ID; 
        } 
        throw new Exception("Attempted to retrieve encrypted NameID without decrypting it first."); 
        ID: 
        return $this->nameId; 
    } 
    public function setNameId($nD) 
    { 
        $this->nameId = $nD; 
    } 
    public function isNameIdEncrypted() 
    { 
        if (!($this->encryptedNameId !== NULL)) { 
            goto iN; 
        } 
        return TRUE; 
        iN: 
        return FALSE; 
    } 
    public function encryptNameId(XMLSecurityKey $tg) 
    { 
        $K1 = new DOMDocument(); 
        $n2 = $K1->createElement("root"); 
        $K1->appendChild($n2); 
        Utilities::addNameId($n2, $this->nameId); 
        $nD = $n2->firstChild; 
        Utilities::getContainer()->debugMessage($nD, "encrypt"); 
        $De = new XMLSecEnc(); 
        $De->setNode($nD); 
        $De->type = XMLSecEnc::Element; 
        $QX = new XMLSecurityKey(XMLSecurityKey::AES128_CBC); 
        $QX->generateSessionKey(); 
        $De->encryptKey($tg, $QX); 
        $this->encryptedNameId = $De->encryptNode($QX); 
        $this->nameId = NULL; 
    } 
    public function decryptNameId(XMLSecurityKey $tg, array $iP = array()) 
    { 
        if (!($this->encryptedNameId === NULL)) { 
            goto kl; 
        } 
        return; 
        kl: 
        $nD = Utilities::decryptElement($this->encryptedNameId, $tg, $iP); 
        Utilities::getContainer()->debugMessage($nD, "decrypt"); 
        $this->nameId = Utilities::parseNameId($nD); 
        $this->encryptedNameId = NULL; 
    } 
    public function decryptAttributes(XMLSecurityKey $tg, array $iP = array()) 
    { 
        if (!($this->encryptedAttribute === NULL)) { 
            goto vN; 
        } 
        return; 
        vN: 
        $gu = TRUE; 
        $pP = $this->encryptedAttribute; 
        foreach ($pP as $WH) { 
            $rv = Utilities::decryptElement($WH->getElementsByTagName("EncryptedData")->item(0), $tg, $iP); 
            if ($rv->hasAttribute("Name")) { 
                goto HZ; 
            } 
            throw new Exception("Missing name on <saml:Attribute> element."); 
            HZ: 
            $xy = $rv->getAttribute("Name"); 
            if ($rv->hasAttribute("NameFormat")) { 
                goto RX; 
            } 
            $ax = "urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"; 
            goto CV; 
            RX: 
            $ax = $rv->getAttribute("NameFormat"); 
            CV: 
            if ($gu) { 
                goto Ac; 
            } 
            if (!($this->nameFormat !== $ax)) { 
                goto v2; 
            } 
            $this->nameFormat = "urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"; 
            v2: 
            goto vz; 
            Ac: 
            $this->nameFormat = $ax; 
            $gu = FALSE; 
            vz: 
            if (array_key_exists($xy, $this->attributes)) { 
                goto rO; 
            } 
            $this->attributes[$xy] = array(); 
            rO: 
            $WT = Utilities::xpQuery($rv, "./saml_assertion:AttributeValue"); 
            foreach ($WT as $fg) { 
                $this->attributes[$xy][] = trim($fg->textContent); 
                us: 
            } 
            XP: 
            Y_: 
        } 
        t5: 
    } 
    public function getNotBefore() 
    { 
        return $this->notBefore; 
    } 
    public function setNotBefore($tO) 
    { 
        $this->notBefore = $tO; 
    } 
    public function getNotOnOrAfter() 
    { 
        return $this->notOnOrAfter; 
    } 
    public function setNotOnOrAfter($fh) 
    { 
        $this->notOnOrAfter = $fh; 
    } 
    public function setEncryptedAttributes($I0) 
    { 
        $this->requiredEncAttributes = $I0; 
    } 
    public function getValidAudiences() 
    { 
        return $this->validAudiences; 
    } 
    public function setValidAudiences(array $Zn = NULL) 
    { 
        $this->validAudiences = $Zn; 
    } 
    public function getAuthnInstant() 
    { 
        return $this->authnInstant; 
    } 
    public function setAuthnInstant($wJ) 
    { 
        $this->authnInstant = $wJ; 
    } 
    public function getSessionNotOnOrAfter() 
    { 
        return $this->sessionNotOnOrAfter; 
    } 
    public function setSessionNotOnOrAfter($FU) 
    { 
        $this->sessionNotOnOrAfter = $FU; 
    } 
    public function getSessionIndex() 
    { 
        return $this->sessionIndex; 
    } 
    public function setSessionIndex($nU) 
    { 
        $this->sessionIndex = $nU; 
    } 
    public function getAuthnContext() 
    { 
        if (empty($this->authnContextClassRef)) { 
            goto Ro; 
        } 
        return $this->authnContextClassRef; 
        Ro: 
        if (empty($this->authnContextDeclRef)) { 
            goto dT; 
        } 
        return $this->authnContextDeclRef; 
        dT: 
        return NULL; 
    } 
    public function setAuthnContext($xQ) 
    { 
        $this->setAuthnContextClassRef($xQ); 
    } 
    public function getAuthnContextClassRef() 
    { 
        return $this->authnContextClassRef; 
    } 
    public function setAuthnContextClassRef($Up) 
    { 
        $this->authnContextClassRef = $Up; 
    } 
    public function setAuthnContextDecl(SAML2_XML_Chunk $i2) 
    { 
        if (empty($this->authnContextDeclRef)) { 
            goto tD; 
        } 
        throw new Exception("AuthnContextDeclRef is already registered! May only have either a Decl or a DeclRef, not both!"); 
        tD: 
        $this->authnContextDecl = $i2; 
    } 
    public function getAuthnContextDecl() 
    { 
        return $this->authnContextDecl; 
    } 
    public function setAuthnContextDeclRef($ks) 
    { 
        if (empty($this->authnContextDecl)) { 
            goto Dv; 
        } 
        throw new Exception("AuthnContextDecl is already registered! May only have either a Decl or a DeclRef, not both!"); 
        Dv: 
        $this->authnContextDeclRef = $ks; 
    } 
    public function getAuthnContextDeclRef() 
    { 
        return $this->authnContextDeclRef; 
    } 
    public function getAuthenticatingAuthority() 
    { 
        return $this->AuthenticatingAuthority; 
    } 
    public function setAuthenticatingAuthority($sK) 
    { 
        $this->AuthenticatingAuthority = $sK; 
    } 
    public function getAttributes() 
    { 
        return $this->attributes; 
    } 
    public function setAttributes(array $pP) 
    { 
        $this->attributes = $pP; 
    } 
    public function getAttributeNameFormat() 
    { 
        return $this->nameFormat; 
    } 
    public function setAttributeNameFormat($ax) 
    { 
        $this->nameFormat = $ax; 
    } 
    public function getSubjectConfirmation() 
    { 
        return $this->SubjectConfirmation; 
    } 
    public function setSubjectConfirmation(array $pg) 
    { 
        $this->SubjectConfirmation = $pg; 
    } 
    public function getSignatureKey() 
    { 
        return $this->signatureKey; 
    } 
    public function getSignatureData() 
    { 
        return $this->signatureData; 
    } 
    public function setSignatureKey(XMLsecurityKey $uK = NULL) 
    { 
        $this->signatureKey = $uK; 
    } 
    public function getEncryptionKey() 
    { 
        return $this->encryptionKey; 
    } 
    public function setEncryptionKey(XMLSecurityKey $YU = NULL) 
    { 
        $this->encryptionKey = $YU; 
    } 
    public function setCertificates(array $au) 
    { 
        $this->certificates = $au; 
    } 
    public function getCertificates() 
    { 
        return $this->certificates; 
    } 
    public function getWasSignedAtConstruction() 
    { 
        return $this->wasSignedAtConstruction; 
    } 
    public function toXML(DOMNode $SR = NULL) 
    { 
        if ($SR === NULL) { 
            goto oE; 
        } 
        $D1 = $SR->ownerDocument; 
        goto UM; 
        oE: 
        $D1 = new DOMDocument(); 
        $SR = $D1; 
        UM: 
        $n2 = $D1->createElementNS("urn:oasis:names:tc:SAML:2.0:assertion", "saml:" . "Assertion"); 
        $SR->appendChild($n2); 
        $n2->setAttributeNS("urn:oasis:names:tc:SAML:2.0:protocol", "samlp:tmp", "tmp"); 
        $n2->removeAttributeNS("urn:oasis:names:tc:SAML:2.0:protocol", "tmp"); 
        $n2->setAttributeNS("http://www.w3.org/2001/XMLSchema-instance", "xsi:tmp", "tmp"); 
        $n2->removeAttributeNS("http://www.w3.org/2001/XMLSchema-instance", "tmp"); 
        $n2->setAttributeNS("http://www.w3.org/2001/XMLSchema", "xs:tmp", "tmp"); 
        $n2->removeAttributeNS("http://www.w3.org/2001/XMLSchema", "tmp"); 
        $n2->setAttribute("ID", $this->id); 
        $n2->setAttribute("Version", "2.0"); 
        $n2->setAttribute("IssueInstant", gmdate("Y-m-d\TH:i:s\Z", $this->issueInstant)); 
        $wf = Utilities::addString($n2, "urn:oasis:names:tc:SAML:2.0:assertion", "saml:Issuer", $this->issuer); 
        $this->addSubject($n2); 
        $this->addConditions($n2); 
        $this->addAuthnStatement($n2); 
        if ($this->requiredEncAttributes == FALSE) { 
            goto Tv; 
        } 
        $this->addEncryptedAttributeStatement($n2); 
        goto kY; 
        Tv: 
        $this->addAttributeStatement($n2); 
        kY: 
        if (!($this->signatureKey !== NULL)) { 
            goto gM; 
        } 
        Utilities::insertSignature($this->signatureKey, $this->certificates, $n2, $wf->nextSibling); 
        gM: 
        return $n2; 
    } 
    private function addSubject(DOMElement $n2) 
    { 
        if (!($this->nameId === NULL && $this->encryptedNameId === NULL)) { 
            goto mF; 
        } 
        return; 
        mF: 
        $I9 = $n2->ownerDocument->createElementNS("urn:oasis:names:tc:SAML:2.0:assertion", "saml:Subject"); 
        $n2->appendChild($I9); 
        if ($this->encryptedNameId === NULL) { 
            goto m8; 
        } 
        $qJ = $I9->ownerDocument->createElementNS("urn:oasis:names:tc:SAML:2.0:assertion", "saml:" . "EncryptedID"); 
        $I9->appendChild($qJ); 
        $qJ->appendChild($I9->ownerDocument->importNode($this->encryptedNameId, TRUE)); 
        goto xK; 
        m8: 
        Utilities::addNameId($I9, $this->nameId); 
        xK: 
        foreach ($this->SubjectConfirmation as $Qq) { 
            $Qq->toXML($I9); 
            Ak: 
        } 
        Oj: 
    } 
    private function addConditions(DOMElement $n2) 
    { 
        $D1 = $n2->ownerDocument; 
        $q7 = $D1->createElementNS("urn:oasis:names:tc:SAML:2.0:assertion", "saml:Conditions"); 
        $n2->appendChild($q7); 
        if (!($this->notBefore !== NULL)) { 
            goto Vo; 
        } 
        $q7->setAttribute("NotBefore", gmdate("Y-m-d\TH:i:s\Z", $this->notBefore)); 
        Vo: 
        if (!($this->notOnOrAfter !== NULL)) { 
            goto uG; 
        } 
        $q7->setAttribute("NotOnOrAfter", gmdate("Y-m-d\TH:i:s\Z", $this->notOnOrAfter)); 
        uG: 
        if (!($this->validAudiences !== NULL)) { 
            goto ip; 
        } 
        $yr = $D1->createElementNS("urn:oasis:names:tc:SAML:2.0:assertion", "saml:AudienceRestriction"); 
        $q7->appendChild($yr); 
        Utilities::addStrings($yr, "urn:oasis:names:tc:SAML:2.0:assertion", "saml:Audience", FALSE, $this->validAudiences); 
        ip: 
    } 
    private function addAuthnStatement(DOMElement $n2) 
    { 
        if (!($this->authnInstant === NULL || $this->authnContextClassRef === NULL && $this->authnContextDecl === NULL && $this->authnContextDeclRef === NULL)) { 
            goto kq; 
        } 
        return; 
        kq: 
        $D1 = $n2->ownerDocument; 
        $P0 = $D1->createElementNS("urn:oasis:names:tc:SAML:2.0:assertion", "saml:AuthnStatement"); 
        $n2->appendChild($P0); 
        $P0->setAttribute("AuthnInstant", gmdate("Y-m-d\TH:i:s\Z", $this->authnInstant)); 
        if (!($this->sessionNotOnOrAfter !== NULL)) { 
            goto nA; 
        } 
        $P0->setAttribute("SessionNotOnOrAfter", gmdate("Y-m-d\TH:i:s\Z", $this->sessionNotOnOrAfter)); 
        nA: 
        if (!($this->sessionIndex !== NULL)) { 
            goto j1; 
        } 
        $P0->setAttribute("SessionIndex", $this->sessionIndex); 
        j1: 
        $Iu = $D1->createElementNS("urn:oasis:names:tc:SAML:2.0:assertion", "saml:AuthnContext"); 
        $P0->appendChild($Iu); 
        if (empty($this->authnContextClassRef)) { 
            goto xB; 
        } 
        Utilities::addString($Iu, "urn:oasis:names:tc:SAML:2.0:assertion", "saml:AuthnContextClassRef", $this->authnContextClassRef); 
        xB: 
        if (empty($this->authnContextDecl)) { 
            goto v3; 
        } 
        $this->authnContextDecl->toXML($Iu); 
        v3: 
        if (empty($this->authnContextDeclRef)) { 
            goto Z7; 
        } 
        Utilities::addString($Iu, "urn:oasis:names:tc:SAML:2.0:assertion", "saml:AuthnContextDeclRef", $this->authnContextDeclRef); 
        Z7: 
        Utilities::addStrings($Iu, "urn:oasis:names:tc:SAML:2.0:assertion", "saml:AuthenticatingAuthority", FALSE, $this->AuthenticatingAuthority); 
    } 
    private function addAttributeStatement(DOMElement $n2) 
    { 
        if (!empty($this->attributes)) { 
            goto tz; 
        } 
        return; 
        tz: 
        $D1 = $n2->ownerDocument; 
        $HQ = $D1->createElementNS("urn:oasis:names:tc:SAML:2.0:assertion", "saml:AttributeStatement"); 
        $n2->appendChild($HQ); 
        foreach ($this->attributes as $xy => $WT) { 
            $rv = $D1->createElementNS("urn:oasis:names:tc:SAML:2.0:assertion", "saml:Attribute"); 
            $HQ->appendChild($rv); 
            $rv->setAttribute("Name", $xy); 
            if (!($this->nameFormat !== "urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified")) { 
                goto b2; 
            } 
            $rv->setAttribute("NameFormat", $this->nameFormat); 
            b2: 
            foreach ($WT as $fg) { 
                if (is_string($fg)) { 
                    goto Sy; 
                } 
                if (is_int($fg)) { 
                    goto KF; 
                } 
                $Ws = NULL; 
                goto Zz; 
                Sy: 
                $Ws = "xs:string"; 
                goto Zz; 
                KF: 
                $Ws = "xs:integer"; 
                Zz: 
                $R7 = $D1->createElementNS("urn:oasis:names:tc:SAML:2.0:assertion", "saml:AttributeValue"); 
                $rv->appendChild($R7); 
                if (!($Ws !== NULL)) { 
                    goto ny; 
                } 
                $R7->setAttributeNS("http://www.w3.org/2001/XMLSchema-instance", "xsi:type", $Ws); 
                ny: 
                if (!is_null($fg)) { 
                    goto tU; 
                } 
                $R7->setAttributeNS("http://www.w3.org/2001/XMLSchema-instance", "xsi:nil", "true"); 
                tU: 
                if ($fg instanceof DOMNodeList) { 
                    goto GY; 
                } 
                $R7->appendChild($D1->createTextNode($fg)); 
                goto Ty; 
                GY: 
                $lt = 0; 
                Gt: 
                if (!($lt < $fg->length)) { 
                    goto ZO; 
                } 
                $pU = $D1->importNode($fg->item($lt), TRUE); 
                $R7->appendChild($pU); 
                GW: 
                $lt++; 
                goto Gt; 
                ZO: 
                Ty: 
                pt: 
            } 
            aW: 
            U5: 
        } 
        lG: 
    } 
    private function addEncryptedAttributeStatement(DOMElement $n2) 
    { 
        if (!($this->requiredEncAttributes == FALSE)) { 
            goto Al; 
        } 
        return; 
        Al: 
        $D1 = $n2->ownerDocument; 
        $HQ = $D1->createElementNS("urn:oasis:names:tc:SAML:2.0:assertion", "saml:AttributeStatement"); 
        $n2->appendChild($HQ); 
        foreach ($this->attributes as $xy => $WT) { 
            $b_ = new DOMDocument(); 
            $rv = $b_->createElementNS("urn:oasis:names:tc:SAML:2.0:assertion", "saml:Attribute"); 
            $rv->setAttribute("Name", $xy); 
            $b_->appendChild($rv); 
            if (!($this->nameFormat !== "urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified")) { 
                goto hd; 
            } 
            $rv->setAttribute("NameFormat", $this->nameFormat); 
            hd: 
            foreach ($WT as $fg) { 
                if (is_string($fg)) { 
                    goto uI; 
                } 
                if (is_int($fg)) { 
                    goto OH; 
                } 
                $Ws = NULL; 
                goto Zq; 
                uI: 
                $Ws = "xs:string"; 
                goto Zq; 
                OH: 
                $Ws = "xs:integer"; 
                Zq: 
                $R7 = $b_->createElementNS("urn:oasis:names:tc:SAML:2.0:assertion", "saml:AttributeValue"); 
                $rv->appendChild($R7); 
                if (!($Ws !== NULL)) { 
                    goto v4; 
                } 
                $R7->setAttributeNS("http://www.w3.org/2001/XMLSchema-instance", "xsi:type", $Ws); 
                v4: 
                if ($fg instanceof DOMNodeList) { 
                    goto Y0; 
                } 
                $R7->appendChild($b_->createTextNode($fg)); 
                goto d1; 
                Y0: 
                $lt = 0; 
                EV: 
                if (!($lt < $fg->length)) { 
                    goto oD; 
                } 
                $pU = $b_->importNode($fg->item($lt), TRUE); 
                $R7->appendChild($pU); 
                mi: 
                $lt++; 
                goto EV; 
                oD: 
                d1: 
                jl: 
            } 
            jw: 
            $Sw = new XMLSecEnc(); 
            $Sw->setNode($b_->documentElement); 
            $Sw->type = "http://www.w3.org/2001/04/xmlenc#Element"; 
            $QX = new XMLSecurityKey(XMLSecurityKey::AES256_CBC); 
            $QX->generateSessionKey(); 
            $Sw->encryptKey($this->encryptionKey, $QX); 
            $tL = $Sw->encryptNode($QX); 
            $Bd = $D1->createElementNS("urn:oasis:names:tc:SAML:2.0:assertion", "saml:EncryptedAttribute"); 
            $HQ->appendChild($Bd); 
            $YW = $D1->importNode($tL, TRUE); 
            $Bd->appendChild($YW); 
            x6: 
        } 
        dc: 
    } 
} 
 ?>

Did this file decode correctly?

Original Code

<?php


include_once "\125\x74\x69\154\x69\x74\x69\145\x73\x2e\x70\150\x70";
class SAML2_Assertion
{
    private $id;
    private $issueInstant;
    private $issuer;
    private $nameId;
    private $encryptedNameId;
    private $encryptedAttribute;
    private $encryptionKey;
    private $notBefore;
    private $notOnOrAfter;
    private $validAudiences;
    private $sessionNotOnOrAfter;
    private $sessionIndex;
    private $authnInstant;
    private $authnContextClassRef;
    private $authnContextDecl;
    private $authnContextDeclRef;
    private $AuthenticatingAuthority;
    private $attributes;
    private $nameFormat;
    private $signatureKey;
    private $certificates;
    private $signatureData;
    private $requiredEncAttributes;
    private $SubjectConfirmation;
    protected $wasSignedAtConstruction = FALSE;
    public function __construct(DOMElement $A3 = NULL)
    {
        $this->id = Utilities::generateId();
        $this->issueInstant = Utilities::generateTimestamp();
        $this->issuer = '';
        $this->authnInstant = Utilities::generateTimestamp();
        $this->attributes = array();
        $this->nameFormat = "\165\162\x6e\72\157\141\x73\151\x73\x3a\x6e\141\155\x65\163\72\164\143\72\123\x41\x4d\x4c\x3a\61\56\61\72\x6e\141\155\145\x69\144\x2d\x66\x6f\162\155\x61\164\x3a\x75\x6e\163\x70\x65\143\x69\x66\151\x65\144";
        $this->certificates = array();
        $this->AuthenticatingAuthority = array();
        $this->SubjectConfirmation = array();
        if (!($A3 === NULL)) {
            goto j3;
        }
        return;
        j3:
        if (!($A3->localName === "\x45\x6e\143\x72\171\160\x74\x65\x64\x41\163\163\145\x72\x74\x69\157\156")) {
            goto fc;
        }
        $E2 = Utilities::xpQuery($A3, "\56\x2f\x2f\52\133\x6c\x6f\x63\141\154\55\x6e\141\155\145\50\51\75\42\x45\x6e\143\162\171\x70\164\x65\x64\x44\141\164\x61\x22\x5d");
        $hd = Utilities::xpQuery($A3, "\56\57\x2f\x2a\x5b\154\x6f\x63\141\154\55\156\141\155\x65\x28\51\x3d\42\x45\x6e\x63\x72\171\x70\x74\x65\144\x44\x61\x74\141\42\x5d\57\x2a\x5b\x6c\x6f\143\x61\154\55\x6e\141\155\145\50\51\x3d\x22\x4b\x65\171\x49\156\146\157\x22\135");
        $hd = Utilities::xpQuery($A3, "\56\x2f\57\52\133\154\157\143\141\x6c\55\x6e\x61\155\x65\50\51\75\42\x45\x6e\x63\162\x79\160\x74\145\144\x44\141\164\141\42\135\x2f\52\x5b\x6c\157\x63\141\x6c\55\156\141\x6d\x65\x28\51\75\x22\113\x65\x79\111\x6e\x66\x6f\42\135\x2f\52\x5b\x6c\x6f\143\141\x6c\55\156\x61\x6d\145\x28\x29\75\x22\105\156\x63\162\171\x70\x74\145\x64\113\145\x79\x22\135");
        $Vw = '';
        if (empty($hd)) {
            goto qh;
        }
        $Vw = "\x68\164\x74\160\x3a\57\57\x77\x77\x77\x2e\167\63\56\x6f\x72\147\57\x32\x30\x30\x31\x2f\60\x34\57\170\155\x6c\x65\156\143\x23\162\163\x61\x2d\x6f\x61\x65\160\x2d\155\x67\146\61\x70";
        goto kJ;
        qh:
        $hd = Utilities::xpQuery($A3, "\x2e\x2f\x2f\x2a\133\154\x6f\143\141\x6c\55\156\x61\x6d\145\50\x29\75\42\105\156\x63\162\171\x70\164\x65\144\x44\x61\164\x61\x22\135\57\x2a\133\x6c\157\x63\x61\154\55\156\x61\x6d\145\50\x29\x3d\42\x4b\x65\x79\111\156\146\x6f\x22\x5d\57\x2a\133\154\x6f\143\x61\x6c\x2d\x6e\x61\155\145\x28\x29\75\x22\105\x6e\x63\162\x79\160\164\x65\x64\113\x65\171\x22\x5d");
        $Vw = $hd[0]->getAttribute("\101\x6c\147\157\162\151\x74\150\155");
        kJ:
        $eY = Utilities::getEncryptionAlgorithm($Vw);
        if (count($E2) === 0) {
            goto A2;
        }
        if (count($E2) > 1) {
            goto vy;
        }
        goto CO;
        A2:
        throw new Exception("\115\x69\x73\x73\151\156\x67\40\x65\156\143\162\x79\160\164\x65\x64\40\x64\141\164\x61\40\x69\x6e\x20\x3c\x73\141\x6d\x6c\72\105\x6e\x63\162\x79\160\x74\x65\x64\x41\x73\x73\x65\x72\164\x69\157\x6e\76\x2e");
        goto CO;
        vy:
        throw new Exception("\115\x6f\162\x65\40\x74\150\141\156\x20\x6f\156\x65\40\x65\156\143\162\171\160\164\145\144\40\144\141\x74\x61\x20\145\x6c\x65\155\145\156\x74\x20\x69\156\x20\x3c\x73\x61\155\154\72\x45\x6e\x63\x72\x79\x70\164\145\x64\x41\x73\163\x65\162\x74\151\x6f\x6e\x3e\56");
        CO:
        $t9 = Utilities::getPrivateKey();
        $tg = new XMLSecurityKey($eY, array("\164\171\160\145" => "\x70\162\151\166\x61\x74\x65"));
        $tg->loadKey($t9, FALSE);
        $iP = array();
        try {
            $A3 = Utilities::decryptElement($E2[0], $tg, $iP);
        } catch (Exception $vc) {
            echo "\103\x61\165\147\x68\164\x20\145\x78\x63\x65\x70\164\151\x6f\x6e\72\x20", $vc->getMessage(), "\xa";
        }
        fc:
        if ($A3->hasAttribute("\x49\104")) {
            goto HK;
        }
        throw new Exception("\115\x69\163\163\x69\x6e\x67\x20\111\104\40\x61\x74\x74\x72\151\142\165\x74\x65\40\157\x6e\x20\123\101\115\x4c\x20\x61\163\163\x65\x72\x74\151\157\x6e\x2e");
        HK:
        $this->id = $A3->getAttribute("\x49\104");
        if (!($A3->getAttribute("\x56\x65\162\163\151\x6f\x6e") !== "\x32\x2e\x30")) {
            goto N8;
        }
        throw new Exception("\x55\156\163\165\x70\x70\157\x72\164\145\144\x20\x76\145\162\x73\x69\x6f\156\72\40" . $A3->getAttribute("\x56\x65\x72\x73\x69\157\156"));
        N8:
        $this->issueInstant = Utilities::xsDateTimeToTimestamp($A3->getAttribute("\111\163\163\165\145\x49\156\x73\x74\x61\156\164"));
        $wf = Utilities::xpQuery($A3, "\x2e\x2f\x73\x61\x6d\154\137\x61\x73\x73\x65\162\x74\x69\x6f\156\72\x49\x73\163\165\145\x72");
        if (!empty($wf)) {
            goto md;
        }
        throw new Exception("\x4d\151\x73\163\x69\x6e\147\x20\x3c\x73\x61\x6d\154\72\111\163\163\x75\x65\x72\x3e\40\x69\156\x20\x61\163\x73\145\162\x74\151\157\156\56");
        md:
        $this->issuer = trim($wf[0]->textContent);
        $this->parseConditions($A3);
        $this->parseAuthnStatement($A3);
        $this->parseAttributes($A3);
        $this->parseEncryptedAttributes($A3);
        $this->parseSignature($A3);
        $this->parseSubject($A3);
    }
    private function parseSubject(DOMElement $A3)
    {
        $I9 = Utilities::xpQuery($A3, "\56\x2f\x73\141\x6d\154\137\141\x73\163\x65\162\x74\x69\x6f\156\72\x53\165\142\152\145\143\x74");
        if (empty($I9)) {
            goto yS;
        }
        if (count($I9) > 1) {
            goto DM;
        }
        goto Wt;
        yS:
        return;
        goto Wt;
        DM:
        throw new Exception("\x4d\157\162\145\40\164\x68\x61\156\x20\x6f\156\x65\40\x3c\163\141\x6d\154\72\x53\165\142\152\145\x63\164\76\x20\x69\x6e\40\x3c\x73\141\x6d\x6c\x3a\101\x73\163\x65\162\x74\151\157\x6e\x3e\x2e");
        Wt:
        $I9 = $I9[0];
        $nD = Utilities::xpQuery($I9, "\56\57\x73\x61\x6d\x6c\x5f\x61\x73\163\145\x72\x74\151\x6f\x6e\72\116\x61\155\x65\111\104\40\174\x20\x2e\x2f\x73\x61\x6d\154\x5f\141\163\x73\x65\x72\x74\x69\x6f\156\x3a\105\156\x63\x72\x79\160\x74\x65\x64\111\x44\x2f\x78\x65\156\x63\72\x45\156\x63\162\x79\x70\x74\x65\144\104\x61\x74\x61");
        if (empty($nD)) {
            goto VB;
        }
        if (count($nD) > 1) {
            goto id;
        }
        goto TE;
        VB:
        throw new Exception("\115\x69\163\x73\x69\x6e\147\40\74\163\141\155\154\x3a\x4e\x61\155\145\111\104\x3e\x20\157\x72\x20\x3c\163\x61\155\154\x3a\x45\156\x63\162\x79\x70\164\145\x64\x49\x44\76\x20\151\x6e\x20\x3c\163\141\155\x6c\x3a\x53\165\142\x6a\x65\x63\164\x3e\56");
        goto TE;
        id:
        throw new Exception("\x4d\x6f\162\145\40\164\150\x61\156\x20\157\x6e\x65\40\74\163\141\155\x6c\x3a\x4e\x61\155\x65\111\104\76\40\x6f\162\x20\x3c\x73\x61\x6d\154\72\x45\x6e\x63\162\x79\160\x74\x65\x64\104\x3e\x20\151\156\x20\x3c\163\141\x6d\x6c\x3a\x53\165\142\152\x65\x63\x74\76\x2e");
        TE:
        $nD = $nD[0];
        if ($nD->localName === "\105\156\143\x72\x79\x70\164\x65\x64\104\141\x74\141") {
            goto FQ;
        }
        $this->nameId = Utilities::parseNameId($nD);
        goto Pq;
        FQ:
        $this->encryptedNameId = $nD;
        Pq:
    }
    private function parseConditions(DOMElement $A3)
    {
        $q7 = Utilities::xpQuery($A3, "\x2e\x2f\x73\141\155\154\137\141\163\x73\145\x72\x74\151\x6f\156\72\x43\157\156\144\151\x74\151\157\156\x73");
        if (empty($q7)) {
            goto We;
        }
        if (count($q7) > 1) {
            goto Gu;
        }
        goto ZN;
        We:
        return;
        goto ZN;
        Gu:
        throw new Exception("\115\x6f\x72\145\40\164\x68\141\156\40\157\x6e\145\40\x3c\163\141\x6d\x6c\x3a\103\x6f\x6e\x64\x69\164\151\x6f\156\x73\x3e\x20\151\x6e\x20\x3c\163\x61\155\154\x3a\101\163\163\x65\162\164\151\x6f\x6e\76\x2e");
        ZN:
        $q7 = $q7[0];
        if (!$q7->hasAttribute("\x4e\x6f\x74\102\145\146\x6f\162\145")) {
            goto Iu;
        }
        $tO = Utilities::xsDateTimeToTimestamp($q7->getAttribute("\x4e\x6f\164\102\x65\x66\157\x72\x65"));
        if (!($this->notBefore === NULL || $this->notBefore < $tO)) {
            goto wu;
        }
        $this->notBefore = $tO;
        wu:
        Iu:
        if (!$q7->hasAttribute("\116\x6f\164\117\x6e\117\162\x41\x66\x74\x65\x72")) {
            goto Rd;
        }
        $fh = Utilities::xsDateTimeToTimestamp($q7->getAttribute("\116\157\x74\x4f\156\117\162\101\146\164\x65\x72"));
        if (!($this->notOnOrAfter === NULL || $this->notOnOrAfter > $fh)) {
            goto go;
        }
        $this->notOnOrAfter = $fh;
        go:
        Rd:
        $pU = $q7->firstChild;
        kX:
        if (!($pU !== NULL)) {
            goto pK;
        }
        if (!$pU instanceof DOMText) {
            goto T0;
        }
        goto OL;
        T0:
        if (!($pU->namespaceURI !== "\x75\162\x6e\72\157\x61\163\151\163\x3a\x6e\141\155\145\x73\x3a\x74\143\x3a\x53\x41\x4d\114\x3a\62\x2e\x30\x3a\x61\163\163\145\162\164\151\x6f\x6e")) {
            goto qD;
        }
        throw new Exception("\125\156\153\156\x6f\x77\156\40\x6e\141\x6d\x65\x73\160\x61\143\x65\x20\x6f\146\x20\x63\x6f\x6e\x64\151\164\x69\x6f\x6e\x3a\40" . var_export($pU->namespaceURI, TRUE));
        qD:
        switch ($pU->localName) {
            case "\x41\165\144\151\145\x6e\x63\145\122\145\163\x74\162\151\143\164\151\x6f\156":
                $lb = Utilities::extractStrings($pU, "\165\162\x6e\x3a\157\141\163\x69\x73\72\156\141\x6d\145\x73\72\164\x63\x3a\123\x41\x4d\x4c\x3a\x32\56\60\x3a\141\163\x73\145\162\164\151\157\156", "\x41\165\144\x69\145\x6e\143\x65");
                if ($this->validAudiences === NULL) {
                    goto PA;
                }
                $this->validAudiences = array_intersect($this->validAudiences, $lb);
                goto SI;
                PA:
                $this->validAudiences = $lb;
                SI:
                goto D_;
            case "\x4f\156\x65\124\151\x6d\x65\125\163\145":
                goto D_;
            case "\120\162\x6f\x78\x79\x52\x65\x73\x74\x72\x69\143\164\151\157\156":
                goto D_;
            default:
                throw new Exception("\125\156\153\x6e\x6f\x77\156\x20\x63\x6f\156\x64\x69\164\151\157\156\72\40" . var_export($pU->localName, TRUE));
        }
        dp:
        D_:
        OL:
        $pU = $pU->nextSibling;
        goto kX;
        pK:
    }
    private function parseAuthnStatement(DOMElement $A3)
    {
        $Lt = Utilities::xpQuery($A3, "\x2e\x2f\163\141\x6d\154\x5f\x61\163\x73\x65\x72\x74\151\x6f\156\72\x41\x75\x74\x68\156\123\164\141\164\145\x6d\x65\156\164");
        if (empty($Lt)) {
            goto Yb;
        }
        if (count($Lt) > 1) {
            goto f_;
        }
        goto qg;
        Yb:
        $this->authnInstant = NULL;
        return;
        goto qg;
        f_:
        throw new Exception("\115\x6f\x72\x65\x20\164\150\x61\x74\x20\x6f\x6e\x65\x20\74\x73\141\x6d\154\x3a\x41\x75\x74\x68\x6e\123\164\x61\x74\x65\155\x65\156\x74\76\40\151\x6e\40\x3c\x73\x61\155\x6c\72\x41\x73\163\145\162\164\x69\157\156\76\40\156\157\x74\40\x73\x75\160\x70\x6f\x72\164\145\x64\56");
        qg:
        $nG = $Lt[0];
        if ($nG->hasAttribute("\x41\x75\164\150\x6e\x49\156\163\x74\x61\x6e\x74")) {
            goto UO;
        }
        throw new Exception("\115\x69\163\163\x69\x6e\x67\x20\162\x65\x71\165\x69\x72\145\144\x20\101\x75\x74\x68\x6e\x49\156\x73\x74\141\x6e\x74\x20\141\x74\x74\x72\x69\x62\x75\x74\145\x20\157\x6e\x20\74\163\141\x6d\154\x3a\101\x75\164\x68\156\123\164\141\164\x65\155\145\156\x74\x3e\x2e");
        UO:
        $this->authnInstant = Utilities::xsDateTimeToTimestamp($nG->getAttribute("\x41\165\164\x68\x6e\x49\156\163\x74\x61\x6e\164"));
        if (!$nG->hasAttribute("\x53\x65\x73\163\151\x6f\x6e\x4e\x6f\x74\x4f\156\x4f\162\101\146\x74\x65\x72")) {
            goto DH;
        }
        $this->sessionNotOnOrAfter = Utilities::xsDateTimeToTimestamp($nG->getAttribute("\x53\x65\163\x73\151\x6f\x6e\x4e\x6f\x74\117\156\117\162\x41\x66\164\145\162"));
        DH:
        if (!$nG->hasAttribute("\123\145\x73\163\x69\x6f\x6e\111\156\144\x65\170")) {
            goto xq;
        }
        $this->sessionIndex = $nG->getAttribute("\x53\145\163\x73\x69\157\x6e\111\156\x64\x65\x78");
        xq:
        $this->parseAuthnContext($nG);
    }
    private function parseAuthnContext(DOMElement $P0)
    {
        $O_ = Utilities::xpQuery($P0, "\x2e\x2f\163\141\x6d\154\137\x61\x73\x73\145\162\164\151\x6f\156\x3a\x41\x75\164\x68\x6e\103\157\x6e\164\x65\170\164");
        if (count($O_) > 1) {
            goto UA;
        }
        if (empty($O_)) {
            goto FD;
        }
        goto hG;
        UA:
        throw new Exception("\115\157\162\x65\x20\x74\150\x61\x6e\40\157\x6e\x65\40\x3c\163\x61\155\x6c\72\x41\x75\164\150\156\x43\157\x6e\x74\145\170\164\76\40\151\156\x20\74\x73\x61\x6d\154\72\x41\165\164\150\x6e\123\164\x61\164\145\155\x65\156\x74\x3e\56");
        goto hG;
        FD:
        throw new Exception("\x4d\151\x73\163\151\x6e\x67\x20\x72\145\x71\165\x69\x72\145\144\x20\74\163\141\x6d\x6c\72\x41\x75\164\x68\x6e\103\157\x6e\164\145\170\164\76\x20\x69\156\x20\x3c\x73\x61\x6d\154\x3a\x41\x75\164\150\156\123\164\141\x74\x65\155\145\x6e\x74\76\x2e");
        hG:
        $Iu = $O_[0];
        $i1 = Utilities::xpQuery($Iu, "\56\x2f\x73\141\155\x6c\137\x61\163\x73\x65\162\164\x69\x6f\x6e\72\x41\x75\164\150\x6e\103\157\156\x74\x65\x78\164\104\145\143\x6c\x52\145\146");
        if (count($i1) > 1) {
            goto y5;
        }
        if (count($i1) === 1) {
            goto Pg;
        }
        goto Z8;
        y5:
        throw new Exception("\115\157\162\145\40\164\150\141\x6e\40\157\x6e\145\x20\74\163\x61\155\x6c\x3a\101\165\x74\150\x6e\103\157\156\x74\145\x78\164\104\x65\143\154\122\x65\146\76\40\x66\157\x75\x6e\144\77");
        goto Z8;
        Pg:
        $this->setAuthnContextDeclRef(trim($i1[0]->textContent));
        Z8:
        $lf = Utilities::xpQuery($Iu, "\56\57\x73\141\x6d\x6c\137\141\163\163\x65\162\x74\x69\x6f\156\72\101\165\164\150\x6e\103\x6f\x6e\164\145\x78\x74\104\145\x63\154");
        if (count($lf) > 1) {
            goto nR;
        }
        if (count($lf) === 1) {
            goto AM;
        }
        goto rh;
        nR:
        throw new Exception("\115\157\162\x65\40\164\150\x61\156\40\x6f\x6e\x65\x20\74\x73\141\x6d\154\72\x41\x75\164\150\x6e\x43\157\x6e\x74\x65\170\164\x44\x65\143\x6c\x3e\x20\x66\x6f\165\156\144\77");
        goto rh;
        AM:
        $this->setAuthnContextDecl(new SAML2_XML_Chunk($lf[0]));
        rh:
        $SI = Utilities::xpQuery($Iu, "\x2e\57\x73\141\155\154\137\141\x73\163\145\162\164\151\x6f\x6e\x3a\x41\165\164\x68\x6e\103\x6f\x6e\164\x65\170\x74\x43\x6c\x61\163\x73\x52\145\146");
        if (count($SI) > 1) {
            goto q9;
        }
        if (count($SI) === 1) {
            goto gs;
        }
        goto s3;
        q9:
        throw new Exception("\x4d\157\x72\145\40\x74\150\x61\x6e\x20\157\156\145\40\74\x73\141\155\154\72\x41\x75\x74\150\156\x43\x6f\156\164\x65\170\x74\x43\x6c\141\163\163\122\x65\x66\x3e\40\x69\x6e\x20\74\x73\x61\155\154\x3a\x41\165\164\x68\156\103\157\156\164\x65\x78\x74\76\56");
        goto s3;
        gs:
        $this->setAuthnContextClassRef(trim($SI[0]->textContent));
        s3:
        if (!(empty($this->authnContextClassRef) && empty($this->authnContextDecl) && empty($this->authnContextDeclRef))) {
            goto bv;
        }
        throw new Exception("\115\x69\163\163\151\156\147\x20\x65\151\164\x68\145\162\x20\x3c\163\141\x6d\x6c\x3a\x41\165\x74\x68\x6e\x43\x6f\x6e\x74\145\170\164\103\x6c\141\163\163\x52\x65\146\76\x20\x6f\162\40\x3c\x73\x61\155\154\72\101\x75\x74\150\156\x43\x6f\156\x74\x65\x78\x74\104\x65\143\154\x52\145\x66\x3e\40\x6f\162\x20\x3c\163\x61\155\154\72\101\165\x74\x68\x6e\x43\x6f\x6e\x74\x65\170\x74\104\145\x63\x6c\76");
        bv:
        $this->AuthenticatingAuthority = Utilities::extractStrings($Iu, "\165\x72\x6e\x3a\x6f\x61\x73\x69\163\x3a\156\x61\155\145\163\x3a\x74\x63\x3a\123\x41\115\114\72\62\x2e\60\x3a\x61\163\163\145\162\x74\151\157\156", "\x41\165\164\x68\145\x6e\164\x69\143\x61\164\x69\156\147\101\165\x74\x68\x6f\x72\151\164\x79");
    }
    private function parseAttributes(DOMElement $A3)
    {
        $gu = TRUE;
        $pP = Utilities::xpQuery($A3, "\x2e\57\x73\141\x6d\154\x5f\141\163\163\145\162\x74\x69\x6f\156\72\x41\164\x74\x72\151\142\x75\164\x65\x53\164\141\x74\x65\155\x65\x6e\164\x2f\x73\x61\x6d\154\137\141\163\x73\x65\x72\164\x69\x6f\156\72\101\x74\164\162\x69\x62\x75\164\x65");
        foreach ($pP as $rv) {
            if ($rv->hasAttribute("\116\x61\x6d\x65")) {
                goto MD;
            }
            throw new Exception("\x4d\151\x73\x73\x69\156\x67\x20\x6e\141\155\x65\40\x6f\156\40\x3c\x73\141\155\154\72\x41\164\x74\162\x69\x62\165\x74\x65\x3e\x20\145\x6c\145\155\145\156\x74\56");
            MD:
            $xy = $rv->getAttribute("\x4e\141\155\x65");
            if ($rv->hasAttribute("\x4e\141\x6d\x65\106\x6f\x72\x6d\141\164")) {
                goto iT;
            }
            $ax = "\x75\x72\156\x3a\157\x61\163\151\x73\x3a\x6e\141\155\x65\163\72\164\x63\x3a\123\x41\x4d\x4c\72\61\56\61\72\156\141\x6d\x65\x69\144\x2d\146\157\162\155\141\x74\x3a\165\156\163\160\x65\x63\151\146\x69\145\x64";
            goto Ko;
            iT:
            $ax = $rv->getAttribute("\x4e\141\155\x65\106\x6f\162\155\x61\x74");
            Ko:
            if ($gu) {
                goto p0;
            }
            if (!($this->nameFormat !== $ax)) {
                goto aP;
            }
            $this->nameFormat = "\x75\162\x6e\72\x6f\x61\x73\151\163\x3a\x6e\x61\x6d\145\163\72\164\143\72\123\x41\115\114\x3a\x31\56\x31\72\x6e\x61\155\145\x69\x64\55\146\157\x72\155\141\164\x3a\x75\156\163\x70\145\x63\x69\146\x69\145\144";
            aP:
            goto ck;
            p0:
            $this->nameFormat = $ax;
            $gu = FALSE;
            ck:
            if (array_key_exists($xy, $this->attributes)) {
                goto g9;
            }
            $this->attributes[$xy] = array();
            g9:
            $WT = Utilities::xpQuery($rv, "\56\57\x73\x61\155\x6c\x5f\141\x73\163\145\x72\164\151\x6f\156\72\x41\164\x74\x72\x69\x62\165\164\x65\126\x61\154\x75\x65");
            foreach ($WT as $fg) {
                $this->attributes[$xy][] = trim($fg->textContent);
                J1:
            }
            FG:
            tv:
        }
        rq:
    }
    private function parseEncryptedAttributes(DOMElement $A3)
    {
        $this->encryptedAttribute = Utilities::xpQuery($A3, "\56\57\x73\141\x6d\x6c\x5f\x61\x73\163\x65\x72\164\151\157\156\72\x41\x74\x74\x72\151\x62\x75\x74\145\x53\164\x61\164\x65\x6d\x65\x6e\x74\x2f\x73\x61\x6d\x6c\137\x61\163\163\x65\162\164\151\x6f\156\72\x45\x6e\143\162\171\x70\x74\145\x64\x41\x74\x74\x72\x69\x62\x75\x74\145");
    }
    private function parseSignature(DOMElement $A3)
    {
        $kT = Utilities::validateElement($A3);
        if (!($kT !== FALSE)) {
            goto LB;
        }
        $this->wasSignedAtConstruction = TRUE;
        $this->certificates = $kT["\103\145\162\x74\151\x66\151\143\x61\164\145\x73"];
        $this->signatureData = $kT;
        LB:
    }
    public function validate(XMLSecurityKey $tg)
    {
        if (!($this->signatureData === NULL)) {
            goto M1;
        }
        return FALSE;
        M1:
        Utilities::validateSignature($this->signatureData, $tg);
        return TRUE;
    }
    public function getId()
    {
        return $this->id;
    }
    public function setId($lS)
    {
        $this->id = $lS;
    }
    public function getIssueInstant()
    {
        return $this->issueInstant;
    }
    public function setIssueInstant($I8)
    {
        $this->issueInstant = $I8;
    }
    public function getIssuer()
    {
        return $this->issuer;
    }
    public function setIssuer($wf)
    {
        $this->issuer = $wf;
    }
    public function getNameId()
    {
        if (!($this->encryptedNameId !== NULL)) {
            goto ID;
        }
        throw new Exception("\101\x74\164\145\x6d\160\164\x65\x64\40\164\x6f\40\162\x65\164\x72\x69\x65\166\145\x20\x65\x6e\143\162\x79\160\x74\x65\144\x20\116\141\x6d\145\111\x44\x20\x77\x69\164\150\157\x75\164\x20\x64\145\143\x72\171\160\x74\x69\156\147\x20\x69\x74\40\146\x69\x72\x73\x74\x2e");
        ID:
        return $this->nameId;
    }
    public function setNameId($nD)
    {
        $this->nameId = $nD;
    }
    public function isNameIdEncrypted()
    {
        if (!($this->encryptedNameId !== NULL)) {
            goto iN;
        }
        return TRUE;
        iN:
        return FALSE;
    }
    public function encryptNameId(XMLSecurityKey $tg)
    {
        $K1 = new DOMDocument();
        $n2 = $K1->createElement("\162\x6f\157\x74");
        $K1->appendChild($n2);
        Utilities::addNameId($n2, $this->nameId);
        $nD = $n2->firstChild;
        Utilities::getContainer()->debugMessage($nD, "\x65\156\143\162\171\160\164");
        $De = new XMLSecEnc();
        $De->setNode($nD);
        $De->type = XMLSecEnc::Element;
        $QX = new XMLSecurityKey(XMLSecurityKey::AES128_CBC);
        $QX->generateSessionKey();
        $De->encryptKey($tg, $QX);
        $this->encryptedNameId = $De->encryptNode($QX);
        $this->nameId = NULL;
    }
    public function decryptNameId(XMLSecurityKey $tg, array $iP = array())
    {
        if (!($this->encryptedNameId === NULL)) {
            goto kl;
        }
        return;
        kl:
        $nD = Utilities::decryptElement($this->encryptedNameId, $tg, $iP);
        Utilities::getContainer()->debugMessage($nD, "\x64\x65\x63\162\171\x70\x74");
        $this->nameId = Utilities::parseNameId($nD);
        $this->encryptedNameId = NULL;
    }
    public function decryptAttributes(XMLSecurityKey $tg, array $iP = array())
    {
        if (!($this->encryptedAttribute === NULL)) {
            goto vN;
        }
        return;
        vN:
        $gu = TRUE;
        $pP = $this->encryptedAttribute;
        foreach ($pP as $WH) {
            $rv = Utilities::decryptElement($WH->getElementsByTagName("\105\156\x63\x72\x79\x70\164\x65\144\x44\141\164\141")->item(0), $tg, $iP);
            if ($rv->hasAttribute("\116\x61\x6d\145")) {
                goto HZ;
            }
            throw new Exception("\115\151\163\163\x69\x6e\x67\x20\x6e\x61\155\145\40\x6f\156\x20\x3c\163\141\x6d\154\72\101\x74\x74\162\151\x62\165\164\x65\x3e\40\x65\154\145\155\145\156\164\x2e");
            HZ:
            $xy = $rv->getAttribute("\116\x61\155\145");
            if ($rv->hasAttribute("\116\141\155\x65\x46\x6f\162\x6d\x61\164")) {
                goto RX;
            }
            $ax = "\165\x72\156\x3a\x6f\x61\x73\151\x73\x3a\x6e\x61\x6d\x65\x73\x3a\164\143\x3a\123\101\x4d\114\72\x32\56\x30\x3a\141\x74\164\x72\x6e\141\x6d\145\x2d\x66\x6f\x72\x6d\x61\x74\72\x75\x6e\x73\160\145\x63\151\146\151\145\144";
            goto CV;
            RX:
            $ax = $rv->getAttribute("\x4e\x61\x6d\145\106\x6f\162\x6d\x61\164");
            CV:
            if ($gu) {
                goto Ac;
            }
            if (!($this->nameFormat !== $ax)) {
                goto v2;
            }
            $this->nameFormat = "\x75\162\156\x3a\x6f\x61\163\151\x73\x3a\156\141\x6d\x65\x73\x3a\164\x63\x3a\123\101\115\x4c\x3a\x32\56\60\72\141\164\x74\x72\x6e\x61\155\x65\55\x66\x6f\x72\155\x61\164\72\165\156\163\160\145\143\151\x66\x69\x65\x64";
            v2:
            goto vz;
            Ac:
            $this->nameFormat = $ax;
            $gu = FALSE;
            vz:
            if (array_key_exists($xy, $this->attributes)) {
                goto rO;
            }
            $this->attributes[$xy] = array();
            rO:
            $WT = Utilities::xpQuery($rv, "\x2e\57\x73\141\x6d\154\137\141\x73\x73\145\162\164\x69\157\156\72\101\164\x74\x72\151\x62\165\x74\145\x56\x61\x6c\165\145");
            foreach ($WT as $fg) {
                $this->attributes[$xy][] = trim($fg->textContent);
                us:
            }
            XP:
            Y_:
        }
        t5:
    }
    public function getNotBefore()
    {
        return $this->notBefore;
    }
    public function setNotBefore($tO)
    {
        $this->notBefore = $tO;
    }
    public function getNotOnOrAfter()
    {
        return $this->notOnOrAfter;
    }
    public function setNotOnOrAfter($fh)
    {
        $this->notOnOrAfter = $fh;
    }
    public function setEncryptedAttributes($I0)
    {
        $this->requiredEncAttributes = $I0;
    }
    public function getValidAudiences()
    {
        return $this->validAudiences;
    }
    public function setValidAudiences(array $Zn = NULL)
    {
        $this->validAudiences = $Zn;
    }
    public function getAuthnInstant()
    {
        return $this->authnInstant;
    }
    public function setAuthnInstant($wJ)
    {
        $this->authnInstant = $wJ;
    }
    public function getSessionNotOnOrAfter()
    {
        return $this->sessionNotOnOrAfter;
    }
    public function setSessionNotOnOrAfter($FU)
    {
        $this->sessionNotOnOrAfter = $FU;
    }
    public function getSessionIndex()
    {
        return $this->sessionIndex;
    }
    public function setSessionIndex($nU)
    {
        $this->sessionIndex = $nU;
    }
    public function getAuthnContext()
    {
        if (empty($this->authnContextClassRef)) {
            goto Ro;
        }
        return $this->authnContextClassRef;
        Ro:
        if (empty($this->authnContextDeclRef)) {
            goto dT;
        }
        return $this->authnContextDeclRef;
        dT:
        return NULL;
    }
    public function setAuthnContext($xQ)
    {
        $this->setAuthnContextClassRef($xQ);
    }
    public function getAuthnContextClassRef()
    {
        return $this->authnContextClassRef;
    }
    public function setAuthnContextClassRef($Up)
    {
        $this->authnContextClassRef = $Up;
    }
    public function setAuthnContextDecl(SAML2_XML_Chunk $i2)
    {
        if (empty($this->authnContextDeclRef)) {
            goto tD;
        }
        throw new Exception("\x41\x75\x74\150\x6e\x43\157\x6e\x74\x65\170\x74\x44\145\x63\154\122\x65\146\x20\151\x73\40\x61\154\x72\x65\x61\144\171\x20\162\145\147\x69\x73\x74\x65\162\x65\x64\41\x20\115\x61\171\x20\x6f\x6e\154\171\x20\150\x61\166\x65\x20\145\151\x74\150\145\162\40\141\x20\x44\145\x63\x6c\x20\157\162\40\141\x20\x44\145\x63\x6c\122\145\x66\x2c\x20\156\x6f\164\x20\x62\x6f\164\x68\41");
        tD:
        $this->authnContextDecl = $i2;
    }
    public function getAuthnContextDecl()
    {
        return $this->authnContextDecl;
    }
    public function setAuthnContextDeclRef($ks)
    {
        if (empty($this->authnContextDecl)) {
            goto Dv;
        }
        throw new Exception("\x41\x75\164\150\x6e\x43\157\156\164\x65\170\x74\x44\145\143\x6c\40\x69\163\40\141\154\x72\x65\x61\144\171\40\x72\145\147\x69\163\164\x65\x72\x65\144\41\x20\x4d\141\x79\40\157\x6e\x6c\x79\40\150\x61\166\145\40\x65\151\164\x68\x65\x72\x20\141\x20\x44\145\x63\154\40\x6f\x72\x20\x61\40\x44\x65\x63\x6c\122\x65\x66\54\x20\x6e\157\164\40\142\157\x74\150\41");
        Dv:
        $this->authnContextDeclRef = $ks;
    }
    public function getAuthnContextDeclRef()
    {
        return $this->authnContextDeclRef;
    }
    public function getAuthenticatingAuthority()
    {
        return $this->AuthenticatingAuthority;
    }
    public function setAuthenticatingAuthority($sK)
    {
        $this->AuthenticatingAuthority = $sK;
    }
    public function getAttributes()
    {
        return $this->attributes;
    }
    public function setAttributes(array $pP)
    {
        $this->attributes = $pP;
    }
    public function getAttributeNameFormat()
    {
        return $this->nameFormat;
    }
    public function setAttributeNameFormat($ax)
    {
        $this->nameFormat = $ax;
    }
    public function getSubjectConfirmation()
    {
        return $this->SubjectConfirmation;
    }
    public function setSubjectConfirmation(array $pg)
    {
        $this->SubjectConfirmation = $pg;
    }
    public function getSignatureKey()
    {
        return $this->signatureKey;
    }
    public function getSignatureData()
    {
        return $this->signatureData;
    }
    public function setSignatureKey(XMLsecurityKey $uK = NULL)
    {
        $this->signatureKey = $uK;
    }
    public function getEncryptionKey()
    {
        return $this->encryptionKey;
    }
    public function setEncryptionKey(XMLSecurityKey $YU = NULL)
    {
        $this->encryptionKey = $YU;
    }
    public function setCertificates(array $au)
    {
        $this->certificates = $au;
    }
    public function getCertificates()
    {
        return $this->certificates;
    }
    public function getWasSignedAtConstruction()
    {
        return $this->wasSignedAtConstruction;
    }
    public function toXML(DOMNode $SR = NULL)
    {
        if ($SR === NULL) {
            goto oE;
        }
        $D1 = $SR->ownerDocument;
        goto UM;
        oE:
        $D1 = new DOMDocument();
        $SR = $D1;
        UM:
        $n2 = $D1->createElementNS("\x75\162\156\72\157\x61\x73\x69\x73\x3a\156\141\x6d\x65\163\x3a\x74\143\x3a\x53\x41\x4d\x4c\x3a\x32\x2e\x30\72\x61\x73\x73\x65\162\164\x69\157\156", "\x73\x61\155\154\72" . "\101\x73\x73\145\x72\164\x69\157\156");
        $SR->appendChild($n2);
        $n2->setAttributeNS("\x75\162\156\x3a\157\x61\x73\151\x73\x3a\156\x61\x6d\145\x73\72\x74\x63\72\123\x41\x4d\114\x3a\62\x2e\60\x3a\160\x72\157\x74\x6f\x63\157\x6c", "\163\x61\155\x6c\x70\72\164\x6d\160", "\x74\x6d\160");
        $n2->removeAttributeNS("\165\x72\x6e\72\x6f\141\x73\151\163\72\x6e\x61\155\145\163\x3a\x74\143\x3a\x53\101\x4d\x4c\72\62\x2e\x30\x3a\x70\162\x6f\164\x6f\143\x6f\154", "\x74\x6d\160");
        $n2->setAttributeNS("\150\164\164\x70\72\57\x2f\x77\x77\167\x2e\167\63\x2e\x6f\162\x67\57\62\x30\x30\x31\x2f\x58\115\114\123\x63\x68\x65\155\x61\55\151\156\x73\x74\141\x6e\143\x65", "\x78\x73\x69\x3a\164\155\x70", "\x74\155\x70");
        $n2->removeAttributeNS("\x68\x74\164\160\x3a\x2f\57\x77\x77\167\56\167\63\x2e\157\162\147\57\62\60\x30\x31\x2f\130\x4d\x4c\x53\143\x68\x65\155\141\x2d\x69\156\163\164\x61\x6e\x63\145", "\164\x6d\160");
        $n2->setAttributeNS("\150\164\164\x70\72\x2f\57\x77\167\167\x2e\x77\x33\x2e\157\x72\147\x2f\x32\60\60\x31\57\130\x4d\114\123\143\x68\x65\155\141", "\x78\163\72\x74\x6d\x70", "\x74\x6d\160");
        $n2->removeAttributeNS("\150\x74\164\160\x3a\57\x2f\167\167\167\x2e\167\x33\56\157\x72\x67\57\x32\x30\x30\61\57\x58\115\114\x53\x63\x68\x65\155\141", "\164\155\160");
        $n2->setAttribute("\111\x44", $this->id);
        $n2->setAttribute("\126\x65\162\163\x69\157\x6e", "\x32\x2e\60");
        $n2->setAttribute("\x49\163\163\165\x65\x49\x6e\163\x74\141\x6e\x74", gmdate("\131\55\155\55\x64\134\124\x48\x3a\x69\x3a\x73\134\x5a", $this->issueInstant));
        $wf = Utilities::addString($n2, "\x75\162\156\x3a\x6f\x61\x73\151\x73\x3a\156\x61\155\145\x73\72\x74\143\x3a\123\x41\115\114\x3a\62\56\x30\72\x61\163\x73\x65\162\164\x69\x6f\x6e", "\x73\141\x6d\154\72\x49\163\x73\x75\145\162", $this->issuer);
        $this->addSubject($n2);
        $this->addConditions($n2);
        $this->addAuthnStatement($n2);
        if ($this->requiredEncAttributes == FALSE) {
            goto Tv;
        }
        $this->addEncryptedAttributeStatement($n2);
        goto kY;
        Tv:
        $this->addAttributeStatement($n2);
        kY:
        if (!($this->signatureKey !== NULL)) {
            goto gM;
        }
        Utilities::insertSignature($this->signatureKey, $this->certificates, $n2, $wf->nextSibling);
        gM:
        return $n2;
    }
    private function addSubject(DOMElement $n2)
    {
        if (!($this->nameId === NULL && $this->encryptedNameId === NULL)) {
            goto mF;
        }
        return;
        mF:
        $I9 = $n2->ownerDocument->createElementNS("\x75\162\156\x3a\157\141\163\151\163\x3a\x6e\141\x6d\x65\x73\72\164\143\72\x53\101\115\x4c\72\62\x2e\x30\72\141\163\x73\145\162\164\151\x6f\x6e", "\x73\141\155\154\x3a\x53\165\x62\152\145\143\x74");
        $n2->appendChild($I9);
        if ($this->encryptedNameId === NULL) {
            goto m8;
        }
        $qJ = $I9->ownerDocument->createElementNS("\x75\x72\x6e\72\x6f\141\163\x69\x73\x3a\x6e\x61\x6d\x65\x73\x3a\x74\x63\x3a\x53\x41\115\114\72\62\56\60\72\141\163\x73\x65\x72\164\x69\157\x6e", "\163\141\155\154\72" . "\x45\x6e\143\x72\x79\160\x74\145\144\111\x44");
        $I9->appendChild($qJ);
        $qJ->appendChild($I9->ownerDocument->importNode($this->encryptedNameId, TRUE));
        goto xK;
        m8:
        Utilities::addNameId($I9, $this->nameId);
        xK:
        foreach ($this->SubjectConfirmation as $Qq) {
            $Qq->toXML($I9);
            Ak:
        }
        Oj:
    }
    private function addConditions(DOMElement $n2)
    {
        $D1 = $n2->ownerDocument;
        $q7 = $D1->createElementNS("\165\162\x6e\x3a\157\x61\163\151\x73\72\x6e\141\155\x65\163\72\164\x63\72\x53\101\115\x4c\x3a\62\56\60\72\x61\163\163\145\x72\164\151\x6f\156", "\x73\x61\x6d\x6c\x3a\103\x6f\156\144\x69\x74\151\157\x6e\163");
        $n2->appendChild($q7);
        if (!($this->notBefore !== NULL)) {
            goto Vo;
        }
        $q7->setAttribute("\x4e\x6f\164\102\145\x66\x6f\x72\x65", gmdate("\131\x2d\x6d\55\x64\x5c\x54\110\72\x69\x3a\x73\134\x5a", $this->notBefore));
        Vo:
        if (!($this->notOnOrAfter !== NULL)) {
            goto uG;
        }
        $q7->setAttribute("\x4e\x6f\164\x4f\156\117\x72\x41\146\164\x65\x72", gmdate("\131\55\155\55\144\134\x54\x48\72\x69\x3a\x73\x5c\132", $this->notOnOrAfter));
        uG:
        if (!($this->validAudiences !== NULL)) {
            goto ip;
        }
        $yr = $D1->createElementNS("\x75\x72\156\x3a\x6f\141\163\x69\163\72\156\x61\155\x65\163\72\164\143\72\123\x41\115\x4c\72\x32\x2e\x30\72\141\163\x73\x65\162\x74\151\157\x6e", "\163\x61\155\154\x3a\x41\x75\144\x69\x65\156\x63\145\122\145\163\164\162\x69\x63\x74\151\x6f\156");
        $q7->appendChild($yr);
        Utilities::addStrings($yr, "\x75\x72\156\x3a\x6f\141\163\151\x73\72\x6e\x61\x6d\x65\163\72\x74\143\72\123\101\115\x4c\x3a\62\x2e\x30\72\141\163\x73\x65\162\164\x69\x6f\156", "\163\141\155\x6c\x3a\101\165\x64\151\x65\156\143\145", FALSE, $this->validAudiences);
        ip:
    }
    private function addAuthnStatement(DOMElement $n2)
    {
        if (!($this->authnInstant === NULL || $this->authnContextClassRef === NULL && $this->authnContextDecl === NULL && $this->authnContextDeclRef === NULL)) {
            goto kq;
        }
        return;
        kq:
        $D1 = $n2->ownerDocument;
        $P0 = $D1->createElementNS("\165\162\156\x3a\157\141\x73\x69\x73\72\x6e\141\x6d\145\163\x3a\x74\143\72\123\x41\115\114\72\x32\x2e\60\72\x61\163\163\x65\162\x74\x69\x6f\156", "\x73\x61\155\x6c\x3a\x41\165\x74\x68\156\x53\164\x61\x74\x65\x6d\x65\156\164");
        $n2->appendChild($P0);
        $P0->setAttribute("\101\165\x74\x68\156\x49\x6e\x73\x74\x61\x6e\164", gmdate("\131\x2d\x6d\x2d\x64\134\124\x48\x3a\151\x3a\x73\x5c\x5a", $this->authnInstant));
        if (!($this->sessionNotOnOrAfter !== NULL)) {
            goto nA;
        }
        $P0->setAttribute("\x53\x65\x73\163\151\x6f\156\116\x6f\164\x4f\156\117\x72\x41\x66\x74\x65\x72", gmdate("\131\x2d\x6d\55\x64\x5c\124\110\72\x69\72\163\134\132", $this->sessionNotOnOrAfter));
        nA:
        if (!($this->sessionIndex !== NULL)) {
            goto j1;
        }
        $P0->setAttribute("\x53\x65\163\x73\151\x6f\156\111\x6e\x64\x65\170", $this->sessionIndex);
        j1:
        $Iu = $D1->createElementNS("\165\162\x6e\x3a\x6f\x61\x73\x69\163\72\x6e\x61\x6d\145\163\72\x74\143\72\x53\x41\115\114\72\x32\56\60\x3a\141\163\163\145\162\x74\x69\x6f\x6e", "\x73\141\x6d\154\x3a\101\x75\164\150\156\x43\157\x6e\x74\x65\x78\164");
        $P0->appendChild($Iu);
        if (empty($this->authnContextClassRef)) {
            goto xB;
        }
        Utilities::addString($Iu, "\x75\162\156\72\x6f\141\163\151\163\x3a\x6e\141\155\x65\x73\x3a\164\143\72\x53\x41\x4d\114\72\x32\x2e\x30\72\x61\x73\163\145\x72\x74\x69\157\156", "\x73\141\155\154\72\101\x75\x74\x68\156\103\x6f\x6e\x74\145\170\164\103\x6c\141\x73\x73\122\x65\x66", $this->authnContextClassRef);
        xB:
        if (empty($this->authnContextDecl)) {
            goto v3;
        }
        $this->authnContextDecl->toXML($Iu);
        v3:
        if (empty($this->authnContextDeclRef)) {
            goto Z7;
        }
        Utilities::addString($Iu, "\165\x72\x6e\x3a\157\141\x73\x69\x73\x3a\156\x61\155\145\163\x3a\x74\x63\x3a\123\101\x4d\114\72\62\56\60\x3a\141\x73\163\145\162\x74\151\x6f\156", "\163\141\x6d\154\72\101\x75\164\150\156\103\x6f\x6e\164\145\170\x74\104\145\x63\x6c\x52\x65\146", $this->authnContextDeclRef);
        Z7:
        Utilities::addStrings($Iu, "\165\162\156\x3a\x6f\141\x73\151\163\x3a\156\141\155\145\x73\x3a\x74\143\x3a\x53\101\x4d\114\72\x32\56\60\x3a\x61\163\163\x65\162\164\x69\x6f\156", "\163\x61\155\154\x3a\101\x75\x74\150\145\x6e\164\151\x63\x61\164\151\156\x67\x41\165\x74\150\157\x72\x69\164\x79", FALSE, $this->AuthenticatingAuthority);
    }
    private function addAttributeStatement(DOMElement $n2)
    {
        if (!empty($this->attributes)) {
            goto tz;
        }
        return;
        tz:
        $D1 = $n2->ownerDocument;
        $HQ = $D1->createElementNS("\165\x72\156\72\157\141\x73\x69\163\72\x6e\x61\155\145\x73\x3a\x74\143\72\x53\101\x4d\x4c\x3a\x32\x2e\60\x3a\x61\x73\x73\x65\x72\x74\151\157\156", "\x73\x61\x6d\x6c\72\x41\164\x74\162\x69\142\165\164\145\x53\x74\x61\x74\x65\155\145\x6e\x74");
        $n2->appendChild($HQ);
        foreach ($this->attributes as $xy => $WT) {
            $rv = $D1->createElementNS("\165\x72\x6e\x3a\157\x61\x73\x69\x73\72\156\141\x6d\x65\163\x3a\x74\x63\72\x53\x41\x4d\x4c\72\x32\56\60\72\x61\x73\x73\145\162\164\151\157\x6e", "\x73\141\x6d\x6c\x3a\x41\x74\x74\x72\x69\x62\x75\x74\145");
            $HQ->appendChild($rv);
            $rv->setAttribute("\116\141\x6d\x65", $xy);
            if (!($this->nameFormat !== "\165\x72\x6e\72\157\141\163\151\x73\x3a\x6e\x61\155\145\163\x3a\164\x63\x3a\123\101\x4d\114\x3a\x32\56\60\72\141\x74\164\162\156\x61\155\x65\x2d\146\157\x72\155\141\164\x3a\x75\156\163\x70\145\x63\151\146\x69\145\x64")) {
                goto b2;
            }
            $rv->setAttribute("\116\141\x6d\x65\x46\x6f\162\x6d\141\164", $this->nameFormat);
            b2:
            foreach ($WT as $fg) {
                if (is_string($fg)) {
                    goto Sy;
                }
                if (is_int($fg)) {
                    goto KF;
                }
                $Ws = NULL;
                goto Zz;
                Sy:
                $Ws = "\x78\x73\72\163\x74\162\x69\x6e\147";
                goto Zz;
                KF:
                $Ws = "\x78\x73\x3a\x69\x6e\x74\x65\x67\x65\162";
                Zz:
                $R7 = $D1->createElementNS("\165\162\156\x3a\x6f\x61\163\x69\163\72\156\141\x6d\145\x73\72\x74\x63\x3a\x53\x41\115\x4c\x3a\x32\x2e\60\x3a\x61\163\163\x65\162\164\151\157\156", "\163\141\155\x6c\x3a\x41\164\164\162\x69\x62\x75\164\145\x56\141\154\x75\x65");
                $rv->appendChild($R7);
                if (!($Ws !== NULL)) {
                    goto ny;
                }
                $R7->setAttributeNS("\x68\x74\x74\160\72\57\x2f\x77\167\167\56\x77\x33\56\x6f\162\147\57\x32\x30\x30\x31\57\x58\115\x4c\123\143\150\x65\x6d\141\x2d\151\x6e\163\x74\141\156\x63\x65", "\x78\x73\x69\x3a\x74\x79\x70\145", $Ws);
                ny:
                if (!is_null($fg)) {
                    goto tU;
                }
                $R7->setAttributeNS("\x68\x74\x74\x70\x3a\x2f\x2f\167\x77\167\x2e\x77\63\x2e\157\162\x67\x2f\62\60\x30\61\x2f\130\x4d\114\123\x63\x68\145\x6d\x61\55\x69\156\163\x74\141\156\x63\x65", "\170\x73\x69\x3a\x6e\x69\154", "\x74\162\165\x65");
                tU:
                if ($fg instanceof DOMNodeList) {
                    goto GY;
                }
                $R7->appendChild($D1->createTextNode($fg));
                goto Ty;
                GY:
                $lt = 0;
                Gt:
                if (!($lt < $fg->length)) {
                    goto ZO;
                }
                $pU = $D1->importNode($fg->item($lt), TRUE);
                $R7->appendChild($pU);
                GW:
                $lt++;
                goto Gt;
                ZO:
                Ty:
                pt:
            }
            aW:
            U5:
        }
        lG:
    }
    private function addEncryptedAttributeStatement(DOMElement $n2)
    {
        if (!($this->requiredEncAttributes == FALSE)) {
            goto Al;
        }
        return;
        Al:
        $D1 = $n2->ownerDocument;
        $HQ = $D1->createElementNS("\165\162\x6e\x3a\157\x61\163\x69\x73\x3a\x6e\141\155\145\163\72\164\143\72\x53\x41\115\x4c\72\62\56\60\x3a\x61\x73\163\x65\162\164\151\157\156", "\163\141\x6d\x6c\x3a\x41\x74\164\x72\151\x62\x75\x74\145\x53\x74\141\164\x65\155\145\156\164");
        $n2->appendChild($HQ);
        foreach ($this->attributes as $xy => $WT) {
            $b_ = new DOMDocument();
            $rv = $b_->createElementNS("\x75\162\x6e\x3a\x6f\x61\x73\151\x73\x3a\x6e\x61\155\x65\163\72\x74\x63\72\x53\x41\115\x4c\x3a\x32\x2e\60\72\x61\163\x73\145\162\x74\151\157\x6e", "\163\x61\155\x6c\72\x41\164\164\x72\151\x62\165\164\x65");
            $rv->setAttribute("\116\x61\155\145", $xy);
            $b_->appendChild($rv);
            if (!($this->nameFormat !== "\x75\162\x6e\72\157\x61\x73\151\x73\x3a\x6e\141\155\x65\163\72\164\143\72\123\x41\x4d\114\x3a\62\56\60\x3a\141\x74\x74\x72\156\x61\155\x65\x2d\146\x6f\162\155\x61\x74\72\x75\156\163\x70\x65\143\151\146\x69\x65\144")) {
                goto hd;
            }
            $rv->setAttribute("\x4e\141\x6d\145\x46\157\162\155\141\164", $this->nameFormat);
            hd:
            foreach ($WT as $fg) {
                if (is_string($fg)) {
                    goto uI;
                }
                if (is_int($fg)) {
                    goto OH;
                }
                $Ws = NULL;
                goto Zq;
                uI:
                $Ws = "\x78\163\72\163\x74\162\151\156\x67";
                goto Zq;
                OH:
                $Ws = "\x78\x73\x3a\x69\156\164\145\147\145\x72";
                Zq:
                $R7 = $b_->createElementNS("\165\162\156\x3a\157\x61\x73\151\x73\72\156\141\x6d\145\163\72\164\143\x3a\123\x41\115\x4c\72\x32\56\60\72\141\x73\x73\x65\x72\164\151\157\156", "\x73\141\x6d\154\72\101\x74\x74\x72\x69\x62\165\164\145\x56\x61\x6c\x75\x65");
                $rv->appendChild($R7);
                if (!($Ws !== NULL)) {
                    goto v4;
                }
                $R7->setAttributeNS("\x68\164\164\x70\x3a\57\x2f\x77\x77\167\x2e\x77\63\56\157\162\x67\x2f\62\60\x30\x31\x2f\x58\115\114\x53\x63\x68\x65\x6d\141\x2d\151\156\x73\x74\x61\156\x63\x65", "\170\163\151\x3a\x74\171\160\x65", $Ws);
                v4:
                if ($fg instanceof DOMNodeList) {
                    goto Y0;
                }
                $R7->appendChild($b_->createTextNode($fg));
                goto d1;
                Y0:
                $lt = 0;
                EV:
                if (!($lt < $fg->length)) {
                    goto oD;
                }
                $pU = $b_->importNode($fg->item($lt), TRUE);
                $R7->appendChild($pU);
                mi:
                $lt++;
                goto EV;
                oD:
                d1:
                jl:
            }
            jw:
            $Sw = new XMLSecEnc();
            $Sw->setNode($b_->documentElement);
            $Sw->type = "\x68\x74\164\160\72\57\57\x77\167\167\x2e\167\x33\x2e\x6f\x72\x67\x2f\x32\60\x30\61\x2f\x30\64\57\170\155\154\145\156\x63\43\x45\154\x65\155\145\x6e\x74";
            $QX = new XMLSecurityKey(XMLSecurityKey::AES256_CBC);
            $QX->generateSessionKey();
            $Sw->encryptKey($this->encryptionKey, $QX);
            $tL = $Sw->encryptNode($QX);
            $Bd = $D1->createElementNS("\165\x72\156\72\x6f\141\163\x69\x73\x3a\x6e\x61\x6d\x65\x73\x3a\x74\143\72\x53\x41\115\x4c\72\62\x2e\x30\72\x61\163\x73\145\x72\164\151\157\x6e", "\x73\x61\x6d\154\72\105\x6e\x63\162\x79\x70\x74\145\144\101\164\164\x72\x69\142\165\x74\x65");
            $HQ->appendChild($Bd);
            $YW = $D1->importNode($tL, TRUE);
            $Bd->appendChild($YW);
            x6:
        }
        dc:
    }
}

Function Calls

None

Variables

None

Stats

MD5 9e5326b563b64763fcb201f0b3161083
Eval Count 0
Decode Time 125 ms