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 namespace Drupal\miniorange_saml; use DOMElement; use DOMNode; use DOMXPat..
Decoded Output download
<?php
namespace Drupal\miniorange_saml;
use DOMElement;
use DOMNode;
use DOMXPath;
use DOMDocument;
use Drupal\Core\Render\Markup;
use Drupal\Component\Utility\Xss;
class Utilities
{
public static function isCustomerRegistered(&$form, $form_state)
{
global $base_url;
$mF = $base_url . "/admin/config/people/miniorange_saml/customer_setup/";
if (\Drupal::config("miniorange_saml.settings")->get("miniorange_saml_customer_admin_email") == NULL || \Drupal::config("miniorange_saml.settings")->get("miniorange_saml_customer_id") == NULL || \Drupal::config("miniorange_saml.settings")->get("miniorange_saml_customer_admin_token") == NULL || \Drupal::config("miniorange_saml.settings")->get("miniorange_saml_customer_api_key") == NULL) {
goto Yh;
}
if (\Drupal::config("miniorange_saml.settings")->get("miniorange_saml_license_key") == NULL) {
goto DW;
}
return FALSE;
goto b2;
DW:
$form["markup_msg"] = array("#markup" => "<div class="mo_saml_register_message">You need to <a href="" . $mF . "" >verify your license</a> key before using this module.</div>");
return TRUE;
b2:
goto nV;
Yh:
$form["markup_reg_msg"] = array("#markup" => "<div class="mo_saml_register_message">You need to <a href="" . $mF . "" >Login</a> using miniOrange account before using this module.</div>");
return TRUE;
nV:
}
public static function spConfigGuide(array &$form, \Drupal\Core\Form\FormStateInterface $form_state)
{
$form["miniorange_idp_guide_link"] = array("#markup" => "<div class="mo_saml_table_layout mo_saml_sp_container_2" id="mo_guide_vt">");
$form["miniorange_idp_guide_link1"] = array("#markup" => "<div style="font-size: 15px;">To see detailed documentation of how to configure Drupal SAML SP with any Identity Provider</div></br>");
$KR = Markup::create("<strong><a href="https://plugins.miniorange.com/drupal-single-sign-sso-using-azure-ad-idp/" class="mo_guide_text-color" target="_blank">Azure AD</a></strong>");
$LI = Markup::create("<strong><a href="https://plugins.miniorange.com/drupal-single-sign-sso-using-adfs-idp" class="mo_guide_text-color" target="_blank">ADFS</a></strong>");
$ss = Markup::create("<strong><a class="mo_guide_text-color" href="https://plugins.miniorange.com/drupal-single-sign-sso-using-okta-idp/" target="_blank">Okta</a></strong>");
$x1 = Markup::create("<strong><a href="https://plugins.miniorange.com/drupal-single-sign-sso-using-google-apps-idp/" class="mo_guide_text-color" target="_blank">Google Apps</a></strong>");
$SC = Markup::create("<strong><a href="https://plugins.miniorange.com/drupal-single-sign-sso-using-salesforce-idp/" class="mo_guide_text-color" target="_blank">Salesforce</a></strong>");
$KN = Markup::create("<strong><a class="mo_guide_text-color" href="https://plugins.miniorange.com/drupal-single-sign-sso-using-miniorange-idp/" target="_blank">miniOrange</a></strong>");
$YA = Markup::create("<strong><a class="mo_guide_text-color" href="https://plugins.miniorange.com/guide-for-drupal-single-sign-on-using-pingone-as-identity-provider" target="_blank">PingOne</a></strong>");
$cF = Markup::create("<strong><a href="https://plugins.miniorange.com/drupal-single-sign-sso-using-onelogin-idp/" class="mo_guide_text-color" target="_blank">Onelogin</a></strong>");
$ja = Markup::create("<strong><a href="https://plugins.miniorange.com/drupal-single-sign-sso-using-bitium-idp" class="mo_guide_text-color" target="_blank">Bitium</a></strong>");
$fQ = Markup::create("<strong><a href="https://plugins.miniorange.com/drupal-single-sign-sso-using-centrify-idp/" class="mo_guide_text-color" target="_blank">Centrify</a></strong>");
$wd = Markup::create("<strong><a href="https://plugins.miniorange.com/guide-to-configure-oracle-access-manager-as-idp-and-drupal-as-sp" class="mo_guide_text-color" target="_blank">Oracle</a></strong>");
$sp = Markup::create("<strong><a href="https://plugins.miniorange.com/drupal-single-sign-on-sso-using-jboss-keycloak-as-idp" class="mo_guide_text-color" target="_blank">Jboss Keycloak</a></strong>");
$hp = Markup::create("<strong><a href="https://plugins.miniorange.com/guide-for-pingfederate-as-idp-with-drupal" class="mo_guide_text-color" target="_blank">Ping Federate</a></strong>");
$Ds = Markup::create("<strong><a href="https://plugins.miniorange.com/guide-for-openam-as-idp-with-drupal" class="mo_guide_text-color" target="_blank">OpenAM</a></strong>");
$bO = Markup::create("<strong><a href="https://plugins.miniorange.com/drupal-single-sign-on-sso-using-authanvil-as-idp" class="mo_guide_text-color" target="_blank">AuthAnvil</a></strong>");
$pZ = Markup::create("<strong><a href="https://plugins.miniorange.com/guide-for-auth0-as-idp-with-drupal" class="mo_guide_text-color" target="_blank">auth0</a></strong>");
$rn = Markup::create("<strong><a href="https://plugins.miniorange.com/guide-for-drupal-single-sign-on-sso-using-rsa-securid-as-idp" class="mo_guide_text-color" target="_blank">RSA SecurID</a></strong>");
$T4 = Markup::create("<strong><a href="https://plugins.miniorange.com/configure-drupal-saml-single-sign-on" class="mo_guide_text-color" target="_blank">Other IDP</a></strong>");
$Ru = array(array($KR, $LI), array($ss, $x1), array($SC, $cF), array($wd, $sp), array($fQ, $YA), array($hp, $Ds), array($bO, $pZ), array($KN, $rn));
$ij = array(array("data" => t("Identity Provider Setup Guides"), "colspan" => 2, "style" => "text-align: center"));
$form["modules"] = array("#type" => "table", "#header" => $ij, "#rows" => $Ru, "#attributes" => ["class" => ["mo_guide_table"]]);
$form["modules"][8][0] = ["#markup" => $T4, "#wrapper_attributes" => ["colspan" => 2]];
self::faq($form, $form_state);
$form["miniorange_sp_guide_link_end"] = array("#markup" => "</div>");
}
public static function faq(&$form, &$form_state)
{
$form["miniorange_faq"] = array("#markup" => "<div class="mo_guide_text-center"><b></b>
<a class="button button--primary button--small" href="https://faq.miniorange.com/kb/drupal/saml-drupal/" target="_blank">FAQs</a>
<b></b><a class="button button--primary button--small" href="https://forum.miniorange.com/" target="_blank">Ask questions on forum</a>
</div>");
}
public static function send_support_query($Nx, $nL, $Au, $hb)
{
$aI = new MiniorangeSamlSupport($Nx, $nL, $Au, $hb);
$Zo = $aI->sendSupportQuery();
if ($Zo) {
goto Bv;
}
return false;
goto ga;
Bv:
return true;
ga:
}
public static function getClassNameForImport_Export()
{
$CN = array("Identity_Provider" => "mo_options_enum_identity_provider", "Service_Provider" => "mo_options_enum_service_provider", "Signin_Settings" => "mo_options_enum_signin_settings", "Mapping" => "mo_options_enum_mapping");
return $CN;
}
public static function getVariableArrayForImport_Export($i4)
{
if ($i4 == "mo_options_enum_identity_provider") {
goto rp;
}
if ($i4 == "mo_options_enum_service_provider") {
goto NI;
}
if ($i4 == "mo_options_enum_signin_settings") {
goto Zl;
}
if (!($i4 == "mo_options_enum_mapping")) {
goto Ya;
}
$Bl = array("Username_attribute" => "miniorange_saml_username_attribute", "Email_aatribute" => "miniorange_saml_email_attribute", "Enable_Role_maaping" => "miniorange_saml_enable_rolemapping", "Default_group_for_new_users" => "miniorange_saml_default_role");
Ya:
goto Ce;
Zl:
$Bl = array("Auto_cteation_user" => "miniorange_saml_disable_autocreate_users", "Protect_whole_site" => "miniorange_saml_force_auth", "Auto_redirect" => "miniorange_saml_auto_redirect_to_idp", "Backdoor_Login" => "miniorange_saml_enable_backdoor", "Default_redirect_URL" => "miniorange_saml_default_relaystate");
Ce:
goto Y_;
NI:
$Bl = array("Identity_name" => "miniorange_saml_idp_name", "Issuer" => "miniorange_saml_idp_issuer", "Name_ID_format" => "miniorange_saml_nameid_format", "http_binding" => "miniorange_saml_http_binding", "Login_URL" => "miniorange_saml_idp_login_url", "Logout_URL" => "miniorange_saml_idp_logout_url", "X509_certificate" => "miniorange_saml_idp_certificate", "Sign_request" => "miniorange_saml_request_signed", "Enable_login_with_SAML" => "miniorange_saml_enable_login");
Y_:
goto Dk;
rp:
$Bl = array("SP_Base_Url" => "miniorange_saml_base", "SP_Entity_ID" => "miniorange_saml_entity_id");
Dk:
return $Bl;
}
public static function moStoreDomainInDatabase($fy, $Ms = 0)
{
global $base_url;
global $C1;
$v5 = \Drupal::configFactory()->getEditable("miniorange_saml.settings");
$EU = \Drupal::request()->server->get("DOCUMENT_ROOT") . $C1;
$Dl = trim($base_url, "/");
if (preg_match("#^http(s)?://#", $Dl)) {
goto MF;
}
$Dl = "http://" . $Dl;
MF:
$aJ = parse_url($Dl);
$Wq = isset($aJ["path"]) ? $aJ["path"] : '';
$xA = preg_replace("/^www\./", '', $aJ["host"] . $Wq);
$G6 = $EU . $xA;
if ($Ms == 0) {
goto Fb;
}
return $G6;
goto KV;
Fb:
$v5->set("minorange_saml_customer_admin_fraud_check", AESEncryption::encrypt_data($G6, $fy))->save();
KV:
}
public static function isCurlInstalled()
{
if (!in_array("curl", get_loaded_extensions())) {
goto I_;
}
return 1;
I_:
return 0;
}
public static function generateID()
{
return "_" . self::stringToHex(self::generateRandomBytes(21));
}
public static function stringToHex($u3)
{
$dA = '';
$H7 = 0;
xT:
if (!($H7 < strlen($u3))) {
goto LX;
}
$dA .= sprintf("%02x", ord($u3[$H7]));
iV:
$H7++;
goto xT;
LX:
return $dA;
}
public static function generateRandomBytes($lj, $ST = TRUE)
{
return openssl_random_pseudo_bytes($lj);
}
public static function insertSignature(XMLSecurityKey $fy, array $JY, DOMElement $fe = NULL, DOMNode $Zd = NULL)
{
$h0 = new XMLSecurityDSig();
$h0->setCanonicalMethod(XMLSecurityDSig::EXC_C14N);
switch ($fy->type) {
case XMLSecurityKey::RSA_SHA256:
$a8 = XMLSecurityDSig::SHA256;
goto lP;
case XMLSecurityKey::RSA_SHA384:
$a8 = XMLSecurityDSig::SHA384;
goto lP;
case XMLSecurityKey::RSA_SHA512:
$a8 = XMLSecurityDSig::SHA512;
goto lP;
default:
$a8 = XMLSecurityDSig::SHA1;
}
uB:
lP:
$h0->addReferenceList(array($fe), $a8, array("http://www.w3.org/2000/09/xmldsig#enveloped-signature", XMLSecurityDSig::EXC_C14N), array("id_name" => "ID", "overwrite" => FALSE));
$h0->sign($fy);
foreach ($JY as $Ii) {
$h0->add509Cert($Ii, TRUE);
YO:
}
tv:
$h0->insertSignature($fe, $Zd);
}
public static function postSAMLRequest($ff, $CG, $U_)
{
echo "<html><head><script src='https://code.jquery.com/jquery-1.11.3.min.js'></script><script type="text/javascript">$(function(){document.forms['saml-request-form'].submit();});</script></head><body>Please wait...<form action="" . $ff . "" method="post" id="saml-request-form"><input type="hidden" name="SAMLRequest" value="" . $CG . "" /><input type="hidden" name="RelayState" value="" . htmlentities($U_) . "" /></form></body></html>";
exit;
}
public static function createAuthnRequest($EA, $Fs, $qy, $zU, $S5, $ZW = "false")
{
$cv = "<?xml version="1.0" encoding="UTF-8"?>" . "<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="" . self::generateID() . "" Version="2.0" IssueInstant="" . self::generateTimestamp() . """;
if (!($ZW == "true")) {
goto Ir;
}
$cv .= " ForceAuthn="true"";
Ir:
$cv .= " ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="" . $EA . "" Destination="" . $zU . ""><saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">" . $Fs . "</saml:Issuer><samlp:NameIDPolicy AllowCreate="true" Format="" . $qy . ""
/></samlp:AuthnRequest>";
if (!(empty($S5) || $S5 == "HTTP-Redirect")) {
goto HY;
}
$pP = gzdeflate($cv);
$QI = base64_encode($pP);
$wo = urlencode($QI);
$cv = $wo;
HY:
return $cv;
}
public static function createSAMLRequest($EA, $Fs, $zU, $qy, $ZW = "false")
{
$cv = "<?xml version="1.0" encoding="UTF-8"?>" . "<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns="urn:oasis:names:tc:SAML:2.0:assertion" ID="" . self::generateID() . "" Version="2.0" IssueInstant="" . self::generateTimestamp() . """;
if (!($ZW == "true")) {
goto K7;
}
$cv .= " ForceAuthn="true"";
K7:
$cv .= " ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="" . $EA . "" Destination="" . htmlspecialchars($zU) . ""><saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">" . $Fs . "</saml:Issuer><samlp:NameIDPolicy AllowCreate="true" Format="" . $qy . ""/></samlp:AuthnRequest>";
return $cv;
}
public static function signXML($Rq, $w5, $jW, $pB = '')
{
$TB = array("type" => "private");
$fy = new XMLSecurityKey(XMLSecurityKey::RSA_SHA256, $TB);
$fy->loadKey($jW, FALSE);
$dX = new DOMDocument();
$dX->loadXML($Rq);
$dC = $dX->firstChild;
if (!empty($pB)) {
goto XJ;
}
self::insertSignature($fy, array($w5), $dC);
goto U2;
XJ:
$Gw = $dX->getElementsByTagName($pB)->item(0);
self::insertSignature($fy, array($w5), $dC, $Gw);
U2:
$eq = $dC->ownerDocument->saveXML($dC);
$n4 = base64_encode($eq);
return $n4;
}
public static function generateTimestamp($DE = NULL)
{
if (!($DE === NULL)) {
goto Ti;
}
$DE = time();
Ti:
return gmdate("Y-m-d\TH:i:s\Z", $DE);
}
public static function xpQuery(DOMNode $OX, $Au)
{
static $Ei = NULL;
if ($OX instanceof DOMDocument) {
goto AV;
}
$WI = $OX->ownerDocument;
goto Sh;
AV:
$WI = $OX;
Sh:
if (!($Ei === NULL || !$Ei->document->isSameNode($WI))) {
goto Lb;
}
$Ei = new DOMXPath($WI);
$Ei->registerNamespace("soap-env", "http://schemas.xmlsoap.org/soap/envelope/");
$Ei->registerNamespace("saml_protocol", "urn:oasis:names:tc:SAML:2.0:protocol");
$Ei->registerNamespace("saml_assertion", "urn:oasis:names:tc:SAML:2.0:assertion");
$Ei->registerNamespace("saml_metadata", "urn:oasis:names:tc:SAML:2.0:metadata");
$Ei->registerNamespace("ds", "http://www.w3.org/2000/09/xmldsig#");
$Ei->registerNamespace("xenc", "http://www.w3.org/2001/04/xmlenc#");
Lb:
$GU = $Ei->query($Au, $OX);
$dA = array();
$H7 = 0;
Kf:
if (!($H7 < $GU->length)) {
goto cy;
}
$dA[$H7] = $GU->item($H7);
Ap:
$H7++;
goto Kf;
cy:
return $dA;
}
public static function parseNameId(DOMElement $Rq)
{
$dA = array("Value" => trim($Rq->textContent));
foreach (array("NameQualifier", "SPNameQualifier", "Format") as $qi) {
if (!$Rq->hasAttribute($qi)) {
goto Pu;
}
$dA[$qi] = $Rq->getAttribute($qi);
Pu:
wL:
}
nT:
return $dA;
}
public static function xsDateTimeToTimestamp($t4)
{
$iP = array();
$H4 = "/^(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)(?:\.\d+)?Z$/D";
if (!(preg_match($H4, $t4, $iP) == 0)) {
goto a4;
}
echo sprintf("nvalid SAML2 timestamp passed to xsDateTimeToTimestamp: " . xss::filter($t4));
exit;
a4:
$KS = intval($iP[1]);
$CU = intval($iP[2]);
$Jd = intval($iP[3]);
$Y8 = intval($iP[4]);
$mk = intval($iP[5]);
$QC = intval($iP[6]);
$m0 = gmmktime($Y8, $mk, $QC, $CU, $Jd, $KS);
return $m0;
}
public static function extractStrings(DOMElement $Cd, $IQ, $vc)
{
$dA = array();
$OX = $Cd->firstChild;
E2:
if (!($OX !== NULL)) {
goto kq;
}
if (!($OX->namespaceURI !== $IQ || $OX->localName !== $vc)) {
goto Bz;
}
goto co;
Bz:
$dA[] = trim($OX->textContent);
co:
$OX = $OX->nextSibling;
goto E2;
kq:
return $dA;
}
public static function validateElement(DOMElement $fe)
{
$h0 = new XMLSecurityDSig();
$h0->idKeys[] = "ID";
$RC = self::xpQuery($fe, "./ds:Signature");
if (count($RC) === 0) {
goto BL;
}
if (count($RC) > 1) {
goto YH;
}
goto qY;
BL:
return FALSE;
goto qY;
YH:
echo sprintf("XMLSec: more than one signature element in root.");
exit;
qY:
$RC = $RC[0];
$h0->sigNode = $RC;
$h0->canonicalizeSignedInfo();
if ($h0->validateReference()) {
goto gn;
}
echo sprintf("XMLsec: digest validation failed");
exit;
gn:
$jc = FALSE;
foreach ($h0->getValidatedNodes() as $p_) {
if ($p_->isSameNode($fe)) {
goto Tk;
}
if ($fe->parentNode instanceof DOMElement && $p_->isSameNode($fe->ownerDocument)) {
goto uv;
}
goto l3;
Tk:
$jc = TRUE;
goto MI;
goto l3;
uv:
$jc = TRUE;
goto MI;
l3:
sT:
}
MI:
if ($jc) {
goto Kt;
}
echo sprintf("XMLSec: The root element is not signed.");
exit;
Kt:
$JY = array();
foreach (self::xpQuery($RC, "./ds:KeyInfo/ds:X509Data/ds:X509Certificate") as $DX) {
$Qz = trim($DX->textContent);
$Qz = str_replace(array("
", "\xa", "\x9", " "), '', $Qz);
$JY[] = $Qz;
a0:
}
jr:
$dA = array("Signature" => $h0, "Certificates" => $JY);
return $dA;
}
public static function validateSignature(array $aw, XMLSecurityKey $fy)
{
$h0 = $aw["Signature"];
$A4 = self::xpQuery($h0->sigNode, "./ds:SignedInfo/ds:SignatureMethod");
if (!empty($A4)) {
goto PZ;
}
echo sprintf("Missing SignatureMethod element");
exit;
PZ:
$A4 = $A4[0];
if ($A4->hasAttribute("Algorithm")) {
goto jd;
}
echo sprintf("Missing Algorithm-attribute on SignatureMethod element.");
exit;
jd:
$SV = $A4->getAttribute("Algorithm");
if (!($fy->type === XMLSecurityKey::RSA_SHA1 && $SV !== $fy->type)) {
goto Jf;
}
$fy = self::castKey($fy, $SV);
Jf:
if ($h0->verify($fy)) {
goto Y3;
}
echo sprintf("Unable to validate Sgnature");
exit;
Y3:
}
public static function castKey(XMLSecurityKey $fy, $XK, $a8 = "public")
{
if (!($fy->type === $XK)) {
goto yv;
}
return $fy;
yv:
$f8 = openssl_pkey_get_details($fy->key);
if (!($f8 === FALSE)) {
goto lJ;
}
echo sprintf("Unable to get key details from XMLSecurityKey.");
exit;
lJ:
if (isset($f8["key"])) {
goto Zp;
}
echo sprintf("Missing key in public key details.");
exit;
Zp:
$kw = new XMLSecurityKey($XK, array("type" => $a8));
$kw->loadKey($f8["key"]);
return $kw;
}
public static function processResponse($R7, $Ij, $D9, SAML2_Response $v9)
{
$c2 = $D9["Certificates"][0];
$R8 = $v9->getDestination();
if (!($R8 !== NULL && $R8 !== $R7)) {
goto o7;
}
echo sprintf("Destination in response doesn't match the current URL. Destination is "" . xss::filter($R8) . "", current URL is "" . xss::filter($R7) . "".");
exit;
o7:
$ID = self::checkSign($Ij, $D9, $c2);
return $ID;
}
public static function checkSign($Ij, $D9, $c2)
{
$JY = $D9["Certificates"];
if (!(count($JY) === 0)) {
goto eV;
}
return FALSE;
eV:
$Ue = self::findCertificate($Ij, $JY, $c2);
$HH = NULL;
$fy = new XMLSecurityKey(XMLSecurityKey::RSA_SHA1, array("type" => "public"));
$fy->loadKey($Ue);
try {
self::validateSignature($D9, $fy);
return TRUE;
} catch (Exception $Nt) {
$HH = $Nt;
}
if ($HH !== NULL) {
goto hN;
}
return FALSE;
goto vu;
hN:
throw $HH;
vu:
}
private static function findCertificate($nE, $JY, $c2)
{
foreach ($JY as $Y_) {
$fa = strtolower(sha1(base64_decode($Y_)));
if (!($fa == $nE)) {
goto DF;
}
$TX = "-----BEGIN CERTIFICATE-----\xa" . chunk_split($Y_, 64) . "-----END CERTIFICATE-----
";
return $TX;
DF:
Mf:
}
JJ:
if (array_key_exists("RelayState", $_REQUEST) && $_REQUEST["RelayState"] == "testValidate") {
goto RU;
}
echo " <div style="color: #a94442;font-size:14pt; margin-bottom:20px;"><p><b>Error: </b>We could not sign you in. Please contact your Administrator.</p></div>";
goto Sm;
RU:
echo "<div style="font-family:Calibri;padding:0 3%;">";
echo "<div style="color: #a94442;background-color: #f2dede;padding: 15px;margin-bottom: 20px;text-align:center;border:1px solid #E6B3B2;font-size:18pt;"> ERROR</div>
\x9\x9\x9\x9<div style="color: #a94442;font-size:14pt; margin-bottom:20px;"><p><strong>Error: </strong>Unable to find a certificate matching the configured fingerprint.</p>\xa \x9 <p><strong>Possible Cause: </strong>Content of 'X.509 Certificate' field in Service Provider Settings is incorrect</p>
\x9\x9 <p><b>Expected value:</b>" . $c2 . "</p>";
echo str_repeat(" ", 15);
echo "</div>\xa\x9\x9 <div style="margin:3%;display:block;text-align:center;">
\x9 \x9\x9<form action="index.php">\xa \x9 <div style="margin:3%;display:block;text-align:center;"><input style="padding:1%;width:100px;background: #0091CD none repeat scroll 0% 0%;cursor: pointer;font-size:15px;border-width: 1px;border-style: solid;border-radius: 3px;white-space: nowrap;box-sizing: border-box;border-color: #0073AA;box-shadow: 0px 1px 0px rgba(120, 200, 230, 0.6) inset;color: #FFF;"type="button" value="Done" onClick="self.close();"></div>";
Sm:
exit;
}
public static function validateIssuerAndAudience($zQ, $vT, $MQ, $base_url)
{
$Fs = current($zQ->getAssertions())->getIssuer();
$IM = current(current($zQ->getAssertions())->getValidAudiences());
if (strcmp($MQ, $Fs) === 0) {
goto Q2;
}
if (array_key_exists("RelayState", $_REQUEST) && $_REQUEST["RelayState"] == "testValidate") {
goto LR;
}
echo "<div style="color: #a94442;font-size:14pt; margin-bottom:20px;"><p><b>Error: </b>We could not sign you in. Please contact your Administrator.</p></div>";
goto fO;
LR:
echo "<div style="font-family:Calibri;padding:0 3%;">";
echo "<div style="color: #a94442;background-color: #f2dede;padding: 15px;margin-bottom: 20px;text-align:center;border:1px solid #E6B3B2;font-size:18pt;"> ERROR</div>
\x9\x9<div style="color: #a94442;font-size:14pt; margin-bottom:20px;"><p><strong>Error: </strong>Issuer cannot be verified.</p>
\x9 \x9\x9 <p>Please contact your administrator and report the following error:</p>
\x9\x9<p><strong>Possible Cause: </strong>The value in 'IdP Entity ID or Issuer' field in Service Provider Settings is incorrect</p>\xa\x9 \x9\x9 <p><strong>Expected Entity ID: </strong>" . $Fs . "<p>\xa \x9<p><strong>Entity ID Found: </strong>" . $MQ . "</p>
\x9\x9\x9 \x9</div>\xa \x9 \x9<div style="margin:3%;display:block;text-align:center;">\xa \x9\x9<div style="margin:3%;display:block;text-align:center;"><input style="padding:1%;width:100px;background: #0091CD none repeat scroll 0% 0%;cursor: pointer;font-size:15px;border-width: 1px;border-style: solid;border-radius: 3px;white-space: nowrap;box-sizing: border-box;border-color: #0073AA;box-shadow: 0px 1px 0px rgba(120, 200, 230, 0.6) inset;color: #FFF;"type="button" value="Done" onClick="self.close();"></div>";
fO:
exit;
goto O9;
Q2:
if (strcmp($IM, $vT) === 0) {
goto z5;
}
if (array_key_exists("RelayState", $_REQUEST) && $_REQUEST["RelayState"] == "testValidate") {
goto mf;
}
echo "<div style="color: #a94442;font-size:14pt; margin-bottom:20px;"><p><b>Error: </b>We could not sign you in. Please contact your Administrator.</p></div>";
goto Qi;
mf:
echo "<div style="font-family:Calibri;padding:0 3%;">";
echo "<div style="color: #a94442;background-color: #f2dede;padding: 15px;margin-bottom: 20px;text-align:center;border:1px solid #E6B3B2;font-size:18pt;"> ERROR</div>
<div style="color: #a94442;font-size:14pt; margin-bottom:20px;"><p><strong>Error: </strong>Invalid Audience URI.</p>\xa <p>Please contact your administrator and report the following error:</p>
<p><strong>Possible Cause: </strong>The value of 'Audience URI' field on Identity Provider's side is incorrect</p>
<p>Expected one of the Audiences to be: " . $vT . "<p>
</div>\xa <div style="margin:3%;display:block;text-align:center;">\xa <div style="margin:3%;display:block;text-align:center;"><input style="padding:1%;width:100px;background: #0091CD none repeat scroll 0% 0%;cursor: pointer;font-size:15px;border-width: 1px;border-style: solid;border-radius: 3px;white-space: nowrap;box-sizing: border-box;border-color: #0073AA;box-shadow: 0px 1px 0px rgba(120, 200, 230, 0.6) inset;color: #FFF;"type="button" value="Done" onClick="self.close();"></div>";
Qi:
exit;
goto Ef;
z5:
return TRUE;
Ef:
O9:
}
private static function doDecryptElement(DOMElement $tL, XMLSecurityKey $Yy, array &$sB)
{
$g0 = new XMLSecEnc();
$g0->setNode($tL);
$g0->type = $tL->getAttribute("Type");
$mT = $g0->locateKey($tL);
if ($mT) {
goto HW;
}
echo sprintf("Could not locate key algorithm in encrypted data.");
exit;
HW:
$zZ = $g0->locateKeyInfo($mT);
if ($zZ) {
goto dr;
}
echo sprintf("Could not locate <dsig:KeyInfo> for the encrypted key.");
exit;
dr:
$Ie = $Yy->getAlgorithm();
if ($zZ->isEncrypted) {
goto AU;
}
$bh = $mT->getAlgorithm();
if (!($Ie !== $bh)) {
goto Xk;
}
echo sprintf("Algorithm mismatch between input key and key in message. " . "Key was: " . xss::filter(var_export($Ie, TRUE)) . "; message was: " . xss::filter(var_export($bh, TRUE)));
exit;
Xk:
$mT = $Yy;
goto id;
AU:
$X7 = $zZ->getAlgorithm();
if (!in_array($X7, $sB, TRUE)) {
goto BR;
}
echo sprintf("Algorithm disabled: " . xss::filter(var_export($X7, TRUE)));
exit;
BR:
if (!($X7 === XMLSecurityKey::RSA_OAEP_MGF1P && $Ie === XMLSecurityKey::RSA_1_5)) {
goto R3;
}
$Ie = XMLSecurityKey::RSA_OAEP_MGF1P;
R3:
if (!($Ie !== $X7)) {
goto Gz;
}
echo sprintf("Algorithm mismatch between input key and key used to encrypt " . " the symmetric key for the message. Key was: " . xss::filter(var_export($Ie, TRUE)) . "; message was: " . xss::filter(var_export($X7, TRUE)));
exit;
Gz:
$Ll = $zZ->encryptedCtx;
$zZ->key = $Yy->key;
$id = $mT->getSymmetricKeySize();
if (!($id === NULL)) {
goto Dl;
}
echo sprintf("Unknown key size for encryption algorithm: " . xss::filter(var_export($mT->type, TRUE)));
exit;
Dl:
try {
$fy = $Ll->decryptKey($zZ);
if (!(strlen($fy) != $id)) {
goto nu;
}
echo sprintf("Unexpected key size (" . strlen($fy) * 8 . "bits) for encryption algorithm: " . xss::filter(var_export($mT->type, TRUE)));
exit;
nu:
} catch (Exception $Nt) {
$NU = $Ll->getCipherValue();
$hv = openssl_pkey_get_details($zZ->key);
$hv = sha1(serialize($hv), TRUE);
$fy = sha1($NU . $hv, TRUE);
if (strlen($fy) > $id) {
goto qp;
}
if (strlen($fy) < $id) {
goto w9;
}
goto cK;
qp:
$fy = substr($fy, 0, $id);
goto cK;
w9:
$fy = str_pad($fy, $id);
cK:
}
$mT->loadkey($fy);
id:
$XK = $mT->getAlgorithm();
if (!in_array($XK, $sB, TRUE)) {
goto eJ;
}
echo sprintf("Algorithm disabled: " . xss::filter(var_export($XK, TRUE)));
exit;
eJ:
$fq = $g0->decryptNode($mT, FALSE);
$Rq = "<root xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" " . "xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">" . $fq . "</root>";
$fs = new DOMDocument();
if (@$fs->loadXML($Rq)) {
goto Z9;
}
echo sprintf("Failed to parse decrypted XML. Maybe the wrong sharedkey was used?");
throw new Exception("Failed to parse decrypted XML. Maybe the wrong sharedkey was used?");
Z9:
$K9 = $fs->firstChild->firstChild;
if (!($K9 === NULL)) {
goto DL;
}
echo sprintf("Missing encrypted element.");
throw new Exception("Missing encrypted element.");
DL:
if ($K9 instanceof DOMElement) {
goto cG;
}
echo sprintf("Decrypted element was not actually a DOMElement.");
cG:
return $K9;
}
public static function decryptElement(DOMElement $tL, XMLSecurityKey $Yy, array $sB = array(), XMLSecurityKey $El = NULL)
{
try {
return self::doDecryptElement($tL, $Yy, $sB);
} catch (Exception $Nt) {
if (is_null($El)) {
goto kw;
}
try {
return self::doDecryptElement($tL, $El, $sB);
} catch (Exception $Qk) {
}
kw:
echo sprintf("Failed to decrypt XML element.");
exit;
}
}
public static function showErrorMessage($q6, $Kq, $EK)
{
echo "<div style="font-family:Calibri;padding:0 3%;">";
echo "<div style="color: #a94442;background-color: #f2dede;padding: 15px;margin-bottom: 20px;text-align:center;border:1px solid #E6B3B2;font-size:18pt;"> ERROR</div>
<div style="color: #a94442;font-size:14pt; margin-bottom:20px;"><p><strong>Error: </strong>" . xss::filter($q6) . "</p>
<p>" . xss::filter($Kq) . "</p>\xa <p><strong>Possible Cause: </strong>" . xss::filter($EK) . "</p>
</div>
<div style="margin:3%;display:block;text-align:center;"></div>
<div style="margin:3%;display:block;text-align:center;">\xa </div>";
exit;
}
public static function get_mapped_groups($Tn, $Rx)
{
$Uz = array();
if (empty($Rx)) {
goto MJ;
}
$AE = array();
$H7 = 1;
B0:
if (!($H7 < 10)) {
goto JF;
}
$yi = $Tn->get("group" . $H7 . "_map");
$AE[$H7] = explode(";", $yi);
$H7++;
goto B0;
JF:
MJ:
foreach ($Rx as $sX) {
if (empty($sX)) {
goto MC;
}
$H7 = 0;
$x6 = false;
uA:
if (!($H7 < 9 && !$x6)) {
goto FZ;
}
if (!(!empty($AE[$H7]) && in_array($sX, $AE[$H7]))) {
goto Jx;
}
$Uz[] = $Tn->get("group" . $H7);
$x6 = true;
Jx:
$H7++;
goto uA;
FZ:
MC:
e4:
}
fy:
return array_unique($Uz);
}
public static function getEncryptionAlgorithm($OC)
{
switch ($OC) {
case "http://www.w3.org/2001/04/xmlenc#tripledes-cbc":
return XMLSecurityKey::TRIPLEDES_CBC;
goto Jm;
case "http://www.w3.org/2001/04/xmlenc#aes128-cbc":
return XMLSecurityKey::AES128_CBC;
case "http://www.w3.org/2001/04/xmlenc#aes192-cbc":
return XMLSecurityKey::AES192_CBC;
goto Jm;
case "http://www.w3.org/2001/04/xmlenc#aes256-cbc":
return XMLSecurityKey::AES256_CBC;
goto Jm;
case "http://www.w3.org/2001/04/xmlenc#rsa-1_5":
return XMLSecurityKey::RSA_1_5;
goto Jm;
case "http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p":
return XMLSecurityKey::RSA_OAEP_MGF1P;
goto Jm;
case "http://www.w3.org/2000/09/xmldsig#dsa-sha1":
return XMLSecurityKey::DSA_SHA1;
goto Jm;
case "http://www.w3.org/2000/09/xmldsig#rsa-sha1":
return XMLSecurityKey::RSA_SHA1;
goto Jm;
case "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256":
return XMLSecurityKey::RSA_SHA256;
goto Jm;
case "http://www.w3.org/2001/04/xmldsig-more#rsa-sha384":
return XMLSecurityKey::RSA_SHA384;
goto Jm;
case "http://www.w3.org/2001/04/xmldsig-more#rsa-sha512":
return XMLSecurityKey::RSA_SHA512;
goto Jm;
default:
echo sprintf("Invalid Encryption Method: " . xss::filter($OC));
exit;
goto Jm;
}
Rn:
Jm:
}
public static function sanitize_certificate($Ii)
{
$Ii = preg_replace("/[
\xa]+/", '', $Ii);
$Ii = str_replace("-", '', $Ii);
$Ii = str_replace("BEGIN CERTIFICATE", '', $Ii);
$Ii = str_replace("END CERTIFICATE", '', $Ii);
$Ii = str_replace(" ", '', $Ii);
$Ii = chunk_split($Ii, 64, "
\xa");
$Ii = "-----BEGIN CERTIFICATE-----
\xa" . $Ii . "-----END CERTIFICATE-----";
return $Ii;
}
public static function upload_metadata($r_, $A0 = false)
{
if (!empty(\Drupal::config("miniorange_saml.settings")->get("miniorange_saml_idp_name"))) {
goto lX;
}
\Drupal::configFactory()->getEditable("miniorange_saml.settings")->set("miniorange_saml_idp_name", "Identity Provider")->save();
lX:
global $base_url;
$dX = new \DOMDocument();
@$dX->loadXML($r_);
restore_error_handler();
$WS = $dX->firstChild;
if (!empty($WS)) {
goto w1;
}
\Drupal::messenger()->addError(t("Please provide a valid metadata file."));
return;
goto LS;
w1:
$Oy = new MetadataReader($dX);
$ve = $Oy->getIdentityProviders();
if (!empty($ve)) {
goto gx;
}
\Drupal::messenger()->addMessage(t("Please provide a valid metadata file."), "error");
return;
gx:
foreach ($ve as $fy => $ol) {
$L6 = $ol->getLoginURL("HTTP-Redirect");
$FN = $ol->getLogoutURL("HTTP-Redirect");
if (!empty($L6)) {
goto ke;
}
$L6 = $ol->getLoginURL("HTTP-POST");
ke:
$K7 = $ol->getEntityID();
$MO = $ol->getSigningCertificate();
$Q7 = $base_url;
if (!($A0 == true)) {
goto Pp;
}
\Drupal::configFactory()->getEditable("miniorange_saml.settings")->set("miniorange_saml_sp_issuer", $Q7)->save();
\Drupal::configFactory()->getEditable("miniorange_saml.settings")->set("miniorange_saml_idp_login_url", $L6)->save();
Pp:
\Drupal::configFactory()->getEditable("miniorange_saml.settings")->set("miniorange_saml_idp_issuer", $K7)->save();
\Drupal::configFactory()->getEditable("miniorange_saml.settings")->set("miniorange_saml_idp_certificate", $MO[0])->save();
CZ:
}
Ts:
if (!($A0 == true)) {
goto zo;
}
\Drupal::messenger()->addStatus(t("Identity Provider Configuration successfully saved."));
return;
zo:
LS:
}
public static function Print_SAML_Request($q5, $a8)
{
header("Content-Type: text/html");
$WI = new \DOMDocument();
$WI->preserveWhiteSpace = false;
$WI->formatOutput = true;
$WI->loadXML($q5);
if ($a8 == "displaySAMLRequest") {
goto nv;
}
$dn = "SAML Response";
goto sq;
nv:
$dn = "SAML Request";
sq:
$uc = $WI->saveXML();
$EX = htmlentities($uc);
$EX = rtrim($EX);
$Rq = simplexml_load_string($uc);
$a4 = json_encode($Rq);
$cy = json_decode($a4);
$ff = Utilities::getModulePath() . "/css/miniorange_saml.module.css";
$es = Utilities::getModulePath() . "/js/showSAMLResponse.js";
echo "<link rel='stylesheet' id='mo_saml_admin_settings_style-css' href='" . xss::filter($ff) . "' type='text/css' media='all' />\xa <script src="" . xss::filter($es) . ""></script>
\x9<div class="mo-display-logs" ><p type="text" id="SAML_type">" . xss::filter($dn) . "</p></div>
\x9\x9\x9<div type="text" id="SAML_display" class="mo-display-block"><pre class='brush: xml;'>" . xss::filter($EX) . "</pre></div>
\x9 <br>
\x9\x9<div style="margin:3%;display:block;text-align:center;">
\x9\x9 <div style="margin:3%;display:block;text-align:center;" >
</div>\xa \x9\x9<button id="copy" onclick="copyDivToClipboard()" style="padding:1%;width:100px;background: #0091CD none repeat scroll 0% 0%;cursor: pointer;font-size:15px;border-width: 1px;border-style: solid;border-radius: 3px;white-space: nowrap;box-sizing: border-box;border-color: #0073AA;box-shadow: 0px 1px 0px rgba(120, 200, 230, 0.6) inset;color: #FFF;" >Copy</button>
\x9
<button id="dwn-btn" onclick="download()" style="padding:1%;width:100px;background: #0091CD none repeat scroll 0% 0%;cursor: pointer;font-size:15px;border-width: 1px;border-style: solid;border-radius: 3px;white-space: nowrap;box-sizing: border-box;border-color: #0073AA;box-shadow: 0px 1px 0px rgba(120, 200, 230, 0.6) inset;color: #FFF;">Download</button>\xa\x9\x9\x9</div>\xa\x9\x9\x9</div>\xa \x9\x9";
ob_end_flush();
exit;
}
public static function getBaseUrl()
{
global $base_url;
$ff = \Drupal::config("miniorange_saml.settings")->get("miniorange_saml_base_url");
return isset($ff) && !empty($ff) ? $ff : $base_url;
}
public static function getSpIssuer()
{
$Fs = \Drupal::config("miniorange_saml.settings")->get("miniorange_saml_entity_id");
return isset($Fs) && !empty($Fs) ? $Fs : self::getBaseUrl();
}
public static function getSamlRequestPlanName()
{
return "drupal8_miniorange_saml_standard_plan";
}
public static function getSamlRequestPlanType()
{
return "DRUPAL8_SAML_SP_STANDARD_MODULE";
}
public static function mo_add_premium_tag($qt)
{
global $base_url;
$ff = $base_url . "/admin/config/people/miniorange_saml/Licensing";
$Aa = "<a href= "" . $ff . "" style="color: red; font-weight: lighter;">[" . $qt . "]</a>";
return $Aa;
}
public static function mo_get_drupal_core_version()
{
return \DRUPAL::VERSION;
}
public static function mo_add_loggers($xP, $A0, $a8)
{
\Drupal::logger("miniorange_saml")->{$a8}(" CODE:" . $xP . " | " . $A0);
}
public static function mo_save_expiry_details($wj)
{
$YG = isset($wj["licenseExpiry"]) ? date("l, jS F Y g:i A", strtotime($wj["licenseExpiry"])) : "-";
$r3 = isset($wj["supportExpiry"]) ? date("l, jS F Y g:i A", strtotime($wj["supportExpiry"])) : "-";
$T5 = isset($wj["licenseType"]) ? $wj["licenseType"] : "-";
$Tu = isset($wj["licensePlan"]) ? $wj["licensePlan"] : "-";
$v5 = \Drupal::configFactory()->getEditable("miniorange_saml.settings");
$v5->set("miniorange_maintenance_expiry", $YG)->save();
$v5->set("miniorange_support_expiry", $r3)->save();
$v5->set("miniorange_license_type", $T5)->save();
$v5->set("miniorange_license_plan", $Tu)->save();
}
public static function getMetadataValidationTime()
{
$BN = time() + MiniorangeSAMLConstants::TIME_VALID;
return gmdate("Y-m-d\TH:i:s\Z", $BN);
}
public static function getUpgradeURL($YC)
{
$kZ = \Drupal::config("miniorange_saml.settings")->get("miniorange_saml_customer_admin_email");
return "https://login.xecurify.com/moas/login?username=" . $kZ . "&redirectUrl=https://login.xecurify.com/moas/admin/customer/licenserenewals?renewalrequest=" . $YC;
}
public static function getIsLicenseExpired($hn)
{
if (!($hn != null && $hn != "-")) {
goto Zk;
}
$Tt = intval((strtotime($hn) - time()) / (60 * 60 * 24));
$jN = array();
$jN["LicenseGoingToExpire"] = $Tt < 35 ? TRUE : FALSE;
$jN["LicenseAlreadyExpired"] = $Tt < 0 ? TRUE : FALSE;
return $jN;
Zk:
}
public static function getModulePath()
{
return \Drupal::service("module_handler")->getModule("miniorange_saml")->getPath();
}
}
?>
Did this file decode correctly?
Original Code
<?php
namespace Drupal\miniorange_saml;
use DOMElement;
use DOMNode;
use DOMXPath;
use DOMDocument;
use Drupal\Core\Render\Markup;
use Drupal\Component\Utility\Xss;
class Utilities
{
public static function isCustomerRegistered(&$form, $form_state)
{
global $base_url;
$mF = $base_url . "\x2f\x61\x64\x6d\151\156\x2f\x63\x6f\x6e\146\x69\147\57\x70\145\157\x70\154\x65\x2f\155\x69\156\151\x6f\162\x61\x6e\x67\145\137\163\141\155\x6c\x2f\143\165\x73\164\157\x6d\x65\x72\x5f\x73\x65\164\165\160\57";
if (\Drupal::config("\x6d\151\156\x69\x6f\x72\x61\x6e\147\145\x5f\x73\x61\155\154\56\163\x65\x74\164\151\x6e\x67\x73")->get("\x6d\x69\x6e\151\x6f\162\x61\x6e\x67\145\x5f\x73\141\x6d\x6c\137\x63\165\x73\164\157\155\145\x72\x5f\141\144\x6d\151\x6e\137\x65\155\141\151\154") == NULL || \Drupal::config("\155\x69\x6e\x69\x6f\162\141\156\x67\x65\137\x73\x61\x6d\x6c\x2e\163\145\x74\x74\x69\156\x67\163")->get("\155\151\156\x69\157\x72\141\156\x67\x65\137\163\141\x6d\x6c\137\143\165\163\164\157\x6d\145\162\137\151\x64") == NULL || \Drupal::config("\155\x69\x6e\x69\157\x72\141\x6e\x67\145\x5f\x73\x61\x6d\x6c\x2e\x73\145\x74\x74\x69\x6e\x67\163")->get("\x6d\x69\156\x69\157\x72\x61\156\x67\x65\137\163\x61\x6d\154\x5f\x63\165\163\164\157\155\x65\x72\137\141\144\x6d\x69\156\x5f\x74\x6f\153\x65\x6e") == NULL || \Drupal::config("\155\151\156\x69\157\162\141\156\147\x65\137\163\x61\x6d\154\x2e\x73\x65\164\164\151\156\x67\x73")->get("\x6d\x69\156\x69\157\x72\141\156\147\x65\137\163\x61\x6d\154\x5f\143\165\163\164\x6f\155\145\162\x5f\141\160\151\137\x6b\x65\x79") == NULL) {
goto Yh;
}
if (\Drupal::config("\x6d\151\156\151\157\162\141\x6e\x67\145\137\163\141\x6d\154\56\163\145\x74\x74\x69\156\x67\x73")->get("\x6d\151\x6e\x69\x6f\x72\141\x6e\x67\x65\137\x73\x61\x6d\154\x5f\x6c\x69\x63\x65\x6e\163\x65\x5f\x6b\145\171") == NULL) {
goto DW;
}
return FALSE;
goto b2;
DW:
$form["\155\x61\x72\153\x75\x70\x5f\155\x73\147"] = array("\x23\155\141\x72\153\165\160" => "\x3c\x64\151\x76\40\143\x6c\x61\x73\163\75\x22\155\157\137\x73\141\155\154\x5f\162\x65\x67\x69\x73\164\145\162\137\155\x65\163\163\x61\x67\145\x22\x3e\x59\x6f\x75\40\156\x65\x65\x64\x20\x74\157\x20\74\141\40\x68\x72\145\x66\x3d\x22" . $mF . "\42\x20\x3e\x76\145\162\151\146\x79\x20\171\x6f\165\162\x20\x6c\x69\143\x65\x6e\163\145\x3c\57\141\x3e\40\153\x65\171\40\x62\145\x66\157\162\145\40\x75\163\x69\x6e\x67\40\164\x68\151\x73\40\x6d\157\144\x75\154\x65\56\x3c\57\x64\x69\166\x3e");
return TRUE;
b2:
goto nV;
Yh:
$form["\x6d\x61\162\x6b\x75\160\x5f\162\x65\147\x5f\155\x73\147"] = array("\x23\155\x61\162\x6b\165\160" => "\x3c\144\151\166\40\143\154\x61\x73\x73\x3d\42\155\157\x5f\163\141\x6d\x6c\137\x72\x65\147\x69\163\164\x65\x72\x5f\155\145\x73\x73\x61\x67\x65\42\76\x59\x6f\x75\40\x6e\x65\x65\x64\x20\164\157\40\x3c\x61\40\x68\162\145\146\x3d\42" . $mF . "\x22\40\x3e\114\x6f\x67\x69\x6e\74\x2f\x61\76\x20\165\163\x69\156\147\40\x6d\151\x6e\x69\117\x72\141\x6e\147\145\40\141\143\143\157\x75\156\164\x20\x62\145\146\157\162\145\40\165\163\151\156\147\x20\x74\150\151\163\x20\x6d\x6f\x64\165\x6c\145\x2e\74\x2f\x64\151\166\76");
return TRUE;
nV:
}
public static function spConfigGuide(array &$form, \Drupal\Core\Form\FormStateInterface $form_state)
{
$form["\x6d\x69\x6e\x69\157\162\141\156\x67\x65\137\151\144\x70\137\147\165\x69\144\145\137\x6c\151\x6e\x6b"] = array("\x23\x6d\141\162\x6b\165\160" => "\x3c\144\151\166\40\143\x6c\x61\163\163\75\42\x6d\x6f\x5f\163\x61\155\x6c\x5f\164\141\x62\154\x65\x5f\154\141\171\157\x75\164\40\155\157\137\x73\x61\x6d\x6c\x5f\x73\x70\x5f\x63\157\156\x74\x61\151\156\145\x72\x5f\x32\x22\40\151\x64\x3d\x22\155\157\137\147\165\151\x64\x65\137\166\x74\x22\x3e");
$form["\x6d\151\x6e\x69\x6f\x72\141\x6e\147\145\137\x69\x64\160\137\147\x75\151\x64\x65\137\154\151\156\x6b\x31"] = array("\x23\155\x61\x72\153\165\x70" => "\74\x64\151\166\x20\163\x74\x79\x6c\145\x3d\x22\x66\157\156\164\x2d\163\x69\x7a\x65\x3a\40\61\x35\160\170\73\x22\76\x54\x6f\x20\x73\x65\x65\x20\144\x65\x74\141\151\154\x65\x64\x20\144\157\143\165\x6d\x65\156\164\x61\164\151\x6f\156\x20\x6f\x66\40\x68\x6f\x77\x20\x74\157\x20\143\x6f\156\146\151\x67\x75\x72\x65\40\104\162\x75\x70\x61\154\x20\123\101\x4d\x4c\40\123\120\40\x77\151\x74\x68\x20\141\156\171\x20\x49\x64\x65\x6e\164\151\x74\171\x20\120\162\x6f\166\x69\x64\x65\162\74\57\x64\x69\x76\x3e\74\57\x62\x72\76");
$KR = Markup::create("\74\163\x74\x72\x6f\156\147\76\74\x61\x20\150\x72\x65\146\x3d\42\150\x74\164\160\163\72\57\57\160\x6c\165\x67\x69\x6e\163\56\x6d\151\156\151\x6f\162\x61\156\147\x65\56\143\x6f\155\57\144\x72\x75\160\x61\x6c\x2d\163\x69\156\x67\x6c\x65\55\x73\x69\147\156\x2d\x73\163\157\55\165\x73\151\156\147\x2d\141\x7a\x75\x72\x65\x2d\141\x64\55\x69\x64\x70\x2f\42\x20\x63\x6c\x61\x73\x73\75\x22\155\157\137\147\165\151\144\x65\137\x74\x65\170\164\55\x63\x6f\154\x6f\x72\42\40\x74\x61\x72\147\x65\164\75\x22\x5f\142\154\141\156\153\x22\76\x41\172\165\x72\145\x20\101\x44\74\x2f\x61\76\x3c\57\163\164\162\x6f\x6e\147\76");
$LI = Markup::create("\x3c\163\164\x72\x6f\156\147\x3e\x3c\141\40\150\162\x65\x66\x3d\42\x68\164\x74\x70\163\72\x2f\57\160\154\165\x67\151\156\x73\56\155\151\x6e\x69\x6f\162\x61\156\x67\x65\x2e\143\x6f\155\x2f\144\162\165\160\141\154\x2d\163\151\x6e\147\x6c\x65\x2d\x73\x69\x67\156\55\x73\163\x6f\55\x75\x73\x69\x6e\x67\55\x61\144\x66\x73\55\151\144\x70\x22\x20\143\154\x61\x73\163\75\x22\x6d\157\x5f\x67\165\151\x64\145\x5f\164\145\x78\164\x2d\x63\x6f\154\157\162\x22\x20\164\x61\162\147\x65\x74\75\x22\137\x62\x6c\x61\156\153\42\x3e\101\x44\x46\123\x3c\57\141\76\x3c\x2f\x73\x74\x72\157\x6e\x67\x3e");
$ss = Markup::create("\x3c\x73\x74\162\x6f\x6e\147\76\74\141\x20\x63\154\x61\x73\163\75\x22\x6d\157\137\147\x75\x69\x64\145\x5f\x74\145\170\164\x2d\143\157\154\x6f\162\x22\40\x68\x72\x65\146\x3d\x22\150\x74\x74\160\163\72\57\57\x70\x6c\x75\x67\x69\x6e\x73\x2e\x6d\x69\156\x69\x6f\162\141\x6e\147\145\56\143\157\x6d\x2f\x64\x72\x75\160\x61\154\55\163\151\156\x67\154\145\x2d\163\x69\x67\156\x2d\x73\163\157\x2d\x75\x73\151\x6e\x67\x2d\x6f\x6b\164\x61\55\151\x64\160\x2f\42\40\x74\x61\x72\147\145\x74\x3d\x22\137\x62\x6c\x61\156\153\42\x3e\x4f\x6b\x74\x61\74\x2f\x61\76\x3c\x2f\163\x74\162\157\156\147\x3e");
$x1 = Markup::create("\74\x73\164\162\157\x6e\147\76\74\x61\40\x68\x72\145\x66\75\x22\x68\x74\164\x70\163\x3a\57\x2f\160\x6c\x75\147\x69\x6e\x73\x2e\155\x69\156\x69\x6f\x72\x61\x6e\147\145\56\x63\x6f\x6d\x2f\x64\162\x75\160\141\x6c\55\x73\151\156\x67\x6c\x65\55\x73\151\x67\156\x2d\x73\163\157\55\x75\163\151\x6e\x67\55\x67\x6f\x6f\147\154\x65\55\x61\160\160\x73\x2d\151\x64\x70\x2f\x22\40\143\x6c\141\x73\163\75\42\155\157\x5f\x67\165\x69\144\x65\x5f\164\x65\170\164\x2d\x63\157\154\157\x72\x22\x20\x74\141\162\x67\145\x74\x3d\x22\137\x62\x6c\141\156\x6b\x22\76\x47\x6f\157\147\154\x65\x20\x41\x70\160\x73\74\57\141\x3e\x3c\x2f\x73\164\x72\x6f\x6e\147\x3e");
$SC = Markup::create("\x3c\163\164\162\x6f\x6e\147\76\x3c\141\40\150\162\x65\x66\75\42\x68\x74\x74\160\163\72\x2f\x2f\160\x6c\165\147\151\156\x73\56\x6d\x69\x6e\151\157\162\x61\x6e\x67\145\56\x63\x6f\155\x2f\144\x72\x75\x70\x61\154\x2d\163\151\156\147\154\x65\x2d\163\151\x67\x6e\x2d\x73\x73\x6f\55\x75\x73\x69\x6e\x67\x2d\x73\x61\x6c\x65\x73\146\157\x72\x63\145\55\x69\x64\x70\x2f\42\x20\x63\154\141\163\x73\x3d\42\x6d\157\x5f\147\165\x69\144\x65\x5f\x74\x65\x78\164\55\143\157\154\157\x72\42\x20\164\141\x72\147\x65\x74\75\x22\137\142\154\141\x6e\153\x22\x3e\x53\x61\154\145\163\x66\x6f\162\x63\145\74\x2f\x61\x3e\74\57\x73\164\x72\x6f\156\x67\76");
$KN = Markup::create("\74\163\x74\x72\157\x6e\147\76\x3c\141\x20\x63\154\141\163\x73\75\42\x6d\157\x5f\x67\x75\151\144\145\137\x74\145\x78\x74\55\x63\x6f\x6c\x6f\162\x22\x20\x68\162\x65\x66\x3d\x22\150\164\x74\x70\163\x3a\x2f\x2f\x70\154\165\147\151\156\163\x2e\155\151\x6e\x69\157\x72\x61\156\147\145\x2e\x63\157\155\57\x64\162\165\x70\x61\154\x2d\x73\151\156\x67\x6c\145\55\x73\151\x67\x6e\55\163\x73\x6f\x2d\x75\x73\151\x6e\147\55\x6d\151\x6e\x69\x6f\x72\x61\x6e\147\x65\x2d\x69\x64\x70\x2f\42\x20\164\141\x72\147\145\x74\75\42\x5f\142\x6c\141\156\153\x22\76\155\x69\156\151\117\x72\x61\156\147\x65\x3c\57\141\x3e\74\57\x73\x74\162\x6f\x6e\147\x3e");
$YA = Markup::create("\74\163\x74\162\x6f\x6e\147\76\74\141\x20\x63\x6c\141\163\x73\75\42\155\157\x5f\147\x75\x69\x64\145\x5f\x74\x65\170\164\55\143\x6f\x6c\157\162\42\40\x68\162\145\x66\75\42\150\x74\164\x70\x73\x3a\57\x2f\160\154\x75\147\x69\156\163\56\x6d\x69\x6e\x69\157\x72\141\156\x67\145\56\143\157\x6d\x2f\147\165\x69\144\x65\55\146\157\162\55\144\162\165\x70\141\x6c\x2d\x73\x69\156\147\154\x65\x2d\163\x69\147\x6e\x2d\157\156\55\x75\163\151\x6e\147\x2d\x70\151\x6e\x67\x6f\156\145\x2d\x61\x73\x2d\x69\x64\x65\x6e\164\x69\x74\171\x2d\160\162\x6f\166\x69\144\x65\162\42\40\164\141\162\147\145\x74\x3d\x22\x5f\142\154\141\156\153\x22\x3e\120\151\156\147\x4f\x6e\145\x3c\57\141\x3e\74\57\x73\x74\x72\157\156\147\x3e");
$cF = Markup::create("\74\163\x74\x72\x6f\x6e\x67\x3e\74\x61\x20\150\162\x65\146\x3d\x22\x68\x74\x74\160\x73\x3a\x2f\57\x70\x6c\x75\147\151\x6e\x73\x2e\155\x69\x6e\151\x6f\162\x61\156\x67\x65\x2e\143\157\x6d\57\144\162\165\x70\x61\x6c\x2d\x73\151\156\x67\154\145\55\163\x69\147\x6e\x2d\163\x73\157\55\x75\x73\x69\x6e\x67\x2d\157\x6e\x65\154\157\x67\151\x6e\55\x69\144\x70\x2f\42\x20\143\154\141\x73\x73\x3d\42\155\157\x5f\147\165\151\144\145\x5f\164\x65\x78\164\55\x63\157\154\157\162\42\40\x74\x61\162\147\x65\x74\75\x22\x5f\x62\154\x61\156\x6b\x22\x3e\117\156\145\154\x6f\x67\151\156\74\x2f\x61\x3e\74\x2f\163\x74\162\x6f\156\147\76");
$ja = Markup::create("\x3c\x73\164\162\157\156\147\76\x3c\141\x20\150\162\145\x66\75\x22\150\x74\x74\160\x73\72\x2f\x2f\160\x6c\165\x67\151\156\x73\56\x6d\151\156\x69\x6f\x72\x61\156\x67\145\x2e\x63\157\155\57\144\x72\165\x70\x61\154\55\163\x69\156\147\154\145\55\163\x69\x67\x6e\x2d\x73\x73\x6f\55\x75\x73\x69\156\x67\x2d\142\x69\x74\x69\165\155\x2d\151\144\160\x22\x20\143\x6c\x61\163\163\75\42\x6d\x6f\137\147\165\x69\144\x65\137\x74\x65\x78\x74\55\x63\157\154\157\162\x22\x20\164\141\162\x67\x65\x74\75\42\137\x62\x6c\x61\x6e\x6b\x22\76\x42\x69\x74\151\x75\155\74\57\x61\76\74\x2f\163\164\x72\157\x6e\x67\76");
$fQ = Markup::create("\x3c\163\x74\162\x6f\156\147\76\74\x61\x20\x68\162\145\146\75\x22\x68\164\164\160\163\x3a\57\x2f\x70\154\x75\147\151\x6e\x73\x2e\x6d\151\x6e\x69\157\162\141\156\x67\145\x2e\143\x6f\x6d\57\x64\162\x75\160\x61\154\55\163\x69\156\x67\x6c\x65\55\x73\x69\x67\156\55\163\163\x6f\x2d\x75\163\151\156\x67\x2d\x63\x65\x6e\x74\162\x69\146\x79\x2d\151\x64\160\x2f\x22\40\143\154\x61\163\163\x3d\x22\x6d\157\x5f\x67\165\x69\x64\x65\137\x74\145\170\x74\x2d\x63\157\x6c\157\162\42\x20\x74\141\x72\x67\x65\x74\75\x22\137\x62\x6c\x61\156\153\42\x3e\103\x65\156\164\162\x69\146\171\74\57\141\x3e\x3c\57\163\x74\162\x6f\x6e\147\x3e");
$wd = Markup::create("\74\163\164\162\157\x6e\x67\x3e\x3c\x61\40\150\x72\x65\x66\75\x22\150\164\x74\x70\x73\72\x2f\57\160\x6c\165\x67\x69\156\x73\x2e\x6d\151\x6e\151\157\x72\141\156\x67\x65\x2e\x63\x6f\x6d\x2f\x67\165\151\144\145\x2d\x74\157\x2d\x63\x6f\156\146\151\147\165\x72\x65\55\157\x72\141\143\154\145\55\141\143\143\x65\x73\163\55\155\x61\156\141\147\x65\x72\55\x61\x73\55\x69\144\x70\55\141\x6e\x64\55\x64\x72\x75\160\141\154\55\141\163\55\x73\160\x22\x20\x63\154\x61\163\163\x3d\42\155\x6f\137\147\165\x69\144\x65\x5f\164\145\x78\x74\x2d\143\x6f\154\x6f\162\42\40\x74\x61\162\147\x65\x74\x3d\x22\137\142\154\141\156\153\42\76\x4f\162\141\x63\154\145\x3c\57\x61\x3e\x3c\57\163\x74\162\157\156\x67\x3e");
$sp = Markup::create("\x3c\x73\164\x72\157\x6e\147\76\x3c\141\x20\150\x72\x65\146\75\x22\x68\164\x74\x70\163\x3a\x2f\x2f\x70\x6c\165\147\151\x6e\163\x2e\x6d\151\156\x69\x6f\162\x61\156\147\145\56\x63\x6f\x6d\57\x64\x72\165\x70\141\154\x2d\163\151\x6e\147\x6c\145\x2d\163\x69\147\156\x2d\157\x6e\55\163\x73\x6f\x2d\x75\x73\151\156\x67\55\x6a\x62\157\163\163\x2d\x6b\145\x79\143\x6c\157\141\153\55\141\163\55\x69\x64\160\x22\40\x63\x6c\x61\163\x73\x3d\42\x6d\157\x5f\x67\x75\x69\x64\x65\137\164\145\170\x74\x2d\x63\x6f\154\157\162\x22\x20\x74\x61\x72\x67\x65\164\x3d\42\x5f\x62\154\141\156\x6b\x22\76\112\142\x6f\163\x73\40\x4b\145\171\143\154\x6f\x61\153\74\57\x61\76\74\x2f\x73\x74\162\x6f\x6e\147\76");
$hp = Markup::create("\74\x73\164\162\x6f\156\147\76\74\141\x20\150\162\145\146\x3d\42\150\x74\164\160\163\x3a\57\x2f\160\154\x75\x67\x69\x6e\163\56\x6d\x69\x6e\151\157\x72\141\156\x67\x65\x2e\143\157\x6d\57\x67\165\151\x64\x65\x2d\x66\x6f\162\55\x70\151\x6e\x67\146\145\x64\x65\x72\141\x74\145\x2d\x61\x73\x2d\151\x64\x70\x2d\167\x69\164\150\55\x64\x72\x75\160\x61\154\x22\40\143\x6c\x61\x73\x73\75\42\x6d\157\137\147\x75\151\x64\145\137\x74\x65\170\x74\x2d\143\x6f\x6c\157\162\42\40\x74\x61\162\147\x65\164\75\x22\x5f\x62\154\141\x6e\153\42\76\x50\151\156\147\40\106\145\144\145\x72\141\x74\x65\74\x2f\141\x3e\74\x2f\x73\164\x72\157\x6e\147\x3e");
$Ds = Markup::create("\74\163\164\162\157\156\x67\x3e\x3c\x61\40\x68\x72\x65\x66\75\42\150\164\164\160\163\x3a\x2f\x2f\160\154\x75\147\x69\156\x73\x2e\x6d\151\156\x69\x6f\162\x61\156\147\x65\x2e\x63\x6f\155\x2f\x67\165\x69\144\x65\x2d\x66\x6f\x72\55\x6f\x70\x65\x6e\x61\155\55\x61\163\x2d\x69\x64\x70\x2d\x77\151\164\150\55\144\x72\165\x70\141\154\42\40\143\x6c\x61\163\x73\x3d\42\155\157\x5f\x67\x75\x69\x64\x65\x5f\x74\x65\170\164\x2d\x63\x6f\x6c\x6f\162\x22\40\164\141\x72\147\x65\x74\x3d\x22\137\142\154\141\x6e\153\42\x3e\x4f\160\x65\156\x41\x4d\x3c\57\x61\76\74\57\163\x74\x72\x6f\156\147\76");
$bO = Markup::create("\74\x73\x74\x72\x6f\x6e\x67\76\x3c\141\40\150\162\x65\x66\x3d\42\150\164\x74\x70\x73\72\x2f\57\160\x6c\x75\x67\151\x6e\163\56\155\151\x6e\151\157\x72\141\156\147\145\56\143\157\155\57\144\x72\x75\160\141\x6c\55\x73\151\x6e\147\154\145\x2d\x73\151\147\x6e\55\157\156\55\x73\x73\157\55\165\163\151\156\x67\x2d\141\x75\164\150\141\x6e\166\151\154\55\x61\x73\55\151\x64\160\x22\40\143\x6c\x61\x73\163\75\42\x6d\x6f\x5f\x67\x75\151\x64\145\137\x74\x65\x78\164\x2d\x63\x6f\154\x6f\x72\x22\40\164\x61\x72\147\x65\164\75\x22\137\x62\x6c\x61\156\x6b\42\x3e\101\x75\164\150\101\156\x76\151\x6c\74\x2f\141\76\74\x2f\x73\164\162\157\156\x67\x3e");
$pZ = Markup::create("\74\163\164\x72\x6f\156\147\x3e\74\141\x20\x68\162\145\x66\x3d\x22\150\164\x74\x70\163\72\x2f\57\x70\154\x75\147\151\x6e\x73\x2e\155\151\156\151\157\x72\x61\x6e\147\x65\56\x63\157\x6d\x2f\147\165\x69\144\145\x2d\146\x6f\x72\x2d\141\x75\164\150\x30\x2d\x61\163\x2d\151\144\x70\x2d\x77\x69\x74\150\55\x64\162\x75\x70\141\x6c\42\x20\143\x6c\x61\163\163\75\42\x6d\x6f\137\147\x75\x69\x64\x65\x5f\164\145\170\164\55\143\157\x6c\x6f\162\42\x20\x74\141\x72\x67\x65\164\75\x22\137\x62\x6c\x61\156\153\x22\x3e\141\165\x74\x68\x30\x3c\x2f\141\76\74\x2f\163\164\162\157\x6e\147\x3e");
$rn = Markup::create("\74\163\164\x72\157\156\147\76\x3c\141\40\150\162\145\x66\75\x22\150\164\x74\x70\x73\x3a\x2f\57\160\x6c\165\147\151\x6e\163\56\x6d\x69\x6e\151\x6f\x72\x61\x6e\x67\145\x2e\143\x6f\155\x2f\x67\x75\151\144\145\x2d\x66\x6f\162\55\x64\x72\165\x70\x61\154\55\163\151\x6e\x67\x6c\x65\x2d\x73\x69\147\156\x2d\x6f\156\x2d\163\163\x6f\x2d\165\x73\151\156\x67\55\162\x73\141\x2d\x73\145\x63\x75\162\x69\144\x2d\141\x73\x2d\x69\144\x70\42\x20\x63\x6c\x61\x73\x73\75\x22\x6d\x6f\x5f\147\165\151\144\x65\137\164\x65\170\x74\x2d\143\x6f\x6c\157\x72\42\x20\x74\x61\x72\147\145\164\x3d\x22\x5f\x62\x6c\141\x6e\153\x22\x3e\122\123\x41\40\123\145\143\165\x72\111\x44\74\57\x61\76\x3c\x2f\x73\164\162\x6f\156\147\x3e");
$T4 = Markup::create("\x3c\x73\x74\162\x6f\x6e\x67\x3e\x3c\141\x20\150\162\x65\x66\x3d\x22\150\164\164\x70\x73\72\57\57\160\154\165\147\151\156\x73\x2e\155\151\x6e\151\x6f\162\141\156\x67\x65\x2e\143\x6f\155\57\143\x6f\x6e\x66\151\147\165\x72\145\55\x64\x72\x75\160\x61\x6c\x2d\163\141\x6d\x6c\x2d\163\x69\x6e\147\154\145\x2d\x73\x69\x67\156\55\x6f\x6e\x22\x20\x63\x6c\x61\x73\x73\75\x22\x6d\x6f\137\147\165\x69\144\145\137\164\145\170\x74\x2d\143\x6f\x6c\157\162\42\x20\164\x61\162\147\145\x74\x3d\42\137\x62\x6c\141\x6e\153\x22\76\117\x74\150\145\x72\x20\111\x44\120\x3c\57\141\x3e\74\57\163\164\x72\x6f\156\x67\76");
$Ru = array(array($KR, $LI), array($ss, $x1), array($SC, $cF), array($wd, $sp), array($fQ, $YA), array($hp, $Ds), array($bO, $pZ), array($KN, $rn));
$ij = array(array("\x64\x61\x74\141" => t("\111\144\145\156\x74\x69\164\x79\40\120\162\x6f\x76\151\x64\145\x72\40\x53\145\x74\165\160\40\x47\165\x69\144\145\x73"), "\x63\157\154\x73\x70\141\x6e" => 2, "\x73\x74\x79\154\145" => "\x74\x65\x78\164\55\x61\x6c\151\x67\156\x3a\x20\x63\x65\156\x74\145\162"));
$form["\155\157\x64\x75\x6c\145\163"] = array("\x23\x74\171\x70\145" => "\x74\x61\x62\x6c\145", "\43\x68\x65\x61\144\145\162" => $ij, "\x23\x72\157\x77\x73" => $Ru, "\43\141\x74\164\x72\x69\142\x75\164\145\x73" => ["\143\x6c\141\163\x73" => ["\155\157\x5f\x67\165\151\x64\x65\x5f\164\x61\x62\154\x65"]]);
$form["\155\x6f\x64\x75\154\145\163"][8][0] = ["\43\155\141\x72\x6b\x75\160" => $T4, "\43\167\x72\x61\x70\x70\x65\162\x5f\141\x74\x74\x72\x69\x62\165\x74\x65\163" => ["\x63\x6f\x6c\x73\160\x61\x6e" => 2]];
self::faq($form, $form_state);
$form["\155\x69\x6e\x69\x6f\162\141\x6e\147\x65\x5f\x73\x70\137\147\165\151\x64\x65\x5f\154\x69\x6e\x6b\x5f\145\156\144"] = array("\x23\155\141\x72\x6b\165\160" => "\x3c\x2f\x64\x69\166\x3e");
}
public static function faq(&$form, &$form_state)
{
$form["\x6d\151\x6e\x69\x6f\x72\x61\156\147\x65\137\x66\x61\x71"] = array("\43\155\x61\x72\x6b\x75\160" => "\74\144\x69\x76\40\143\x6c\x61\163\163\75\x22\155\x6f\x5f\x67\165\151\x64\145\x5f\x74\x65\170\x74\x2d\143\x65\x6e\164\145\x72\42\x3e\x3c\x62\76\x3c\x2f\142\76\12\40\40\40\40\40\40\40\40\x20\40\x20\40\40\x20\x20\40\x20\40\x20\x20\40\x20\x20\x20\x20\40\40\40\x3c\x61\40\x63\154\x61\163\163\x3d\x22\142\165\164\x74\x6f\x6e\x20\x62\x75\164\164\157\156\55\x2d\x70\x72\151\x6d\x61\162\x79\x20\x62\165\x74\x74\x6f\x6e\x2d\x2d\x73\x6d\141\x6c\x6c\42\40\x68\x72\x65\x66\75\42\150\164\164\x70\163\72\x2f\x2f\146\x61\x71\x2e\x6d\x69\156\151\157\x72\x61\x6e\x67\x65\56\143\157\x6d\57\153\142\x2f\x64\162\x75\x70\x61\x6c\x2f\163\x61\x6d\x6c\55\144\x72\165\160\141\154\57\x22\x20\x74\141\162\147\x65\164\x3d\x22\x5f\x62\x6c\141\156\x6b\42\76\x46\x41\x51\163\x3c\57\141\x3e\12\40\x20\40\40\x20\x20\x20\40\40\x20\x20\40\x20\40\x20\x20\x20\40\40\x20\40\40\40\x20\x20\x20\x20\x20\74\x62\76\74\x2f\142\76\74\x61\x20\143\x6c\141\x73\163\x3d\42\x62\x75\x74\164\x6f\156\40\142\165\x74\164\157\x6e\55\55\160\x72\x69\155\141\x72\x79\x20\142\165\x74\x74\157\x6e\55\55\x73\155\141\x6c\154\x22\x20\x68\x72\x65\146\75\42\150\x74\164\160\x73\x3a\57\57\x66\x6f\162\x75\155\x2e\155\151\x6e\151\x6f\162\x61\x6e\x67\x65\56\143\157\155\57\x22\x20\x74\x61\x72\147\145\x74\75\42\137\142\x6c\x61\156\x6b\42\x3e\x41\163\x6b\x20\x71\x75\145\x73\x74\x69\x6f\x6e\163\40\157\x6e\x20\x66\x6f\x72\x75\x6d\x3c\57\x61\x3e\12\x20\40\x20\40\x20\40\x20\x20\40\x20\40\40\40\x20\x20\40\x20\40\40\x20\x20\x20\x20\40\40\40\74\57\x64\x69\x76\76");
}
public static function send_support_query($Nx, $nL, $Au, $hb)
{
$aI = new MiniorangeSamlSupport($Nx, $nL, $Au, $hb);
$Zo = $aI->sendSupportQuery();
if ($Zo) {
goto Bv;
}
return false;
goto ga;
Bv:
return true;
ga:
}
public static function getClassNameForImport_Export()
{
$CN = array("\111\144\145\x6e\164\x69\x74\171\137\x50\162\x6f\166\x69\x64\x65\162" => "\x6d\157\x5f\x6f\x70\x74\151\x6f\156\163\137\x65\x6e\x75\155\137\x69\x64\x65\x6e\x74\x69\164\171\137\160\x72\157\x76\151\144\145\162", "\x53\x65\162\x76\x69\x63\x65\137\120\162\157\166\x69\x64\145\162" => "\x6d\x6f\137\x6f\x70\164\151\x6f\x6e\163\x5f\145\x6e\x75\155\x5f\163\x65\162\x76\151\x63\145\x5f\x70\162\157\166\151\144\x65\162", "\x53\151\x67\156\x69\156\x5f\123\145\164\164\x69\156\147\163" => "\155\157\x5f\157\160\x74\x69\x6f\156\x73\137\145\156\165\x6d\x5f\x73\151\147\156\151\156\x5f\163\145\164\x74\151\156\x67\x73", "\x4d\x61\160\x70\x69\x6e\x67" => "\155\x6f\x5f\157\x70\164\x69\157\x6e\163\137\x65\x6e\x75\x6d\137\155\141\x70\160\151\156\x67");
return $CN;
}
public static function getVariableArrayForImport_Export($i4)
{
if ($i4 == "\x6d\x6f\137\x6f\160\x74\x69\157\156\163\137\x65\x6e\x75\155\x5f\151\144\145\x6e\164\x69\x74\x79\137\160\x72\x6f\166\x69\144\145\162") {
goto rp;
}
if ($i4 == "\x6d\x6f\x5f\157\x70\164\x69\x6f\156\x73\137\145\x6e\x75\x6d\x5f\163\x65\162\x76\151\x63\x65\137\160\x72\x6f\166\151\144\x65\162") {
goto NI;
}
if ($i4 == "\155\157\137\157\160\164\151\157\156\x73\137\x65\x6e\x75\155\x5f\163\151\147\156\151\156\x5f\x73\145\164\164\151\156\147\x73") {
goto Zl;
}
if (!($i4 == "\x6d\x6f\x5f\157\160\x74\x69\x6f\x6e\x73\x5f\x65\156\165\x6d\x5f\155\141\x70\160\x69\x6e\147")) {
goto Ya;
}
$Bl = array("\x55\x73\145\x72\x6e\x61\x6d\x65\137\141\164\x74\162\x69\142\165\x74\145" => "\x6d\151\x6e\x69\157\162\141\x6e\x67\145\137\x73\141\155\154\x5f\x75\x73\145\162\x6e\141\155\x65\x5f\141\164\x74\x72\151\142\x75\164\145", "\105\155\x61\x69\x6c\x5f\141\x61\x74\162\151\x62\165\x74\x65" => "\155\151\x6e\x69\x6f\162\141\156\x67\145\137\x73\141\x6d\154\x5f\x65\x6d\x61\151\x6c\x5f\141\x74\x74\x72\151\142\x75\x74\145", "\105\156\141\142\x6c\x65\137\122\x6f\154\145\x5f\155\x61\141\x70\151\x6e\147" => "\x6d\x69\x6e\x69\x6f\x72\x61\x6e\x67\x65\137\163\x61\155\154\137\x65\x6e\x61\142\154\x65\x5f\x72\x6f\154\145\x6d\x61\160\x70\151\x6e\147", "\104\x65\x66\x61\x75\x6c\x74\x5f\x67\162\x6f\x75\160\137\146\157\162\137\x6e\145\167\137\x75\x73\x65\x72\x73" => "\x6d\151\156\x69\x6f\162\141\156\x67\145\137\x73\141\x6d\x6c\x5f\x64\145\146\141\165\x6c\164\137\x72\157\x6c\145");
Ya:
goto Ce;
Zl:
$Bl = array("\101\165\164\157\x5f\143\x74\145\141\164\x69\157\156\137\165\x73\145\x72" => "\x6d\x69\156\151\157\162\141\156\147\145\x5f\x73\x61\155\154\137\x64\x69\163\x61\x62\x6c\145\137\141\165\x74\157\x63\x72\145\141\164\145\x5f\x75\x73\145\162\x73", "\x50\162\157\x74\x65\x63\164\137\167\150\x6f\x6c\145\x5f\x73\x69\x74\145" => "\155\x69\x6e\x69\x6f\x72\141\156\147\x65\137\x73\x61\x6d\154\x5f\x66\x6f\162\x63\x65\137\x61\165\164\x68", "\x41\x75\x74\x6f\137\162\145\144\151\x72\x65\x63\164" => "\155\x69\x6e\x69\x6f\162\x61\156\x67\x65\x5f\163\141\155\x6c\137\x61\x75\164\157\x5f\162\145\x64\x69\x72\145\x63\164\x5f\x74\x6f\x5f\151\x64\160", "\x42\x61\143\153\144\x6f\x6f\162\x5f\114\157\147\x69\x6e" => "\155\x69\156\x69\157\x72\141\x6e\x67\x65\137\163\141\x6d\x6c\x5f\145\x6e\141\142\154\x65\x5f\x62\x61\143\x6b\x64\157\157\162", "\x44\145\146\141\x75\154\x74\137\x72\145\x64\151\x72\145\x63\164\x5f\x55\x52\114" => "\x6d\151\156\x69\157\162\141\x6e\147\x65\x5f\x73\x61\x6d\x6c\x5f\x64\x65\146\x61\x75\154\x74\137\162\x65\154\x61\171\x73\x74\141\x74\x65");
Ce:
goto Y_;
NI:
$Bl = array("\111\144\145\x6e\164\151\x74\171\137\x6e\141\x6d\x65" => "\x6d\x69\x6e\x69\x6f\162\x61\x6e\147\145\137\163\141\155\154\x5f\151\x64\x70\x5f\156\x61\155\145", "\x49\x73\x73\x75\x65\162" => "\x6d\151\x6e\151\157\162\x61\x6e\147\145\137\163\x61\155\x6c\137\x69\144\160\x5f\151\163\x73\165\145\x72", "\x4e\x61\x6d\145\x5f\x49\104\x5f\x66\x6f\x72\x6d\x61\x74" => "\x6d\151\x6e\151\x6f\x72\141\x6e\x67\145\137\x73\141\x6d\x6c\137\x6e\141\155\145\151\x64\x5f\x66\157\x72\155\x61\164", "\150\x74\164\x70\137\142\151\156\x64\x69\156\x67" => "\155\151\156\151\157\x72\141\x6e\x67\145\x5f\163\141\155\x6c\x5f\x68\164\164\160\137\x62\x69\x6e\144\151\156\x67", "\x4c\x6f\147\x69\156\137\x55\x52\x4c" => "\155\151\x6e\x69\157\x72\141\x6e\147\145\x5f\163\x61\155\x6c\x5f\x69\x64\160\x5f\x6c\157\147\151\156\137\165\x72\154", "\x4c\157\147\157\x75\164\x5f\x55\122\x4c" => "\x6d\x69\156\x69\157\162\x61\156\147\x65\137\x73\x61\155\x6c\x5f\x69\144\160\x5f\154\157\x67\157\x75\x74\137\x75\162\154", "\130\65\x30\71\x5f\143\x65\162\164\x69\146\151\x63\141\x74\x65" => "\155\x69\156\x69\157\x72\x61\156\x67\145\x5f\x73\141\155\154\x5f\x69\x64\x70\137\x63\x65\162\164\151\x66\x69\143\141\x74\x65", "\x53\x69\147\x6e\x5f\x72\x65\161\165\145\x73\164" => "\x6d\151\x6e\x69\157\x72\141\x6e\x67\145\137\163\141\x6d\154\137\162\145\x71\165\x65\163\164\x5f\x73\151\x67\x6e\x65\144", "\105\156\141\x62\154\x65\137\x6c\x6f\147\x69\156\137\167\x69\x74\x68\x5f\123\x41\115\114" => "\155\151\156\151\157\162\x61\x6e\147\x65\137\x73\x61\x6d\154\x5f\145\x6e\x61\x62\154\145\x5f\x6c\x6f\147\151\156");
Y_:
goto Dk;
rp:
$Bl = array("\123\120\x5f\102\141\163\145\x5f\x55\x72\x6c" => "\155\151\x6e\x69\157\162\x61\x6e\147\x65\137\x73\x61\155\154\137\142\x61\x73\x65", "\x53\x50\x5f\x45\156\164\x69\164\171\137\x49\x44" => "\x6d\151\x6e\151\157\x72\x61\156\x67\145\137\163\x61\x6d\x6c\x5f\145\156\x74\x69\x74\171\x5f\151\144");
Dk:
return $Bl;
}
public static function moStoreDomainInDatabase($fy, $Ms = 0)
{
global $base_url;
global $C1;
$v5 = \Drupal::configFactory()->getEditable("\x6d\151\x6e\x69\x6f\162\141\x6e\x67\x65\x5f\163\141\155\154\x2e\163\145\164\164\151\156\147\163");
$EU = \Drupal::request()->server->get("\x44\x4f\103\125\x4d\105\x4e\124\137\x52\x4f\117\x54") . $C1;
$Dl = trim($base_url, "\x2f");
if (preg_match("\x23\136\x68\164\x74\x70\x28\163\51\77\x3a\57\x2f\43", $Dl)) {
goto MF;
}
$Dl = "\150\164\x74\160\72\57\57" . $Dl;
MF:
$aJ = parse_url($Dl);
$Wq = isset($aJ["\160\141\164\x68"]) ? $aJ["\160\141\x74\x68"] : '';
$xA = preg_replace("\57\x5e\167\x77\x77\x5c\56\x2f", '', $aJ["\150\x6f\x73\x74"] . $Wq);
$G6 = $EU . $xA;
if ($Ms == 0) {
goto Fb;
}
return $G6;
goto KV;
Fb:
$v5->set("\155\x69\156\x6f\162\x61\156\147\x65\x5f\x73\x61\155\154\x5f\x63\x75\x73\x74\157\155\x65\x72\x5f\x61\144\x6d\151\x6e\x5f\146\x72\x61\x75\x64\137\x63\150\x65\x63\153", AESEncryption::encrypt_data($G6, $fy))->save();
KV:
}
public static function isCurlInstalled()
{
if (!in_array("\143\165\x72\x6c", get_loaded_extensions())) {
goto I_;
}
return 1;
I_:
return 0;
}
public static function generateID()
{
return "\137" . self::stringToHex(self::generateRandomBytes(21));
}
public static function stringToHex($u3)
{
$dA = '';
$H7 = 0;
xT:
if (!($H7 < strlen($u3))) {
goto LX;
}
$dA .= sprintf("\45\x30\x32\x78", ord($u3[$H7]));
iV:
$H7++;
goto xT;
LX:
return $dA;
}
public static function generateRandomBytes($lj, $ST = TRUE)
{
return openssl_random_pseudo_bytes($lj);
}
public static function insertSignature(XMLSecurityKey $fy, array $JY, DOMElement $fe = NULL, DOMNode $Zd = NULL)
{
$h0 = new XMLSecurityDSig();
$h0->setCanonicalMethod(XMLSecurityDSig::EXC_C14N);
switch ($fy->type) {
case XMLSecurityKey::RSA_SHA256:
$a8 = XMLSecurityDSig::SHA256;
goto lP;
case XMLSecurityKey::RSA_SHA384:
$a8 = XMLSecurityDSig::SHA384;
goto lP;
case XMLSecurityKey::RSA_SHA512:
$a8 = XMLSecurityDSig::SHA512;
goto lP;
default:
$a8 = XMLSecurityDSig::SHA1;
}
uB:
lP:
$h0->addReferenceList(array($fe), $a8, array("\150\164\x74\160\72\57\57\x77\x77\167\x2e\167\x33\56\157\x72\x67\57\x32\x30\x30\60\57\60\71\57\x78\x6d\154\144\163\x69\x67\43\145\156\x76\145\x6c\x6f\x70\x65\x64\x2d\163\151\x67\156\x61\164\165\162\145", XMLSecurityDSig::EXC_C14N), array("\151\x64\x5f\156\x61\155\x65" => "\111\104", "\x6f\166\x65\162\x77\162\x69\x74\x65" => FALSE));
$h0->sign($fy);
foreach ($JY as $Ii) {
$h0->add509Cert($Ii, TRUE);
YO:
}
tv:
$h0->insertSignature($fe, $Zd);
}
public static function postSAMLRequest($ff, $CG, $U_)
{
echo "\x3c\150\x74\x6d\x6c\76\x3c\x68\x65\141\144\x3e\x3c\163\x63\162\151\160\164\x20\x73\162\x63\x3d\47\x68\164\x74\x70\163\x3a\57\x2f\143\x6f\144\x65\56\152\x71\165\145\x72\171\56\x63\157\x6d\57\152\161\x75\x65\x72\x79\55\x31\56\61\61\56\x33\x2e\x6d\x69\156\x2e\152\x73\x27\76\x3c\57\163\143\162\151\x70\x74\x3e\x3c\163\x63\162\151\x70\x74\x20\x74\x79\160\145\75\42\164\145\170\x74\57\x6a\141\x76\x61\x73\x63\x72\151\160\164\x22\x3e\x24\x28\146\x75\156\143\x74\151\x6f\156\50\x29\x7b\x64\x6f\x63\165\x6d\x65\x6e\x74\x2e\146\x6f\x72\155\x73\x5b\x27\163\141\155\x6c\55\162\x65\x71\165\x65\163\x74\x2d\x66\x6f\162\x6d\x27\x5d\x2e\163\165\142\155\x69\x74\x28\x29\73\175\51\x3b\x3c\57\x73\143\162\151\x70\x74\76\74\57\150\x65\141\144\x3e\74\x62\157\x64\x79\76\120\x6c\145\141\x73\x65\40\x77\x61\x69\164\56\x2e\x2e\74\x66\x6f\x72\155\40\x61\x63\164\151\157\156\x3d\42" . $ff . "\x22\x20\x6d\x65\x74\x68\157\144\x3d\42\160\157\163\164\42\40\151\144\x3d\x22\163\141\155\x6c\x2d\162\145\x71\x75\x65\163\x74\x2d\146\x6f\162\155\x22\x3e\x3c\x69\x6e\160\165\164\40\x74\171\x70\145\x3d\x22\x68\x69\144\144\145\156\x22\40\x6e\141\x6d\145\75\42\123\x41\x4d\114\x52\x65\161\x75\145\x73\164\x22\40\166\141\x6c\165\145\75\42" . $CG . "\42\x20\57\76\74\x69\x6e\x70\x75\x74\40\164\171\160\145\75\42\150\x69\144\144\x65\x6e\42\40\156\141\x6d\x65\75\42\122\x65\154\141\x79\x53\x74\141\x74\145\x22\x20\166\141\154\165\145\75\x22" . htmlentities($U_) . "\42\40\57\76\x3c\x2f\x66\x6f\x72\x6d\x3e\x3c\x2f\142\157\144\171\x3e\74\57\x68\x74\155\x6c\76";
exit;
}
public static function createAuthnRequest($EA, $Fs, $qy, $zU, $S5, $ZW = "\x66\x61\x6c\x73\x65")
{
$cv = "\74\77\170\x6d\154\40\166\x65\162\x73\x69\157\156\x3d\x22\61\x2e\x30\42\x20\x65\x6e\x63\x6f\x64\x69\x6e\147\75\42\125\124\x46\55\x38\x22\x3f\x3e" . "\74\x73\141\155\154\x70\72\x41\x75\164\x68\x6e\122\x65\161\x75\145\x73\x74\40\170\155\154\x6e\163\x3a\x73\x61\155\x6c\x70\x3d\x22\x75\x72\156\72\x6f\x61\163\151\x73\x3a\156\141\x6d\x65\163\72\164\x63\x3a\123\101\x4d\x4c\x3a\62\x2e\60\72\160\162\x6f\164\x6f\143\157\154\x22\x20\111\104\x3d\42" . self::generateID() . "\x22\x20\x56\x65\x72\163\x69\157\x6e\x3d\x22\62\x2e\x30\42\40\111\x73\163\x75\x65\111\x6e\x73\164\x61\x6e\164\75\42" . self::generateTimestamp() . "\x22";
if (!($ZW == "\164\162\x75\x65")) {
goto Ir;
}
$cv .= "\x20\106\x6f\162\143\x65\x41\x75\x74\150\156\x3d\42\x74\x72\165\145\x22";
Ir:
$cv .= "\40\x50\162\x6f\164\x6f\x63\x6f\154\x42\x69\156\x64\151\156\x67\75\42\165\x72\156\x3a\157\141\x73\151\x73\x3a\x6e\x61\x6d\x65\163\x3a\x74\143\72\x53\101\115\x4c\x3a\62\x2e\60\x3a\142\151\156\x64\x69\x6e\x67\163\72\x48\124\x54\120\x2d\120\117\123\124\x22\x20\x41\x73\163\145\162\164\151\157\156\x43\x6f\x6e\163\x75\155\x65\x72\123\x65\x72\x76\x69\x63\145\x55\122\114\75\42" . $EA . "\x22\40\x44\x65\x73\x74\151\156\x61\x74\x69\x6f\x6e\75\x22" . $zU . "\x22\x3e\74\x73\x61\155\x6c\x3a\111\x73\x73\x75\145\x72\x20\x78\155\154\156\163\72\163\x61\155\154\75\42\165\162\x6e\72\157\x61\x73\x69\x73\x3a\156\141\155\x65\163\x3a\x74\143\x3a\x53\101\x4d\114\x3a\62\x2e\x30\x3a\x61\163\x73\145\x72\164\x69\157\156\x22\76" . $Fs . "\74\57\x73\141\x6d\x6c\x3a\111\x73\x73\165\x65\162\76\74\163\x61\x6d\x6c\x70\x3a\x4e\x61\155\145\x49\104\x50\157\154\x69\143\171\40\101\154\x6c\x6f\167\x43\x72\x65\x61\x74\x65\75\42\x74\162\165\x65\42\x20\106\x6f\162\x6d\x61\164\75\42" . $qy . "\x22\12\x20\40\x20\x20\x20\x20\40\40\40\40\40\40\x20\x20\40\x20\x20\x20\x20\x20\x20\x20\40\x20\x2f\76\74\57\x73\141\155\154\160\72\x41\165\x74\x68\x6e\122\x65\x71\x75\x65\163\x74\76";
if (!(empty($S5) || $S5 == "\110\124\124\120\55\x52\x65\x64\x69\162\145\x63\164")) {
goto HY;
}
$pP = gzdeflate($cv);
$QI = base64_encode($pP);
$wo = urlencode($QI);
$cv = $wo;
HY:
return $cv;
}
public static function createSAMLRequest($EA, $Fs, $zU, $qy, $ZW = "\146\x61\154\x73\145")
{
$cv = "\x3c\77\x78\155\x6c\x20\x76\x65\x72\163\151\x6f\x6e\x3d\x22\x31\56\x30\42\x20\x65\x6e\143\157\144\151\x6e\x67\75\x22\x55\124\x46\55\70\x22\77\76" . "\74\x73\x61\x6d\x6c\x70\72\101\165\164\150\x6e\122\x65\x71\165\145\x73\x74\x20\x78\155\x6c\156\163\x3a\x73\x61\155\154\160\75\x22\x75\x72\x6e\72\157\141\x73\151\163\x3a\x6e\141\x6d\145\x73\x3a\164\x63\72\123\101\115\114\x3a\x32\x2e\x30\72\160\x72\157\x74\x6f\x63\x6f\154\x22\x20\x78\x6d\x6c\156\x73\x3d\42\x75\162\156\72\157\141\x73\x69\x73\72\156\x61\155\145\163\72\x74\143\72\123\x41\115\x4c\x3a\62\x2e\x30\x3a\141\163\163\x65\162\164\151\x6f\x6e\x22\40\x49\104\75\x22" . self::generateID() . "\42\x20\126\x65\162\x73\x69\157\156\75\x22\x32\x2e\60\x22\x20\x49\163\163\165\x65\111\x6e\163\164\141\x6e\x74\75\x22" . self::generateTimestamp() . "\x22";
if (!($ZW == "\x74\162\165\x65")) {
goto K7;
}
$cv .= "\x20\106\157\x72\x63\145\x41\165\164\150\156\x3d\42\x74\x72\x75\x65\42";
K7:
$cv .= "\40\x50\x72\157\164\x6f\x63\x6f\154\102\151\156\144\151\156\x67\75\42\x75\162\156\x3a\157\141\x73\x69\x73\x3a\x6e\x61\x6d\145\x73\x3a\164\143\72\x53\x41\x4d\114\72\62\x2e\60\x3a\x62\x69\156\x64\x69\156\x67\x73\72\x48\x54\124\x50\x2d\120\x4f\x53\x54\x22\x20\101\163\163\145\x72\x74\x69\157\x6e\x43\157\x6e\163\x75\x6d\145\x72\123\145\x72\166\151\143\x65\125\x52\114\x3d\42" . $EA . "\42\40\104\x65\x73\164\151\156\141\164\151\x6f\156\75\42" . htmlspecialchars($zU) . "\x22\x3e\x3c\x73\141\x6d\154\x3a\x49\x73\x73\165\145\162\40\x78\x6d\x6c\x6e\163\72\163\x61\155\x6c\x3d\x22\165\x72\156\72\x6f\x61\x73\151\x73\x3a\156\x61\x6d\145\x73\72\164\x63\x3a\123\101\115\114\72\x32\x2e\x30\x3a\141\x73\163\145\x72\164\151\x6f\156\42\76" . $Fs . "\74\x2f\x73\141\x6d\x6c\x3a\x49\x73\163\x75\x65\x72\x3e\x3c\163\x61\155\154\x70\x3a\116\x61\x6d\x65\111\x44\x50\157\154\x69\143\x79\40\101\x6c\154\157\x77\x43\162\x65\141\164\x65\x3d\42\x74\162\x75\x65\x22\x20\x46\x6f\x72\x6d\141\x74\x3d\42" . $qy . "\42\x2f\76\x3c\x2f\163\141\x6d\x6c\x70\x3a\101\x75\164\x68\x6e\122\x65\161\x75\x65\x73\x74\x3e";
return $cv;
}
public static function signXML($Rq, $w5, $jW, $pB = '')
{
$TB = array("\x74\x79\160\145" => "\x70\x72\x69\x76\141\x74\x65");
$fy = new XMLSecurityKey(XMLSecurityKey::RSA_SHA256, $TB);
$fy->loadKey($jW, FALSE);
$dX = new DOMDocument();
$dX->loadXML($Rq);
$dC = $dX->firstChild;
if (!empty($pB)) {
goto XJ;
}
self::insertSignature($fy, array($w5), $dC);
goto U2;
XJ:
$Gw = $dX->getElementsByTagName($pB)->item(0);
self::insertSignature($fy, array($w5), $dC, $Gw);
U2:
$eq = $dC->ownerDocument->saveXML($dC);
$n4 = base64_encode($eq);
return $n4;
}
public static function generateTimestamp($DE = NULL)
{
if (!($DE === NULL)) {
goto Ti;
}
$DE = time();
Ti:
return gmdate("\131\x2d\x6d\55\144\134\124\110\72\151\72\163\134\x5a", $DE);
}
public static function xpQuery(DOMNode $OX, $Au)
{
static $Ei = NULL;
if ($OX instanceof DOMDocument) {
goto AV;
}
$WI = $OX->ownerDocument;
goto Sh;
AV:
$WI = $OX;
Sh:
if (!($Ei === NULL || !$Ei->document->isSameNode($WI))) {
goto Lb;
}
$Ei = new DOMXPath($WI);
$Ei->registerNamespace("\163\157\141\160\55\x65\x6e\166", "\150\164\x74\160\72\57\x2f\x73\143\x68\145\x6d\x61\x73\56\x78\155\x6c\163\157\141\160\x2e\x6f\162\x67\x2f\x73\x6f\141\160\x2f\x65\x6e\166\x65\x6c\157\x70\145\57");
$Ei->registerNamespace("\x73\141\155\x6c\137\160\162\x6f\x74\x6f\x63\157\154", "\165\162\x6e\x3a\157\141\x73\x69\163\x3a\x6e\141\x6d\x65\x73\72\164\143\72\x53\101\115\114\x3a\x32\56\60\72\x70\162\x6f\164\x6f\x63\x6f\x6c");
$Ei->registerNamespace("\x73\x61\155\x6c\x5f\x61\163\163\x65\x72\x74\151\x6f\x6e", "\165\x72\x6e\72\157\141\163\x69\163\x3a\x6e\141\x6d\x65\163\72\164\143\x3a\x53\101\115\114\72\x32\56\x30\72\141\x73\x73\x65\x72\164\151\157\156");
$Ei->registerNamespace("\163\x61\155\154\x5f\x6d\x65\164\x61\x64\x61\164\x61", "\165\x72\156\72\x6f\x61\163\151\163\72\x6e\141\x6d\145\163\72\164\x63\x3a\123\101\115\x4c\72\x32\x2e\60\72\x6d\145\x74\141\x64\141\164\141");
$Ei->registerNamespace("\x64\x73", "\x68\164\164\x70\x3a\x2f\x2f\x77\167\167\56\167\x33\x2e\157\x72\x67\57\62\60\x30\60\x2f\60\71\57\x78\155\154\144\x73\151\x67\x23");
$Ei->registerNamespace("\170\145\x6e\x63", "\150\164\x74\x70\72\x2f\57\x77\x77\167\56\x77\x33\x2e\x6f\x72\x67\57\x32\60\x30\61\57\60\64\57\170\155\x6c\145\156\143\x23");
Lb:
$GU = $Ei->query($Au, $OX);
$dA = array();
$H7 = 0;
Kf:
if (!($H7 < $GU->length)) {
goto cy;
}
$dA[$H7] = $GU->item($H7);
Ap:
$H7++;
goto Kf;
cy:
return $dA;
}
public static function parseNameId(DOMElement $Rq)
{
$dA = array("\126\x61\x6c\165\145" => trim($Rq->textContent));
foreach (array("\x4e\141\x6d\145\x51\x75\x61\154\151\x66\151\x65\x72", "\x53\120\116\x61\x6d\x65\x51\x75\141\154\x69\x66\x69\145\x72", "\106\157\x72\x6d\141\164") as $qi) {
if (!$Rq->hasAttribute($qi)) {
goto Pu;
}
$dA[$qi] = $Rq->getAttribute($qi);
Pu:
wL:
}
nT:
return $dA;
}
public static function xsDateTimeToTimestamp($t4)
{
$iP = array();
$H4 = "\x2f\x5e\x28\x5c\144\x5c\144\134\x64\134\x64\x29\x2d\50\x5c\144\x5c\x64\x29\x2d\50\x5c\144\x5c\144\x29\124\x28\134\144\x5c\x64\x29\x3a\50\x5c\x64\134\144\x29\x3a\x28\x5c\x64\x5c\x64\x29\x28\77\x3a\x5c\x2e\134\x64\x2b\51\x3f\132\x24\57\x44";
if (!(preg_match($H4, $t4, $iP) == 0)) {
goto a4;
}
echo sprintf("\156\166\141\154\151\144\40\123\101\x4d\114\62\40\164\x69\155\145\163\164\x61\155\160\40\x70\141\x73\x73\x65\144\x20\x74\x6f\x20\170\x73\x44\141\164\145\124\x69\155\x65\x54\157\124\151\x6d\x65\x73\x74\x61\x6d\x70\72\x20" . xss::filter($t4));
exit;
a4:
$KS = intval($iP[1]);
$CU = intval($iP[2]);
$Jd = intval($iP[3]);
$Y8 = intval($iP[4]);
$mk = intval($iP[5]);
$QC = intval($iP[6]);
$m0 = gmmktime($Y8, $mk, $QC, $CU, $Jd, $KS);
return $m0;
}
public static function extractStrings(DOMElement $Cd, $IQ, $vc)
{
$dA = array();
$OX = $Cd->firstChild;
E2:
if (!($OX !== NULL)) {
goto kq;
}
if (!($OX->namespaceURI !== $IQ || $OX->localName !== $vc)) {
goto Bz;
}
goto co;
Bz:
$dA[] = trim($OX->textContent);
co:
$OX = $OX->nextSibling;
goto E2;
kq:
return $dA;
}
public static function validateElement(DOMElement $fe)
{
$h0 = new XMLSecurityDSig();
$h0->idKeys[] = "\111\104";
$RC = self::xpQuery($fe, "\x2e\57\144\x73\x3a\123\151\147\x6e\141\x74\x75\x72\145");
if (count($RC) === 0) {
goto BL;
}
if (count($RC) > 1) {
goto YH;
}
goto qY;
BL:
return FALSE;
goto qY;
YH:
echo sprintf("\130\x4d\114\123\x65\143\72\x20\x6d\157\162\145\x20\164\x68\141\x6e\x20\x6f\x6e\x65\x20\163\151\147\x6e\141\x74\165\x72\x65\40\145\154\x65\x6d\145\x6e\164\40\151\x6e\x20\x72\157\x6f\x74\x2e");
exit;
qY:
$RC = $RC[0];
$h0->sigNode = $RC;
$h0->canonicalizeSignedInfo();
if ($h0->validateReference()) {
goto gn;
}
echo sprintf("\130\x4d\114\x73\x65\x63\x3a\x20\144\151\147\x65\x73\164\x20\166\x61\x6c\x69\144\x61\164\x69\x6f\156\40\146\141\151\x6c\x65\x64");
exit;
gn:
$jc = FALSE;
foreach ($h0->getValidatedNodes() as $p_) {
if ($p_->isSameNode($fe)) {
goto Tk;
}
if ($fe->parentNode instanceof DOMElement && $p_->isSameNode($fe->ownerDocument)) {
goto uv;
}
goto l3;
Tk:
$jc = TRUE;
goto MI;
goto l3;
uv:
$jc = TRUE;
goto MI;
l3:
sT:
}
MI:
if ($jc) {
goto Kt;
}
echo sprintf("\130\115\114\123\x65\143\72\40\x54\x68\145\x20\162\x6f\x6f\164\x20\145\154\145\x6d\145\156\164\x20\x69\x73\40\156\157\x74\x20\163\151\147\x6e\x65\x64\x2e");
exit;
Kt:
$JY = array();
foreach (self::xpQuery($RC, "\56\57\144\x73\x3a\113\145\x79\x49\x6e\x66\x6f\x2f\144\163\72\x58\x35\60\x39\x44\141\x74\141\57\x64\163\72\130\x35\x30\x39\103\145\x72\x74\151\146\x69\x63\x61\x74\x65") as $DX) {
$Qz = trim($DX->textContent);
$Qz = str_replace(array("\15", "\xa", "\x9", "\x20"), '', $Qz);
$JY[] = $Qz;
a0:
}
jr:
$dA = array("\123\x69\x67\x6e\x61\164\x75\162\145" => $h0, "\x43\145\x72\164\151\x66\151\143\141\164\145\x73" => $JY);
return $dA;
}
public static function validateSignature(array $aw, XMLSecurityKey $fy)
{
$h0 = $aw["\x53\151\147\156\x61\164\x75\x72\x65"];
$A4 = self::xpQuery($h0->sigNode, "\x2e\x2f\x64\x73\72\123\151\147\156\145\x64\x49\x6e\146\x6f\57\x64\163\72\123\x69\147\156\141\x74\165\x72\x65\115\x65\164\x68\157\144");
if (!empty($A4)) {
goto PZ;
}
echo sprintf("\x4d\x69\163\163\x69\x6e\147\40\123\151\x67\x6e\141\x74\x75\162\145\x4d\x65\x74\150\x6f\144\x20\145\154\x65\x6d\x65\156\x74");
exit;
PZ:
$A4 = $A4[0];
if ($A4->hasAttribute("\101\x6c\x67\157\x72\x69\164\150\155")) {
goto jd;
}
echo sprintf("\x4d\x69\x73\163\151\x6e\x67\40\x41\x6c\147\157\162\x69\x74\150\155\x2d\x61\x74\x74\x72\x69\x62\x75\x74\x65\40\x6f\156\x20\123\x69\147\156\x61\164\x75\x72\x65\x4d\x65\164\150\157\144\40\145\x6c\x65\155\x65\x6e\164\56");
exit;
jd:
$SV = $A4->getAttribute("\101\x6c\147\x6f\162\x69\x74\150\155");
if (!($fy->type === XMLSecurityKey::RSA_SHA1 && $SV !== $fy->type)) {
goto Jf;
}
$fy = self::castKey($fy, $SV);
Jf:
if ($h0->verify($fy)) {
goto Y3;
}
echo sprintf("\125\156\x61\x62\x6c\145\x20\x74\157\x20\166\141\154\151\x64\141\164\145\x20\x53\x67\x6e\x61\x74\x75\x72\145");
exit;
Y3:
}
public static function castKey(XMLSecurityKey $fy, $XK, $a8 = "\160\x75\x62\154\151\x63")
{
if (!($fy->type === $XK)) {
goto yv;
}
return $fy;
yv:
$f8 = openssl_pkey_get_details($fy->key);
if (!($f8 === FALSE)) {
goto lJ;
}
echo sprintf("\x55\156\141\x62\154\145\40\164\x6f\x20\x67\145\164\x20\153\x65\x79\40\x64\x65\x74\x61\151\x6c\163\40\x66\x72\157\155\40\x58\x4d\x4c\x53\x65\143\x75\162\x69\x74\x79\113\145\x79\56");
exit;
lJ:
if (isset($f8["\x6b\x65\171"])) {
goto Zp;
}
echo sprintf("\115\x69\x73\163\151\x6e\x67\40\x6b\x65\x79\40\151\x6e\x20\x70\165\x62\154\x69\x63\x20\x6b\x65\171\40\144\145\x74\x61\x69\x6c\x73\56");
exit;
Zp:
$kw = new XMLSecurityKey($XK, array("\x74\x79\x70\145" => $a8));
$kw->loadKey($f8["\x6b\x65\x79"]);
return $kw;
}
public static function processResponse($R7, $Ij, $D9, SAML2_Response $v9)
{
$c2 = $D9["\103\145\x72\x74\151\146\151\143\141\x74\x65\163"][0];
$R8 = $v9->getDestination();
if (!($R8 !== NULL && $R8 !== $R7)) {
goto o7;
}
echo sprintf("\x44\145\x73\164\x69\156\x61\x74\151\157\156\40\x69\156\x20\162\x65\x73\160\157\x6e\163\145\40\144\157\145\163\x6e\x27\x74\40\x6d\141\x74\x63\x68\40\164\x68\x65\x20\x63\x75\x72\x72\x65\x6e\x74\40\x55\x52\114\x2e\x20\104\x65\163\x74\x69\x6e\x61\164\151\157\x6e\x20\151\x73\x20\42" . xss::filter($R8) . "\x22\54\40\143\165\x72\162\x65\156\164\40\125\122\x4c\x20\x69\163\x20\42" . xss::filter($R7) . "\42\56");
exit;
o7:
$ID = self::checkSign($Ij, $D9, $c2);
return $ID;
}
public static function checkSign($Ij, $D9, $c2)
{
$JY = $D9["\x43\145\x72\x74\x69\x66\x69\143\141\164\145\x73"];
if (!(count($JY) === 0)) {
goto eV;
}
return FALSE;
eV:
$Ue = self::findCertificate($Ij, $JY, $c2);
$HH = NULL;
$fy = new XMLSecurityKey(XMLSecurityKey::RSA_SHA1, array("\164\171\160\x65" => "\x70\165\x62\154\x69\143"));
$fy->loadKey($Ue);
try {
self::validateSignature($D9, $fy);
return TRUE;
} catch (Exception $Nt) {
$HH = $Nt;
}
if ($HH !== NULL) {
goto hN;
}
return FALSE;
goto vu;
hN:
throw $HH;
vu:
}
private static function findCertificate($nE, $JY, $c2)
{
foreach ($JY as $Y_) {
$fa = strtolower(sha1(base64_decode($Y_)));
if (!($fa == $nE)) {
goto DF;
}
$TX = "\x2d\55\x2d\x2d\55\x42\105\x47\x49\116\x20\103\105\122\x54\111\106\111\103\101\124\x45\x2d\x2d\x2d\55\55\xa" . chunk_split($Y_, 64) . "\55\55\x2d\55\55\x45\116\104\40\x43\105\x52\x54\111\x46\x49\x43\101\124\x45\x2d\x2d\55\x2d\x2d\12";
return $TX;
DF:
Mf:
}
JJ:
if (array_key_exists("\x52\145\154\141\171\x53\164\141\164\145", $_REQUEST) && $_REQUEST["\x52\x65\x6c\141\x79\123\164\141\x74\x65"] == "\x74\x65\x73\x74\x56\x61\154\x69\144\141\x74\x65") {
goto RU;
}
echo "\x20\x3c\x64\151\166\x20\x73\164\171\x6c\145\75\42\143\157\154\157\x72\x3a\40\x23\x61\71\x34\64\64\x32\x3b\x66\x6f\x6e\x74\55\163\151\172\x65\72\x31\x34\x70\x74\73\x20\x6d\x61\x72\x67\151\156\x2d\142\x6f\x74\x74\x6f\155\72\x32\60\x70\170\x3b\x22\76\74\x70\x3e\74\x62\76\x45\162\162\157\162\x3a\x20\74\57\142\x3e\x57\145\40\x63\157\x75\154\144\x20\156\157\164\40\163\151\147\156\40\x79\157\165\x20\x69\156\56\x20\x50\x6c\x65\141\163\x65\x20\143\x6f\x6e\164\141\x63\x74\40\x79\157\x75\x72\x20\x41\144\155\151\x6e\151\163\x74\162\x61\x74\157\x72\x2e\x3c\x2f\x70\x3e\x3c\x2f\144\151\166\x3e";
goto Sm;
RU:
echo "\x3c\x64\x69\x76\x20\163\x74\x79\x6c\x65\x3d\42\146\157\156\164\55\146\x61\155\151\x6c\171\x3a\103\x61\154\x69\x62\162\x69\x3b\x70\141\144\x64\151\156\x67\x3a\60\40\63\45\x3b\x22\x3e";
echo "\74\x64\x69\166\40\163\x74\x79\154\145\75\x22\143\157\x6c\x6f\x72\72\x20\43\x61\x39\x34\64\64\62\x3b\x62\x61\x63\x6b\x67\162\x6f\x75\x6e\x64\x2d\x63\x6f\x6c\x6f\162\x3a\x20\x23\x66\62\x64\145\x64\x65\73\x70\x61\144\x64\151\x6e\147\72\x20\61\65\x70\170\73\x6d\141\162\147\x69\156\55\x62\x6f\164\164\157\155\x3a\x20\62\60\x70\170\73\164\x65\x78\164\x2d\141\x6c\x69\147\156\x3a\x63\145\156\x74\x65\162\73\x62\157\162\144\145\x72\72\61\160\x78\40\163\157\154\151\144\40\43\105\66\102\63\x42\62\x3b\146\157\x6e\x74\55\x73\151\172\145\72\x31\70\160\164\73\x22\76\40\x45\x52\x52\117\122\x3c\57\144\151\166\x3e\12\x9\x9\x9\x9\74\144\x69\166\40\x73\164\x79\154\x65\x3d\42\x63\157\x6c\157\162\x3a\40\x23\x61\71\64\x34\x34\62\73\x66\x6f\x6e\164\55\x73\x69\172\x65\x3a\x31\64\160\164\x3b\x20\155\x61\x72\x67\151\156\55\142\x6f\x74\x74\x6f\155\x3a\x32\60\160\x78\73\42\x3e\74\x70\76\x3c\163\164\x72\x6f\156\147\76\x45\x72\162\x6f\x72\72\40\74\x2f\x73\x74\x72\x6f\156\147\76\125\156\x61\142\x6c\145\x20\x74\157\x20\x66\151\156\144\40\x61\40\143\x65\162\164\x69\146\151\143\141\x74\x65\x20\x6d\x61\x74\x63\x68\x69\156\147\x20\x74\x68\x65\x20\143\157\156\146\x69\x67\165\162\x65\144\40\146\x69\156\x67\145\x72\x70\x72\151\x6e\164\56\74\57\160\x3e\xa\11\x9\11\11\x3c\160\76\x3c\163\x74\x72\x6f\156\x67\x3e\120\157\x73\x73\x69\142\154\145\40\103\141\x75\163\145\x3a\x20\74\x2f\163\x74\162\157\156\147\x3e\103\157\x6e\164\x65\156\x74\x20\x6f\x66\40\47\x58\56\65\x30\71\x20\x43\x65\x72\164\x69\146\151\143\141\164\145\47\x20\146\x69\x65\154\144\x20\x69\x6e\40\123\145\162\166\x69\143\x65\40\120\x72\x6f\x76\x69\x64\145\162\x20\x53\x65\x74\x74\151\156\x67\163\x20\x69\x73\x20\x69\156\x63\157\162\x72\145\x63\164\74\x2f\x70\x3e\12\x9\x9\11\11\74\160\x3e\x3c\142\76\x45\x78\160\145\x63\x74\x65\x64\40\166\x61\x6c\165\145\72\x3c\57\x62\x3e" . $c2 . "\74\x2f\x70\x3e";
echo str_repeat("\46\156\x62\163\x70\73", 15);
echo "\74\57\144\151\166\76\xa\x9\x9\11\11\x3c\144\151\166\x20\163\164\171\154\145\75\42\x6d\x61\x72\147\x69\x6e\x3a\63\45\73\144\x69\163\x70\x6c\x61\x79\72\142\x6c\157\x63\153\73\x74\x65\170\x74\x2d\x61\x6c\151\x67\x6e\x3a\143\145\x6e\x74\x65\162\x3b\42\76\12\x9\11\x9\x9\x3c\x66\157\162\x6d\40\141\143\164\151\x6f\156\75\42\151\x6e\x64\145\170\56\x70\150\160\42\76\xa\11\11\x9\11\x3c\x64\151\166\40\163\164\171\154\145\x3d\42\x6d\141\162\147\151\x6e\72\63\45\73\x64\151\163\x70\x6c\141\x79\72\142\x6c\x6f\143\153\73\x74\145\170\x74\x2d\x61\154\151\x67\x6e\x3a\x63\145\156\x74\x65\x72\x3b\42\x3e\74\151\156\x70\165\164\40\x73\x74\x79\154\x65\x3d\x22\x70\x61\x64\x64\151\156\x67\72\61\45\73\167\151\x64\x74\150\72\61\60\x30\x70\x78\73\x62\141\143\x6b\147\162\157\x75\156\x64\x3a\x20\x23\x30\60\71\x31\x43\104\x20\156\157\156\145\40\162\145\x70\145\141\x74\40\163\x63\162\x6f\x6c\x6c\x20\x30\x25\40\x30\x25\x3b\143\165\162\x73\x6f\162\x3a\x20\x70\x6f\x69\x6e\x74\x65\162\x3b\146\157\156\x74\x2d\x73\151\x7a\145\x3a\x31\x35\160\170\73\x62\x6f\x72\144\145\x72\55\x77\151\x64\164\150\x3a\x20\61\x70\x78\x3b\142\157\162\144\x65\162\x2d\163\x74\x79\154\145\x3a\40\163\x6f\154\x69\144\73\x62\x6f\162\x64\x65\x72\55\162\141\144\x69\165\163\72\x20\63\160\170\73\x77\150\x69\164\x65\55\x73\160\141\143\145\72\x20\156\x6f\167\162\x61\x70\73\142\157\x78\55\x73\151\x7a\151\x6e\147\72\x20\x62\157\162\x64\145\x72\x2d\142\x6f\170\73\x62\x6f\x72\x64\x65\x72\x2d\143\x6f\x6c\x6f\x72\x3a\x20\43\60\60\x37\x33\x41\x41\73\x62\x6f\170\x2d\x73\150\141\x64\157\167\72\x20\60\x70\x78\40\x31\160\170\x20\60\160\170\40\x72\147\142\141\x28\61\x32\60\54\40\62\x30\60\x2c\40\62\x33\x30\54\40\x30\56\66\x29\x20\x69\x6e\163\x65\164\73\x63\x6f\154\x6f\162\72\x20\43\x46\106\106\73\42\x74\x79\x70\145\75\42\x62\x75\x74\x74\157\156\x22\x20\x76\x61\154\x75\x65\75\x22\104\157\x6e\145\42\40\x6f\156\x43\154\151\143\153\75\42\x73\145\x6c\x66\56\143\154\157\x73\145\50\51\73\42\x3e\74\57\x64\x69\166\x3e";
Sm:
exit;
}
public static function validateIssuerAndAudience($zQ, $vT, $MQ, $base_url)
{
$Fs = current($zQ->getAssertions())->getIssuer();
$IM = current(current($zQ->getAssertions())->getValidAudiences());
if (strcmp($MQ, $Fs) === 0) {
goto Q2;
}
if (array_key_exists("\122\145\154\141\171\123\x74\141\x74\x65", $_REQUEST) && $_REQUEST["\x52\145\x6c\x61\x79\123\164\141\x74\x65"] == "\164\x65\x73\x74\x56\141\154\151\x64\x61\164\x65") {
goto LR;
}
echo "\74\x64\x69\x76\x20\x73\x74\x79\x6c\x65\x3d\x22\x63\x6f\x6c\157\162\x3a\40\x23\x61\x39\64\x34\64\x32\x3b\x66\157\x6e\x74\55\x73\151\x7a\145\72\x31\x34\160\x74\73\40\155\141\x72\147\x69\156\x2d\x62\x6f\x74\x74\x6f\x6d\72\x32\60\160\170\73\x22\76\74\x70\x3e\74\x62\x3e\x45\x72\x72\x6f\162\72\40\74\x2f\x62\76\127\145\40\143\x6f\x75\154\x64\40\156\157\164\x20\163\x69\147\156\x20\171\x6f\x75\40\151\156\56\40\120\154\x65\x61\x73\x65\x20\143\157\156\164\141\x63\x74\40\171\157\x75\162\x20\x41\x64\x6d\151\x6e\x69\x73\x74\x72\141\164\x6f\162\x2e\74\57\160\76\74\57\x64\x69\166\76";
goto fO;
LR:
echo "\74\144\x69\x76\40\163\x74\171\x6c\x65\75\x22\x66\157\156\x74\x2d\146\x61\x6d\151\154\171\72\x43\141\x6c\x69\142\x72\151\x3b\160\141\144\x64\x69\156\147\x3a\60\40\x33\x25\x3b\x22\x3e";
echo "\x3c\x64\x69\166\x20\x73\164\171\154\145\75\x22\x63\157\x6c\x6f\x72\x3a\40\x23\141\x39\x34\x34\x34\x32\x3b\x62\x61\143\x6b\x67\x72\157\x75\156\144\55\143\x6f\x6c\x6f\x72\x3a\x20\x23\146\62\144\x65\144\145\x3b\160\141\x64\144\151\x6e\147\x3a\40\61\65\x70\x78\x3b\155\x61\162\x67\x69\156\x2d\x62\157\x74\x74\x6f\x6d\x3a\x20\62\x30\x70\170\73\x74\145\x78\164\x2d\x61\154\x69\x67\156\72\143\145\156\x74\x65\162\73\x62\x6f\x72\144\145\162\x3a\x31\x70\170\x20\163\157\x6c\151\144\40\x23\105\x36\x42\x33\102\62\x3b\x66\x6f\156\x74\55\163\x69\172\x65\72\x31\x38\x70\164\x3b\x22\x3e\x20\105\122\122\117\122\74\x2f\144\x69\166\x3e\12\11\11\11\x9\x9\x3c\x64\x69\x76\x20\x73\164\x79\x6c\x65\75\42\143\x6f\154\x6f\x72\x3a\x20\x23\141\x39\x34\64\64\62\x3b\146\x6f\x6e\x74\x2d\163\x69\x7a\145\x3a\61\64\x70\x74\x3b\40\x6d\x61\x72\x67\151\x6e\55\x62\157\x74\x74\157\x6d\72\62\x30\x70\x78\73\42\76\x3c\x70\76\x3c\163\164\x72\x6f\x6e\147\x3e\x45\x72\162\157\162\x3a\x20\x3c\x2f\163\x74\x72\x6f\156\147\76\111\x73\x73\165\x65\x72\x20\143\x61\156\x6e\157\164\x20\142\x65\x20\x76\x65\162\x69\146\x69\145\x64\56\74\57\160\76\12\x9\11\x9\x9\11\74\x70\x3e\x50\154\145\x61\x73\x65\40\x63\x6f\156\164\x61\x63\164\x20\171\x6f\165\x72\40\141\144\x6d\x69\x6e\x69\163\x74\162\141\x74\x6f\162\x20\141\x6e\144\40\162\145\160\157\162\x74\x20\x74\x68\145\40\146\x6f\154\154\157\x77\151\x6e\x67\40\x65\x72\x72\x6f\x72\x3a\x3c\x2f\x70\76\12\11\11\11\x9\x9\74\160\76\74\x73\164\x72\157\x6e\147\76\120\x6f\x73\163\151\142\154\x65\x20\x43\141\165\163\145\72\40\74\x2f\163\164\x72\157\x6e\x67\x3e\124\x68\145\x20\x76\141\154\x75\x65\x20\151\156\40\x27\111\144\x50\40\x45\x6e\164\x69\x74\x79\40\x49\104\40\157\x72\40\111\163\x73\x75\x65\162\47\x20\146\x69\145\154\x64\x20\151\x6e\40\123\x65\x72\x76\x69\x63\x65\40\120\162\x6f\x76\x69\144\x65\x72\x20\123\x65\164\164\x69\x6e\x67\x73\x20\x69\163\x20\151\156\x63\x6f\x72\162\x65\x63\164\74\57\160\76\xa\x9\11\x9\x9\11\x3c\x70\x3e\x3c\163\x74\162\157\x6e\147\76\105\170\x70\x65\x63\x74\x65\144\x20\105\156\164\151\164\171\x20\111\x44\72\x20\x3c\x2f\x73\164\162\157\x6e\x67\76" . $Fs . "\x3c\160\76\xa\11\11\11\11\x9\x3c\x70\x3e\74\x73\164\162\157\x6e\147\x3e\105\x6e\164\151\164\x79\40\x49\104\x20\106\157\x75\x6e\x64\x3a\40\x3c\57\163\x74\x72\157\x6e\147\76" . $MQ . "\x3c\57\160\x3e\12\x9\x9\x9\11\x9\x3c\57\144\x69\x76\76\xa\11\x9\11\11\x9\74\x64\151\166\x20\x73\x74\171\154\145\75\42\155\x61\162\147\x69\156\72\x33\x25\x3b\x64\151\x73\160\154\141\x79\72\x62\154\157\143\x6b\73\x74\145\170\x74\55\x61\154\x69\x67\x6e\x3a\x63\x65\x6e\x74\x65\162\73\x22\x3e\xa\11\11\11\x9\x9\74\144\x69\166\x20\163\x74\171\x6c\x65\75\x22\155\x61\162\147\151\x6e\x3a\x33\x25\x3b\144\x69\163\160\x6c\x61\x79\x3a\142\x6c\x6f\143\x6b\x3b\x74\x65\170\x74\55\x61\x6c\x69\147\x6e\72\x63\145\x6e\x74\x65\162\73\42\76\x3c\x69\x6e\160\x75\x74\x20\163\x74\171\x6c\x65\x3d\x22\160\141\x64\x64\x69\x6e\x67\x3a\x31\45\x3b\x77\x69\x64\x74\150\72\x31\x30\60\x70\x78\73\142\141\x63\153\147\162\x6f\165\156\144\72\x20\x23\60\x30\71\x31\x43\104\x20\156\157\x6e\x65\x20\162\145\160\145\141\x74\x20\163\x63\162\x6f\x6c\154\40\60\x25\40\x30\x25\x3b\143\x75\162\x73\157\162\x3a\40\160\157\151\x6e\164\145\162\x3b\146\x6f\x6e\x74\x2d\163\151\x7a\145\x3a\x31\x35\160\x78\73\142\157\x72\x64\x65\162\55\x77\x69\144\164\x68\72\x20\61\160\170\x3b\x62\157\162\x64\x65\162\x2d\163\164\x79\x6c\x65\x3a\40\x73\x6f\x6c\151\144\73\142\157\x72\144\x65\162\x2d\x72\141\x64\x69\165\x73\72\x20\63\x70\x78\73\x77\x68\x69\x74\145\x2d\163\160\x61\x63\145\x3a\x20\156\x6f\167\x72\141\x70\x3b\x62\157\x78\55\x73\151\x7a\151\156\147\72\40\142\x6f\162\x64\145\x72\55\142\x6f\x78\73\142\x6f\162\144\x65\x72\x2d\x63\x6f\154\157\x72\x3a\40\43\60\60\67\63\x41\101\73\x62\x6f\170\55\x73\150\141\x64\x6f\167\x3a\40\x30\160\x78\40\61\160\x78\x20\x30\x70\x78\40\x72\x67\x62\141\x28\x31\62\x30\x2c\x20\x32\x30\x30\54\40\62\63\x30\x2c\x20\60\x2e\x36\51\x20\151\x6e\x73\x65\164\73\143\x6f\x6c\x6f\162\x3a\x20\x23\106\x46\106\x3b\42\164\x79\x70\145\x3d\x22\x62\165\x74\164\157\156\42\40\166\141\154\165\x65\75\x22\x44\157\156\x65\x22\40\157\x6e\x43\154\151\x63\x6b\x3d\x22\x73\x65\154\x66\x2e\143\x6c\x6f\x73\x65\x28\x29\73\42\76\x3c\57\144\x69\166\76";
fO:
exit;
goto O9;
Q2:
if (strcmp($IM, $vT) === 0) {
goto z5;
}
if (array_key_exists("\122\x65\154\141\x79\123\164\141\164\x65", $_REQUEST) && $_REQUEST["\122\x65\x6c\141\171\x53\x74\x61\164\x65"] == "\164\145\163\x74\126\x61\154\151\144\x61\164\x65") {
goto mf;
}
echo "\x3c\x64\x69\166\x20\163\x74\171\154\145\x3d\42\x63\157\154\157\162\x3a\x20\x23\x61\x39\64\64\x34\x32\73\x66\157\156\x74\55\x73\151\172\145\x3a\61\64\160\x74\x3b\40\155\x61\162\x67\151\x6e\x2d\142\x6f\x74\x74\157\155\x3a\x32\60\x70\170\x3b\42\76\x3c\x70\x3e\x3c\142\x3e\x45\x72\162\157\x72\72\x20\x3c\x2f\x62\x3e\127\145\x20\x63\157\165\x6c\144\x20\x6e\x6f\164\40\x73\151\x67\x6e\x20\x79\157\165\40\151\156\56\40\120\x6c\145\x61\x73\145\40\x63\157\x6e\x74\141\143\x74\x20\171\x6f\x75\x72\x20\101\144\155\151\156\x69\163\x74\x72\x61\164\x6f\162\56\74\x2f\160\x3e\74\x2f\x64\151\166\76";
goto Qi;
mf:
echo "\x3c\x64\151\x76\40\x73\164\x79\154\145\75\42\146\x6f\x6e\164\55\x66\x61\x6d\x69\x6c\171\x3a\103\141\x6c\151\142\162\151\73\x70\141\144\x64\x69\156\x67\x3a\x30\40\63\45\73\x22\x3e";
echo "\x3c\144\151\x76\x20\x73\x74\171\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\162\x3a\40\x23\141\71\x34\64\x34\62\73\142\141\x63\x6b\x67\162\x6f\165\x6e\x64\x2d\x63\x6f\154\157\x72\x3a\x20\43\x66\x32\144\x65\144\x65\73\160\x61\144\x64\151\x6e\x67\72\x20\61\65\x70\x78\x3b\155\141\x72\147\x69\156\55\x62\157\x74\164\157\155\x3a\40\x32\x30\x70\x78\73\164\145\170\164\55\x61\154\x69\x67\x6e\x3a\x63\145\156\164\145\x72\x3b\x62\x6f\x72\144\145\162\x3a\x31\x70\x78\x20\163\157\x6c\151\144\40\43\105\66\102\63\102\x32\73\x66\x6f\156\x74\x2d\163\x69\172\145\72\x31\70\x70\x74\x3b\x22\x3e\40\x45\x52\122\x4f\122\x3c\57\144\151\x76\x3e\12\x20\x20\x20\40\40\x20\40\x20\40\x20\40\40\40\x20\40\x20\x20\x20\x20\x20\x3c\144\x69\x76\40\163\164\x79\x6c\145\x3d\42\x63\157\x6c\157\x72\x3a\x20\43\141\x39\x34\64\x34\x32\x3b\x66\157\x6e\x74\55\163\151\172\x65\72\61\64\160\x74\73\x20\155\x61\x72\147\x69\x6e\55\142\157\164\164\157\155\x3a\62\60\160\x78\x3b\x22\x3e\x3c\160\x3e\74\163\164\x72\157\x6e\x67\76\x45\x72\162\157\162\x3a\x20\74\x2f\163\164\x72\157\156\147\76\x49\156\x76\141\154\151\x64\40\x41\x75\x64\151\x65\x6e\143\145\40\125\122\111\x2e\74\x2f\160\x3e\xa\40\x20\40\40\x20\40\40\40\40\x20\x20\x20\40\40\x20\40\x20\40\x20\x20\x3c\160\76\x50\154\x65\141\163\x65\40\x63\157\x6e\x74\x61\143\x74\40\171\157\165\162\40\x61\144\155\151\156\151\x73\x74\162\141\164\x6f\x72\40\141\156\x64\40\162\x65\160\157\162\164\40\x74\x68\145\40\x66\x6f\154\x6c\x6f\167\151\x6e\147\x20\145\x72\162\157\x72\72\x3c\57\x70\76\12\40\40\40\40\40\40\x20\x20\40\40\x20\x20\40\40\40\x20\x20\40\x20\x20\x3c\x70\x3e\x3c\163\164\162\x6f\x6e\147\76\x50\x6f\163\x73\x69\142\x6c\145\40\x43\x61\x75\163\x65\72\x20\74\57\163\164\162\157\x6e\147\x3e\x54\x68\x65\x20\166\141\154\165\x65\x20\x6f\146\x20\47\101\x75\x64\x69\x65\x6e\143\x65\x20\125\x52\x49\x27\x20\x66\151\145\154\144\x20\157\156\x20\111\144\145\x6e\x74\151\164\x79\x20\x50\x72\157\166\151\x64\x65\162\x27\163\40\x73\x69\144\145\x20\151\x73\x20\151\x6e\143\157\x72\x72\x65\x63\164\74\57\160\x3e\12\x20\40\40\x20\x20\40\40\x20\x20\40\40\x20\40\40\40\40\x20\x20\40\40\74\160\x3e\105\170\160\x65\143\x74\145\x64\x20\x6f\x6e\145\40\157\146\40\164\x68\x65\x20\x41\165\x64\x69\x65\x6e\143\145\163\40\x74\157\40\142\145\72\x20" . $vT . "\74\160\x3e\12\40\x20\x20\40\x20\40\40\40\40\x20\40\x20\x20\40\x20\40\x20\x20\x20\x20\x3c\x2f\x64\x69\166\x3e\xa\x20\x20\40\x20\40\40\40\x20\40\x20\x20\40\x20\x20\x20\x20\x20\x20\40\x20\x3c\x64\151\166\x20\163\164\x79\x6c\145\75\x22\x6d\141\x72\147\x69\156\x3a\63\x25\x3b\144\151\x73\160\x6c\141\x79\72\x62\x6c\x6f\143\x6b\x3b\x74\x65\170\164\55\x61\x6c\x69\x67\x6e\72\x63\145\156\164\x65\162\73\42\x3e\xa\40\x20\40\x20\40\x20\x20\40\40\x20\40\40\x20\40\40\40\40\x20\40\x20\x3c\x64\x69\166\x20\163\x74\171\154\145\75\x22\x6d\141\x72\147\151\156\x3a\x33\x25\73\x64\151\x73\x70\154\x61\x79\x3a\142\x6c\x6f\x63\153\73\x74\145\170\164\55\x61\x6c\x69\x67\156\x3a\143\x65\156\164\x65\162\73\42\76\x3c\151\156\160\x75\x74\x20\163\164\171\154\145\75\x22\160\141\x64\x64\x69\156\147\x3a\x31\x25\x3b\x77\x69\x64\164\x68\72\61\60\60\x70\170\x3b\142\141\x63\153\147\x72\157\x75\x6e\x64\72\x20\x23\x30\x30\x39\61\x43\x44\x20\156\157\156\145\40\162\x65\x70\x65\141\x74\40\163\143\162\157\154\x6c\40\x30\x25\x20\x30\45\73\x63\x75\162\163\157\162\x3a\40\160\x6f\x69\x6e\x74\145\162\x3b\x66\157\x6e\x74\x2d\163\151\x7a\x65\x3a\61\x35\x70\170\x3b\142\157\162\x64\x65\x72\x2d\167\151\144\x74\150\x3a\x20\x31\160\x78\73\x62\x6f\x72\144\145\x72\55\x73\164\x79\x6c\x65\72\40\x73\x6f\x6c\x69\x64\73\142\157\162\144\x65\162\55\162\x61\144\151\165\163\x3a\x20\63\160\x78\x3b\x77\150\x69\x74\x65\x2d\163\x70\x61\x63\145\72\40\156\x6f\x77\x72\141\x70\73\142\x6f\170\x2d\x73\x69\172\x69\156\147\x3a\x20\142\x6f\162\144\145\x72\x2d\142\x6f\x78\x3b\142\157\x72\144\145\x72\x2d\x63\x6f\154\157\x72\72\40\43\x30\60\x37\x33\x41\101\x3b\x62\157\x78\55\163\150\x61\x64\157\x77\72\40\60\160\170\x20\x31\x70\170\x20\x30\x70\x78\40\162\147\x62\141\x28\x31\62\x30\x2c\x20\x32\60\x30\x2c\40\62\63\x30\54\x20\60\56\x36\x29\40\151\x6e\163\145\x74\x3b\x63\157\154\157\162\72\x20\x23\x46\x46\106\73\x22\164\x79\160\145\75\x22\x62\165\x74\x74\157\156\x22\x20\166\x61\x6c\165\x65\75\x22\x44\157\x6e\145\x22\x20\157\156\x43\x6c\151\x63\153\75\42\x73\145\x6c\x66\x2e\x63\154\157\x73\x65\x28\x29\73\x22\76\74\57\x64\x69\166\76";
Qi:
exit;
goto Ef;
z5:
return TRUE;
Ef:
O9:
}
private static function doDecryptElement(DOMElement $tL, XMLSecurityKey $Yy, array &$sB)
{
$g0 = new XMLSecEnc();
$g0->setNode($tL);
$g0->type = $tL->getAttribute("\124\171\x70\x65");
$mT = $g0->locateKey($tL);
if ($mT) {
goto HW;
}
echo sprintf("\x43\x6f\x75\x6c\144\x20\156\157\x74\x20\154\157\143\141\x74\145\40\x6b\x65\x79\x20\141\154\x67\157\x72\151\x74\x68\155\x20\x69\156\40\145\156\x63\162\x79\160\x74\145\144\40\144\x61\164\x61\x2e");
exit;
HW:
$zZ = $g0->locateKeyInfo($mT);
if ($zZ) {
goto dr;
}
echo sprintf("\103\x6f\x75\154\144\40\x6e\x6f\164\40\x6c\x6f\x63\x61\164\x65\40\x3c\x64\163\x69\147\x3a\113\x65\171\x49\156\146\x6f\76\40\x66\157\162\x20\x74\x68\x65\x20\x65\x6e\x63\x72\x79\160\x74\x65\144\40\153\x65\171\56");
exit;
dr:
$Ie = $Yy->getAlgorithm();
if ($zZ->isEncrypted) {
goto AU;
}
$bh = $mT->getAlgorithm();
if (!($Ie !== $bh)) {
goto Xk;
}
echo sprintf("\101\154\x67\157\162\151\164\x68\155\40\x6d\151\x73\x6d\x61\164\x63\150\x20\142\145\164\x77\x65\x65\156\40\151\156\x70\x75\x74\x20\x6b\x65\171\40\141\x6e\144\x20\x6b\x65\171\40\x69\x6e\x20\x6d\145\x73\163\141\147\x65\x2e\x20" . "\x4b\145\x79\40\167\141\x73\x3a\x20" . xss::filter(var_export($Ie, TRUE)) . "\73\40\155\145\163\163\141\x67\145\40\x77\x61\x73\x3a\x20" . xss::filter(var_export($bh, TRUE)));
exit;
Xk:
$mT = $Yy;
goto id;
AU:
$X7 = $zZ->getAlgorithm();
if (!in_array($X7, $sB, TRUE)) {
goto BR;
}
echo sprintf("\x41\x6c\x67\x6f\x72\x69\x74\x68\155\40\x64\151\x73\x61\142\154\145\x64\72\x20" . xss::filter(var_export($X7, TRUE)));
exit;
BR:
if (!($X7 === XMLSecurityKey::RSA_OAEP_MGF1P && $Ie === XMLSecurityKey::RSA_1_5)) {
goto R3;
}
$Ie = XMLSecurityKey::RSA_OAEP_MGF1P;
R3:
if (!($Ie !== $X7)) {
goto Gz;
}
echo sprintf("\x41\x6c\x67\x6f\x72\151\x74\150\x6d\x20\x6d\151\163\x6d\141\x74\143\150\40\142\145\164\167\145\x65\156\40\151\x6e\160\165\164\x20\153\x65\x79\x20\x61\156\144\x20\153\x65\x79\x20\x75\163\x65\144\40\164\157\40\x65\x6e\x63\x72\x79\x70\164\x20" . "\x20\x74\150\145\x20\x73\x79\x6d\x6d\145\164\162\x69\143\x20\153\145\x79\x20\146\157\162\x20\x74\150\x65\x20\x6d\x65\x73\163\x61\147\145\x2e\40\113\x65\x79\40\167\141\163\x3a\40" . xss::filter(var_export($Ie, TRUE)) . "\x3b\x20\155\x65\163\163\x61\x67\145\x20\167\141\x73\x3a\40" . xss::filter(var_export($X7, TRUE)));
exit;
Gz:
$Ll = $zZ->encryptedCtx;
$zZ->key = $Yy->key;
$id = $mT->getSymmetricKeySize();
if (!($id === NULL)) {
goto Dl;
}
echo sprintf("\125\x6e\x6b\156\157\x77\156\x20\153\x65\x79\40\163\151\x7a\145\x20\146\x6f\x72\x20\x65\x6e\143\162\171\x70\x74\x69\157\156\40\x61\x6c\x67\x6f\x72\x69\x74\x68\x6d\x3a\x20" . xss::filter(var_export($mT->type, TRUE)));
exit;
Dl:
try {
$fy = $Ll->decryptKey($zZ);
if (!(strlen($fy) != $id)) {
goto nu;
}
echo sprintf("\125\x6e\x65\170\160\145\143\164\x65\144\x20\153\145\x79\40\x73\x69\x7a\145\40\50" . strlen($fy) * 8 . "\142\x69\x74\x73\x29\40\x66\157\x72\x20\145\156\x63\162\x79\160\164\x69\x6f\x6e\x20\141\x6c\x67\157\162\151\x74\150\x6d\x3a\40" . xss::filter(var_export($mT->type, TRUE)));
exit;
nu:
} catch (Exception $Nt) {
$NU = $Ll->getCipherValue();
$hv = openssl_pkey_get_details($zZ->key);
$hv = sha1(serialize($hv), TRUE);
$fy = sha1($NU . $hv, TRUE);
if (strlen($fy) > $id) {
goto qp;
}
if (strlen($fy) < $id) {
goto w9;
}
goto cK;
qp:
$fy = substr($fy, 0, $id);
goto cK;
w9:
$fy = str_pad($fy, $id);
cK:
}
$mT->loadkey($fy);
id:
$XK = $mT->getAlgorithm();
if (!in_array($XK, $sB, TRUE)) {
goto eJ;
}
echo sprintf("\101\x6c\x67\x6f\x72\x69\x74\x68\155\40\x64\151\163\141\142\x6c\145\x64\x3a\40" . xss::filter(var_export($XK, TRUE)));
exit;
eJ:
$fq = $g0->decryptNode($mT, FALSE);
$Rq = "\x3c\162\x6f\x6f\164\x20\x78\155\x6c\156\163\72\x73\141\x6d\x6c\x3d\x22\165\162\x6e\x3a\157\141\x73\x69\163\x3a\x6e\x61\x6d\145\x73\72\164\x63\x3a\x53\x41\x4d\x4c\x3a\x32\x2e\60\x3a\x61\x73\x73\x65\162\x74\x69\x6f\156\x22\x20" . "\170\x6d\x6c\x6e\x73\x3a\170\x73\151\x3d\x22\150\x74\x74\x70\72\x2f\57\167\x77\167\x2e\x77\63\x2e\157\x72\147\x2f\62\x30\60\61\x2f\130\115\x4c\x53\x63\150\145\x6d\141\x2d\151\156\163\x74\141\156\x63\145\x22\76" . $fq . "\x3c\x2f\x72\157\157\164\x3e";
$fs = new DOMDocument();
if (@$fs->loadXML($Rq)) {
goto Z9;
}
echo sprintf("\106\141\x69\x6c\x65\144\x20\x74\x6f\40\160\141\x72\163\x65\x20\144\145\x63\x72\171\x70\x74\x65\x64\x20\130\x4d\114\x2e\x20\115\141\171\x62\145\40\x74\150\145\40\x77\x72\x6f\x6e\x67\x20\163\150\141\x72\x65\144\x6b\x65\x79\x20\167\141\163\x20\x75\163\x65\x64\77");
throw new Exception("\106\x61\151\x6c\145\144\x20\164\x6f\x20\x70\141\162\163\145\40\144\145\x63\162\x79\160\164\x65\144\40\x58\115\x4c\56\x20\x4d\x61\171\142\145\40\x74\x68\x65\x20\167\x72\157\156\x67\x20\163\x68\141\x72\x65\x64\x6b\145\x79\40\x77\141\163\40\165\163\145\144\77");
Z9:
$K9 = $fs->firstChild->firstChild;
if (!($K9 === NULL)) {
goto DL;
}
echo sprintf("\115\x69\163\163\151\156\147\40\x65\x6e\x63\162\x79\160\164\145\144\x20\x65\x6c\x65\x6d\x65\x6e\x74\x2e");
throw new Exception("\x4d\x69\163\163\151\x6e\x67\40\x65\156\143\162\171\160\164\145\144\x20\145\154\x65\x6d\145\x6e\x74\x2e");
DL:
if ($K9 instanceof DOMElement) {
goto cG;
}
echo sprintf("\x44\145\143\x72\x79\160\x74\145\144\x20\145\154\145\155\x65\x6e\x74\40\167\141\x73\x20\156\x6f\x74\x20\141\x63\164\165\141\x6c\154\x79\x20\141\x20\x44\x4f\x4d\x45\154\145\155\x65\156\x74\x2e");
cG:
return $K9;
}
public static function decryptElement(DOMElement $tL, XMLSecurityKey $Yy, array $sB = array(), XMLSecurityKey $El = NULL)
{
try {
return self::doDecryptElement($tL, $Yy, $sB);
} catch (Exception $Nt) {
if (is_null($El)) {
goto kw;
}
try {
return self::doDecryptElement($tL, $El, $sB);
} catch (Exception $Qk) {
}
kw:
echo sprintf("\x46\x61\151\154\145\x64\x20\164\157\40\x64\x65\x63\x72\x79\160\164\40\x58\x4d\x4c\x20\x65\x6c\x65\155\145\156\164\x2e");
exit;
}
}
public static function showErrorMessage($q6, $Kq, $EK)
{
echo "\74\x64\151\x76\40\163\x74\x79\x6c\x65\x3d\x22\146\x6f\156\x74\x2d\x66\x61\x6d\151\154\x79\72\103\x61\x6c\151\x62\162\x69\x3b\x70\141\144\144\151\x6e\147\72\60\x20\x33\x25\x3b\42\76";
echo "\x3c\x64\x69\x76\40\163\x74\171\x6c\145\75\x22\143\157\x6c\157\162\72\x20\43\141\x39\x34\x34\64\x32\73\x62\141\143\153\147\162\157\165\156\x64\x2d\143\x6f\x6c\157\162\72\x20\x23\146\x32\x64\x65\144\145\73\160\141\x64\144\x69\156\147\72\x20\61\65\160\x78\73\155\x61\x72\x67\151\x6e\55\142\x6f\164\x74\x6f\x6d\72\x20\x32\60\x70\x78\73\164\145\x78\164\x2d\x61\154\x69\x67\x6e\x3a\143\145\156\x74\x65\162\73\142\157\x72\x64\x65\162\72\x31\160\x78\x20\x73\157\x6c\x69\x64\40\x23\x45\x36\102\x33\x42\62\x3b\146\x6f\156\x74\55\163\151\172\145\x3a\x31\70\x70\x74\73\42\x3e\x20\105\122\122\x4f\x52\74\57\144\151\166\76\12\40\40\40\x20\x20\40\40\x20\x20\40\x20\x20\x20\40\40\40\40\x20\40\x20\x20\x20\x20\x20\x20\40\x20\40\x20\x20\40\40\x3c\x64\151\x76\40\163\164\171\x6c\x65\x3d\42\143\x6f\x6c\x6f\x72\72\40\43\x61\x39\64\x34\x34\62\73\146\157\x6e\x74\x2d\163\151\x7a\x65\x3a\x31\64\x70\x74\73\x20\x6d\141\162\x67\151\x6e\x2d\x62\157\x74\164\x6f\x6d\x3a\62\x30\160\170\x3b\42\x3e\74\160\x3e\x3c\163\x74\x72\157\x6e\x67\76\x45\162\162\x6f\162\x3a\40\x3c\x2f\x73\x74\162\x6f\x6e\147\x3e" . xss::filter($q6) . "\74\x2f\160\x3e\12\40\x20\x20\x20\40\40\40\x20\40\x20\40\40\40\40\x20\x20\x20\40\x20\x20\x20\40\40\x20\40\40\x20\x20\40\x20\x20\x20\40\40\40\x20\x3c\160\x3e" . xss::filter($Kq) . "\x3c\57\x70\76\xa\40\x20\x20\x20\x20\40\x20\x20\x20\x20\x20\x20\40\40\40\40\40\x20\40\40\40\40\40\40\x20\x20\40\x20\x20\x20\x20\x20\x20\x20\x20\40\x3c\160\x3e\x3c\x73\x74\x72\x6f\x6e\x67\76\120\157\x73\x73\x69\142\x6c\145\x20\x43\141\165\x73\145\x3a\x20\x3c\57\x73\164\162\157\156\x67\x3e" . xss::filter($EK) . "\74\x2f\160\x3e\12\40\40\40\x20\x20\40\x20\x20\x20\40\40\x20\40\40\40\40\x20\40\40\x20\40\x20\40\40\x20\40\40\x20\x20\40\x20\x20\74\x2f\x64\x69\166\x3e\12\x20\40\x20\40\40\40\x20\40\40\40\x20\40\x20\40\x20\x20\x20\40\40\40\40\x20\40\x20\40\x20\x20\x20\x20\x20\x20\40\x3c\144\151\x76\40\x73\x74\x79\154\145\x3d\x22\155\x61\162\147\151\x6e\x3a\63\45\73\x64\x69\163\160\x6c\141\x79\72\142\154\x6f\x63\153\x3b\x74\x65\170\x74\55\141\x6c\x69\x67\156\72\143\145\156\x74\x65\x72\73\x22\76\74\x2f\144\151\x76\x3e\12\40\40\x20\x20\x20\x20\x20\40\40\x20\40\x20\x20\40\40\x20\40\40\40\x20\40\x20\40\40\40\x20\40\x20\x20\x20\x20\x20\x3c\144\x69\166\40\163\164\x79\154\x65\x3d\x22\x6d\141\162\x67\x69\x6e\72\x33\45\x3b\x64\151\x73\x70\154\x61\x79\72\x62\x6c\157\143\153\73\x74\x65\x78\x74\x2d\x61\x6c\x69\x67\156\72\x63\x65\x6e\164\x65\x72\73\x22\76\xa\40\40\40\x20\40\x20\40\40\x20\x20\40\x20\40\x20\40\40\x20\x20\40\x20\x20\x20\40\x20\40\x20\x20\x20\x20\40\40\x20\74\57\144\x69\166\x3e";
exit;
}
public static function get_mapped_groups($Tn, $Rx)
{
$Uz = array();
if (empty($Rx)) {
goto MJ;
}
$AE = array();
$H7 = 1;
B0:
if (!($H7 < 10)) {
goto JF;
}
$yi = $Tn->get("\x67\162\157\x75\160" . $H7 . "\137\x6d\x61\160");
$AE[$H7] = explode("\73", $yi);
$H7++;
goto B0;
JF:
MJ:
foreach ($Rx as $sX) {
if (empty($sX)) {
goto MC;
}
$H7 = 0;
$x6 = false;
uA:
if (!($H7 < 9 && !$x6)) {
goto FZ;
}
if (!(!empty($AE[$H7]) && in_array($sX, $AE[$H7]))) {
goto Jx;
}
$Uz[] = $Tn->get("\x67\x72\157\x75\160" . $H7);
$x6 = true;
Jx:
$H7++;
goto uA;
FZ:
MC:
e4:
}
fy:
return array_unique($Uz);
}
public static function getEncryptionAlgorithm($OC)
{
switch ($OC) {
case "\150\x74\x74\160\x3a\x2f\x2f\x77\x77\167\x2e\x77\x33\x2e\157\162\147\57\62\x30\x30\61\x2f\x30\x34\x2f\x78\155\154\x65\x6e\143\43\x74\x72\151\x70\x6c\145\x64\145\163\x2d\143\142\x63":
return XMLSecurityKey::TRIPLEDES_CBC;
goto Jm;
case "\150\164\x74\x70\x3a\x2f\x2f\167\167\x77\56\x77\63\x2e\x6f\x72\x67\57\62\x30\x30\x31\x2f\x30\x34\x2f\170\x6d\x6c\x65\x6e\143\x23\x61\145\163\61\x32\70\55\x63\142\143":
return XMLSecurityKey::AES128_CBC;
case "\150\164\x74\160\x3a\x2f\x2f\x77\167\167\56\x77\63\x2e\157\x72\x67\57\x32\60\x30\61\57\x30\64\x2f\170\x6d\154\145\156\143\43\141\145\x73\61\71\62\x2d\x63\x62\143":
return XMLSecurityKey::AES192_CBC;
goto Jm;
case "\x68\x74\x74\160\72\x2f\57\x77\167\x77\56\167\63\x2e\157\162\147\x2f\x32\x30\60\x31\57\x30\64\57\170\155\x6c\x65\156\143\43\x61\x65\x73\x32\x35\66\x2d\143\142\143":
return XMLSecurityKey::AES256_CBC;
goto Jm;
case "\x68\164\x74\x70\x3a\x2f\x2f\167\x77\x77\x2e\167\x33\56\157\162\x67\x2f\x32\60\x30\61\x2f\60\x34\x2f\170\x6d\x6c\145\x6e\143\43\162\163\x61\55\61\x5f\x35":
return XMLSecurityKey::RSA_1_5;
goto Jm;
case "\x68\x74\x74\160\72\57\57\167\x77\167\x2e\167\63\x2e\157\x72\x67\x2f\62\60\60\61\x2f\x30\x34\x2f\x78\155\x6c\x65\x6e\143\x23\162\163\x61\x2d\157\x61\145\x70\55\x6d\147\x66\61\x70":
return XMLSecurityKey::RSA_OAEP_MGF1P;
goto Jm;
case "\x68\x74\164\x70\72\x2f\57\167\x77\x77\x2e\167\x33\x2e\x6f\162\147\x2f\62\60\60\60\x2f\x30\71\57\170\155\154\x64\163\151\x67\43\144\x73\x61\x2d\x73\x68\x61\61":
return XMLSecurityKey::DSA_SHA1;
goto Jm;
case "\150\164\x74\x70\72\57\x2f\x77\167\167\56\x77\63\x2e\157\162\x67\57\62\x30\60\60\x2f\x30\x39\x2f\170\155\154\144\x73\x69\147\x23\162\x73\141\55\163\150\141\61":
return XMLSecurityKey::RSA_SHA1;
goto Jm;
case "\150\x74\x74\160\x3a\x2f\x2f\167\x77\x77\56\x77\x33\56\157\x72\147\57\62\x30\x30\x31\57\x30\64\57\x78\x6d\x6c\144\163\151\147\55\x6d\157\x72\x65\43\x72\x73\x61\x2d\x73\150\141\62\x35\66":
return XMLSecurityKey::RSA_SHA256;
goto Jm;
case "\150\164\164\x70\x3a\x2f\x2f\167\x77\x77\56\167\x33\56\x6f\x72\x67\x2f\62\60\60\x31\57\x30\x34\x2f\x78\x6d\154\144\x73\151\147\55\x6d\157\x72\x65\43\x72\x73\141\x2d\163\150\141\x33\70\64":
return XMLSecurityKey::RSA_SHA384;
goto Jm;
case "\150\x74\164\160\x3a\57\57\x77\x77\x77\56\167\63\x2e\157\x72\147\x2f\62\60\60\61\57\60\x34\57\170\x6d\154\144\x73\x69\x67\x2d\x6d\x6f\x72\145\x23\x72\x73\141\x2d\x73\x68\141\x35\61\62":
return XMLSecurityKey::RSA_SHA512;
goto Jm;
default:
echo sprintf("\111\156\166\x61\x6c\151\x64\40\x45\x6e\x63\162\x79\160\164\x69\x6f\x6e\40\115\x65\164\x68\x6f\144\x3a\40" . xss::filter($OC));
exit;
goto Jm;
}
Rn:
Jm:
}
public static function sanitize_certificate($Ii)
{
$Ii = preg_replace("\x2f\x5b\15\xa\135\x2b\57", '', $Ii);
$Ii = str_replace("\55", '', $Ii);
$Ii = str_replace("\x42\105\107\111\116\40\x43\x45\x52\x54\x49\x46\111\103\101\x54\105", '', $Ii);
$Ii = str_replace("\x45\x4e\104\40\x43\x45\122\124\x49\106\111\103\x41\x54\105", '', $Ii);
$Ii = str_replace("\x20", '', $Ii);
$Ii = chunk_split($Ii, 64, "\15\xa");
$Ii = "\55\x2d\x2d\55\x2d\102\x45\107\x49\x4e\40\103\x45\122\x54\x49\106\x49\103\101\x54\x45\55\x2d\x2d\55\55\15\xa" . $Ii . "\x2d\55\x2d\x2d\x2d\x45\116\104\x20\x43\105\122\x54\111\106\x49\103\101\x54\105\x2d\x2d\x2d\55\55";
return $Ii;
}
public static function upload_metadata($r_, $A0 = false)
{
if (!empty(\Drupal::config("\155\151\x6e\151\157\162\x61\156\147\x65\137\x73\x61\155\154\x2e\x73\x65\x74\x74\x69\156\x67\163")->get("\155\151\x6e\151\x6f\162\x61\156\x67\145\137\163\141\155\154\137\x69\144\160\x5f\156\141\x6d\145"))) {
goto lX;
}
\Drupal::configFactory()->getEditable("\155\x69\x6e\151\157\x72\141\156\147\x65\137\163\x61\155\x6c\56\163\145\x74\x74\x69\156\x67\163")->set("\155\x69\x6e\x69\157\162\141\156\x67\x65\137\x73\x61\x6d\x6c\x5f\x69\144\160\137\x6e\x61\x6d\145", "\111\x64\145\156\x74\x69\164\171\x20\x50\x72\x6f\166\151\144\145\162")->save();
lX:
global $base_url;
$dX = new \DOMDocument();
@$dX->loadXML($r_);
restore_error_handler();
$WS = $dX->firstChild;
if (!empty($WS)) {
goto w1;
}
\Drupal::messenger()->addError(t("\120\x6c\145\x61\163\x65\x20\160\x72\157\x76\151\144\145\40\x61\40\x76\x61\154\x69\144\40\x6d\x65\164\x61\144\x61\164\141\x20\x66\x69\x6c\x65\56"));
return;
goto LS;
w1:
$Oy = new MetadataReader($dX);
$ve = $Oy->getIdentityProviders();
if (!empty($ve)) {
goto gx;
}
\Drupal::messenger()->addMessage(t("\120\154\x65\x61\x73\x65\x20\160\162\157\166\151\x64\145\40\x61\x20\166\x61\154\x69\x64\40\x6d\x65\x74\x61\x64\141\164\x61\x20\x66\x69\x6c\145\x2e"), "\145\162\162\x6f\x72");
return;
gx:
foreach ($ve as $fy => $ol) {
$L6 = $ol->getLoginURL("\110\x54\x54\120\x2d\x52\x65\x64\151\x72\x65\143\164");
$FN = $ol->getLogoutURL("\x48\124\124\x50\x2d\x52\x65\x64\151\162\x65\143\x74");
if (!empty($L6)) {
goto ke;
}
$L6 = $ol->getLoginURL("\110\124\124\120\55\120\117\x53\x54");
ke:
$K7 = $ol->getEntityID();
$MO = $ol->getSigningCertificate();
$Q7 = $base_url;
if (!($A0 == true)) {
goto Pp;
}
\Drupal::configFactory()->getEditable("\155\x69\x6e\x69\x6f\162\141\x6e\x67\x65\x5f\163\x61\x6d\x6c\x2e\x73\145\x74\x74\x69\x6e\147\163")->set("\x6d\151\x6e\x69\x6f\x72\141\156\x67\x65\x5f\x73\x61\x6d\x6c\137\x73\x70\137\x69\x73\163\165\x65\162", $Q7)->save();
\Drupal::configFactory()->getEditable("\155\151\x6e\x69\157\x72\x61\x6e\147\x65\x5f\x73\141\155\x6c\x2e\163\x65\164\164\151\156\x67\163")->set("\155\151\156\151\157\x72\141\x6e\147\x65\137\x73\x61\x6d\x6c\137\x69\144\160\137\154\x6f\147\151\156\x5f\165\x72\154", $L6)->save();
Pp:
\Drupal::configFactory()->getEditable("\x6d\151\156\151\157\x72\141\x6e\x67\145\137\163\x61\x6d\154\56\163\x65\164\x74\x69\156\147\x73")->set("\x6d\151\x6e\151\x6f\x72\x61\156\147\145\x5f\x73\x61\x6d\154\x5f\x69\144\160\x5f\x69\x73\x73\x75\145\162", $K7)->save();
\Drupal::configFactory()->getEditable("\155\151\x6e\x69\x6f\162\x61\x6e\147\x65\x5f\x73\x61\155\154\56\x73\145\164\164\x69\x6e\x67\163")->set("\155\x69\156\x69\157\x72\141\x6e\x67\x65\137\163\x61\x6d\154\x5f\x69\144\160\x5f\143\x65\x72\x74\151\x66\x69\143\141\x74\x65", $MO[0])->save();
CZ:
}
Ts:
if (!($A0 == true)) {
goto zo;
}
\Drupal::messenger()->addStatus(t("\x49\144\x65\x6e\x74\151\x74\x79\x20\x50\x72\157\166\x69\x64\145\162\40\103\x6f\156\146\x69\x67\x75\x72\x61\x74\x69\x6f\x6e\40\x73\x75\x63\x63\x65\x73\163\x66\165\x6c\x6c\171\x20\x73\141\166\x65\x64\x2e"));
return;
zo:
LS:
}
public static function Print_SAML_Request($q5, $a8)
{
header("\103\157\x6e\x74\x65\156\x74\55\x54\x79\x70\x65\72\40\164\145\170\x74\x2f\150\164\155\x6c");
$WI = new \DOMDocument();
$WI->preserveWhiteSpace = false;
$WI->formatOutput = true;
$WI->loadXML($q5);
if ($a8 == "\144\151\x73\x70\x6c\x61\x79\x53\x41\115\x4c\122\145\x71\x75\145\163\x74") {
goto nv;
}
$dn = "\x53\101\x4d\114\x20\122\145\163\160\x6f\x6e\163\145";
goto sq;
nv:
$dn = "\x53\101\x4d\x4c\40\122\x65\x71\x75\x65\163\164";
sq:
$uc = $WI->saveXML();
$EX = htmlentities($uc);
$EX = rtrim($EX);
$Rq = simplexml_load_string($uc);
$a4 = json_encode($Rq);
$cy = json_decode($a4);
$ff = Utilities::getModulePath() . "\57\x63\163\x73\x2f\x6d\151\156\x69\x6f\162\x61\x6e\x67\x65\137\x73\141\155\x6c\x2e\155\157\144\165\154\145\56\143\x73\163";
$es = Utilities::getModulePath() . "\57\x6a\163\x2f\x73\x68\x6f\167\123\101\115\114\x52\x65\163\160\157\x6e\163\145\56\152\163";
echo "\74\x6c\x69\156\153\x20\x72\x65\154\75\x27\163\164\171\154\x65\163\150\x65\145\x74\x27\x20\x69\144\x3d\47\x6d\157\x5f\163\141\x6d\154\x5f\141\x64\155\151\x6e\x5f\x73\145\164\x74\x69\x6e\x67\x73\x5f\163\x74\x79\154\x65\x2d\x63\163\x73\x27\x20\x20\x68\x72\x65\x66\75\47" . xss::filter($ff) . "\47\x20\x74\x79\160\x65\75\47\x74\x65\170\x74\57\143\x73\163\x27\40\x6d\145\144\x69\141\x3d\47\141\154\x6c\47\x20\x2f\x3e\xa\x20\x20\40\x20\x20\x20\40\40\40\40\x20\40\74\x73\x63\162\151\x70\164\x20\x73\x72\x63\x3d\x22" . xss::filter($es) . "\42\76\74\x2f\163\143\x72\151\x70\x74\76\12\11\11\x9\x3c\144\151\166\40\x63\x6c\141\x73\x73\x3d\x22\x6d\x6f\x2d\144\151\x73\x70\154\x61\x79\x2d\x6c\157\147\163\x22\x20\x3e\x3c\x70\40\x74\x79\160\x65\x3d\x22\164\145\170\164\x22\40\x20\40\151\x64\75\x22\123\101\x4d\114\137\164\x79\160\x65\x22\76" . xss::filter($dn) . "\x3c\x2f\x70\76\x3c\x2f\144\151\x76\76\12\12\x9\x9\x9\74\x64\x69\x76\x20\x74\171\x70\x65\x3d\42\164\145\x78\164\42\40\151\144\x3d\x22\x53\101\115\114\137\144\x69\x73\x70\154\141\171\42\40\x63\x6c\x61\x73\163\x3d\x22\x6d\x6f\55\x64\151\163\x70\154\141\x79\x2d\x62\x6c\157\x63\153\x22\x3e\x3c\160\162\x65\x20\x63\x6c\x61\163\x73\x3d\47\x62\162\165\163\x68\x3a\x20\170\x6d\154\73\x27\x3e" . xss::filter($EX) . "\x3c\57\160\x72\145\76\x3c\57\x64\x69\166\x3e\12\x9\11\11\74\142\162\x3e\12\11\x9\x9\74\x64\151\x76\x20\x73\x74\171\x6c\x65\75\42\x6d\141\x72\x67\x69\156\x3a\x33\45\73\x64\151\x73\160\x6c\141\171\72\142\154\x6f\x63\x6b\x3b\x74\x65\170\x74\x2d\141\154\x69\147\156\72\143\145\156\164\145\162\73\x22\76\12\12\x9\x9\11\x3c\x64\151\166\40\163\x74\x79\154\145\75\42\155\141\x72\x67\x69\x6e\72\63\45\73\144\x69\163\160\154\141\x79\x3a\142\x6c\157\x63\153\x3b\x74\145\170\x74\55\141\x6c\x69\x67\x6e\72\x63\x65\156\164\145\162\x3b\42\x20\76\12\12\x20\x20\40\40\40\x20\x20\40\40\40\x20\40\x3c\57\x64\151\x76\x3e\xa\11\x9\x9\74\x62\x75\x74\164\x6f\x6e\x20\151\144\75\x22\x63\157\160\171\42\40\x6f\156\x63\x6c\x69\143\x6b\x3d\42\143\x6f\x70\x79\x44\x69\166\x54\x6f\x43\x6c\151\x70\142\157\141\x72\144\50\51\x22\x20\x20\163\x74\x79\154\x65\75\42\x70\x61\144\144\151\156\147\72\61\x25\73\x77\x69\x64\x74\x68\72\61\60\60\x70\170\73\x62\x61\143\153\147\x72\157\165\x6e\144\x3a\40\x23\x30\60\x39\x31\103\104\40\x6e\x6f\156\x65\x20\x72\145\160\145\141\x74\40\x73\x63\162\x6f\154\x6c\40\60\x25\40\x30\x25\x3b\x63\165\162\163\157\x72\72\40\160\157\x69\x6e\164\145\162\73\146\157\156\x74\x2d\x73\151\x7a\x65\x3a\61\65\160\x78\73\x62\157\162\x64\x65\x72\x2d\x77\151\x64\x74\x68\72\40\61\x70\x78\x3b\142\x6f\162\x64\x65\x72\x2d\x73\x74\x79\x6c\x65\72\40\x73\x6f\x6c\151\x64\73\x62\157\x72\144\x65\x72\55\x72\x61\144\x69\x75\163\x3a\40\x33\160\170\x3b\167\150\151\164\145\x2d\x73\160\141\x63\x65\72\x20\156\157\x77\x72\141\160\73\x62\x6f\x78\55\163\x69\x7a\151\x6e\x67\72\40\142\x6f\x72\x64\145\x72\x2d\x62\x6f\x78\x3b\x62\x6f\x72\144\145\162\55\x63\x6f\154\x6f\162\72\40\43\x30\60\67\x33\101\x41\73\x62\x6f\170\x2d\x73\x68\141\x64\x6f\167\x3a\40\60\160\170\40\61\x70\x78\x20\x30\x70\170\x20\x72\x67\142\x61\50\61\62\x30\54\x20\62\x30\60\x2c\40\62\x33\60\x2c\x20\x30\56\66\51\40\151\x6e\163\145\x74\73\x63\x6f\154\157\x72\72\40\43\106\106\106\x3b\42\40\x3e\103\x6f\x70\171\x3c\x2f\142\x75\x74\164\157\156\x3e\12\11\x9\11\x26\x6e\142\x73\160\x3b\12\x20\40\40\40\x20\40\40\x20\x20\40\40\40\x20\x20\40\74\x62\165\164\164\x6f\x6e\40\151\x64\x3d\42\144\x77\x6e\55\142\164\156\x22\40\157\x6e\143\x6c\x69\143\153\75\42\x64\157\167\156\x6c\157\141\x64\50\x29\42\x20\163\164\x79\x6c\x65\75\42\x70\x61\x64\x64\x69\156\x67\72\x31\x25\73\x77\x69\x64\x74\x68\x3a\x31\x30\x30\160\x78\x3b\142\141\143\153\147\162\x6f\x75\x6e\x64\72\40\x23\60\60\x39\x31\103\x44\x20\156\x6f\x6e\x65\x20\162\x65\x70\145\x61\x74\x20\x73\x63\162\157\x6c\154\x20\60\45\40\60\45\x3b\x63\165\x72\x73\x6f\x72\72\40\x70\157\x69\156\164\x65\162\x3b\146\x6f\156\x74\x2d\x73\x69\172\x65\x3a\x31\x35\160\170\73\x62\157\x72\x64\145\x72\55\x77\151\x64\x74\x68\72\x20\61\160\x78\x3b\142\157\162\144\145\x72\55\163\164\x79\154\145\72\40\x73\157\154\151\x64\x3b\142\157\x72\144\x65\162\55\x72\x61\x64\151\165\163\72\x20\63\x70\170\73\167\150\x69\x74\x65\55\x73\160\x61\143\145\72\40\x6e\157\x77\162\x61\x70\x3b\142\157\170\55\163\151\x7a\x69\x6e\x67\72\40\142\x6f\x72\144\x65\x72\x2d\x62\157\170\73\x62\x6f\x72\144\x65\x72\x2d\x63\157\x6c\157\162\72\40\43\x30\60\x37\63\101\101\x3b\x62\x6f\x78\x2d\x73\x68\141\x64\x6f\x77\72\x20\60\x70\170\x20\x31\x70\170\40\x30\x70\170\x20\x72\x67\x62\141\x28\x31\x32\x30\54\x20\62\60\x30\54\x20\x32\63\x30\54\40\x30\x2e\x36\51\x20\151\156\163\x65\x74\73\143\157\154\x6f\x72\72\x20\43\x46\x46\x46\73\x22\76\x44\x6f\x77\x6e\154\x6f\x61\144\x3c\x2f\x62\x75\x74\164\x6f\156\76\xa\x9\x9\x9\74\x2f\144\x69\166\x3e\xa\x9\x9\x9\74\x2f\144\x69\166\76\xa\11\x9\x9";
ob_end_flush();
exit;
}
public static function getBaseUrl()
{
global $base_url;
$ff = \Drupal::config("\x6d\x69\x6e\x69\x6f\162\x61\156\x67\145\137\x73\x61\x6d\154\56\x73\x65\164\x74\x69\156\x67\163")->get("\x6d\151\156\x69\157\x72\x61\156\147\x65\x5f\163\141\155\x6c\137\142\x61\163\145\x5f\x75\x72\154");
return isset($ff) && !empty($ff) ? $ff : $base_url;
}
public static function getSpIssuer()
{
$Fs = \Drupal::config("\155\x69\156\x69\x6f\x72\x61\x6e\147\x65\x5f\163\141\x6d\154\56\163\145\x74\164\151\156\147\x73")->get("\155\151\x6e\151\x6f\162\x61\x6e\147\x65\137\163\x61\x6d\154\137\x65\156\164\151\x74\171\x5f\151\144");
return isset($Fs) && !empty($Fs) ? $Fs : self::getBaseUrl();
}
public static function getSamlRequestPlanName()
{
return "\x64\x72\165\x70\141\154\70\x5f\155\x69\x6e\151\157\162\x61\x6e\x67\145\137\163\x61\155\154\x5f\x73\164\141\x6e\x64\x61\162\144\x5f\x70\154\x61\156";
}
public static function getSamlRequestPlanType()
{
return "\x44\x52\x55\x50\101\114\70\x5f\123\101\x4d\114\137\123\120\x5f\123\x54\x41\x4e\104\101\122\x44\137\x4d\x4f\x44\125\x4c\105";
}
public static function mo_add_premium_tag($qt)
{
global $base_url;
$ff = $base_url . "\57\x61\144\155\151\x6e\x2f\143\x6f\156\x66\151\x67\x2f\160\145\157\x70\x6c\145\x2f\x6d\151\156\151\x6f\162\x61\x6e\147\145\137\163\x61\155\154\57\114\151\x63\x65\x6e\x73\x69\156\x67";
$Aa = "\x3c\x61\x20\150\162\x65\x66\x3d\40\x22" . $ff . "\42\40\163\x74\x79\x6c\x65\x3d\42\143\157\x6c\x6f\x72\x3a\40\162\145\144\73\x20\146\157\156\x74\x2d\x77\x65\x69\147\x68\x74\x3a\x20\154\x69\x67\x68\164\145\162\x3b\42\76\x5b" . $qt . "\135\74\x2f\x61\76";
return $Aa;
}
public static function mo_get_drupal_core_version()
{
return \DRUPAL::VERSION;
}
public static function mo_add_loggers($xP, $A0, $a8)
{
\Drupal::logger("\155\151\x6e\x69\x6f\162\x61\156\147\x65\137\x73\x61\155\x6c")->{$a8}("\40\103\117\104\x45\x3a" . $xP . "\x20\x7c\40" . $A0);
}
public static function mo_save_expiry_details($wj)
{
$YG = isset($wj["\x6c\x69\143\145\156\163\145\x45\x78\160\x69\162\x79"]) ? date("\x6c\x2c\40\x6a\123\x20\x46\40\x59\x20\147\x3a\151\40\x41", strtotime($wj["\154\x69\143\145\156\x73\x65\105\170\x70\x69\162\x79"])) : "\x2d";
$r3 = isset($wj["\x73\x75\160\160\157\x72\x74\105\170\160\x69\x72\171"]) ? date("\x6c\x2c\x20\x6a\x53\x20\106\40\131\x20\x67\x3a\151\x20\x41", strtotime($wj["\163\x75\160\160\157\162\x74\x45\x78\160\x69\162\x79"])) : "\x2d";
$T5 = isset($wj["\x6c\x69\x63\145\156\163\145\x54\x79\160\145"]) ? $wj["\x6c\x69\x63\145\x6e\163\x65\x54\171\x70\145"] : "\55";
$Tu = isset($wj["\x6c\151\143\145\x6e\163\145\x50\154\141\156"]) ? $wj["\154\x69\x63\145\x6e\163\145\120\154\141\156"] : "\55";
$v5 = \Drupal::configFactory()->getEditable("\155\x69\x6e\x69\x6f\162\x61\x6e\x67\x65\x5f\x73\141\155\154\x2e\163\145\164\x74\151\156\147\163");
$v5->set("\x6d\x69\x6e\x69\157\162\x61\x6e\147\145\137\x6d\141\x69\156\164\x65\x6e\x61\156\x63\145\x5f\145\170\x70\x69\162\x79", $YG)->save();
$v5->set("\155\x69\156\x69\157\162\141\156\x67\145\x5f\x73\165\x70\160\x6f\x72\x74\137\145\170\160\151\x72\x79", $r3)->save();
$v5->set("\155\x69\x6e\151\157\162\141\156\147\145\137\x6c\x69\143\145\x6e\x73\145\x5f\x74\x79\x70\x65", $T5)->save();
$v5->set("\x6d\151\x6e\151\x6f\162\x61\156\147\x65\x5f\154\x69\x63\x65\x6e\x73\145\x5f\160\154\x61\156", $Tu)->save();
}
public static function getMetadataValidationTime()
{
$BN = time() + MiniorangeSAMLConstants::TIME_VALID;
return gmdate("\x59\55\x6d\55\x64\x5c\x54\110\x3a\151\x3a\163\134\132", $BN);
}
public static function getUpgradeURL($YC)
{
$kZ = \Drupal::config("\x6d\x69\x6e\151\x6f\162\x61\x6e\x67\x65\x5f\163\141\155\154\x2e\163\x65\164\x74\151\156\147\163")->get("\x6d\x69\156\151\157\x72\x61\x6e\147\x65\x5f\x73\x61\155\154\x5f\x63\165\163\164\157\155\x65\162\x5f\141\x64\155\151\x6e\x5f\145\x6d\141\x69\154");
return "\150\164\164\160\x73\72\x2f\x2f\154\x6f\x67\151\156\x2e\170\x65\x63\x75\x72\151\146\x79\56\143\x6f\155\57\x6d\157\141\163\57\x6c\x6f\x67\x69\x6e\x3f\165\x73\145\162\156\141\155\145\75" . $kZ . "\46\162\145\x64\x69\162\x65\143\x74\x55\x72\x6c\x3d\x68\x74\164\x70\163\x3a\57\57\x6c\x6f\x67\151\x6e\56\x78\145\143\x75\162\151\x66\171\56\x63\157\x6d\x2f\155\x6f\141\x73\x2f\x61\144\x6d\151\x6e\x2f\x63\165\163\x74\157\155\145\162\57\154\x69\143\145\156\x73\145\x72\145\156\x65\x77\x61\x6c\x73\77\162\x65\156\145\x77\x61\x6c\x72\x65\161\x75\x65\x73\x74\75" . $YC;
}
public static function getIsLicenseExpired($hn)
{
if (!($hn != null && $hn != "\55")) {
goto Zk;
}
$Tt = intval((strtotime($hn) - time()) / (60 * 60 * 24));
$jN = array();
$jN["\114\151\143\145\x6e\163\x65\107\157\x69\156\147\124\157\x45\x78\160\x69\x72\x65"] = $Tt < 35 ? TRUE : FALSE;
$jN["\x4c\x69\x63\x65\156\x73\145\101\154\x72\x65\x61\144\x79\105\x78\160\x69\x72\x65\144"] = $Tt < 0 ? TRUE : FALSE;
return $jN;
Zk:
}
public static function getModulePath()
{
return \Drupal::service("\155\157\144\x75\154\145\x5f\x68\x61\156\x64\154\145\x72")->getModule("\x6d\151\156\x69\x6f\162\x61\x6e\147\x65\137\x73\141\155\x6c")->getPath();
}
}
Function Calls
None |
Stats
MD5 | 19dcf020759e5341dee8b410000ee546 |
Eval Count | 0 |
Decode Time | 98 ms |