public function encryptSoapDoc($siteKey, $objKey, $options = null, $encryptSignature = true) { $enc = new XMLSecEnc(); $xpath = new DOMXPath($this->envelope->ownerDocument); if ($encryptSignature == false) { $nodes = $xpath->query('//*[local-name()="Body"]'); } else { $nodes = $xpath->query('//*[local-name()="Signature"] | //*[local-name()="Body"]'); } foreach ($nodes as $node) { $type = XMLSecEnc::Element; $name = $node->localName; if ($name == "Body") { $type = XMLSecEnc::Content; } $enc->addReference($name, $node, $type); } $enc->encryptReferences($objKey); $enc->encryptKey($siteKey, $objKey, false); $nodes = $xpath->query('//*[local-name()="Security"]'); $signode = $nodes->item(0); $this->addEncryptedKey($signode, $enc, $siteKey, $options); }