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 |
Stats
MD5 | f457b2a59b7cadc5b8632e91146b4231 |
Eval Count | 0 |
Decode Time | 96 ms |