/** * @param \DOMElement $node * @param DeserializationContext $context * * @throws LightSamlXmlException * * @return void */ public function deserialize(\DOMElement $node, DeserializationContext $context) { $this->checkXmlNodeName($node, 'KeyDescriptor', SamlConstants::NS_METADATA); $this->attributesFromXml($node, array('use')); $list = $context->getXpath()->query('./ds:KeyInfo/ds:X509Data/ds:X509Certificate', $node); if (1 != $list->length) { throw new LightSamlXmlException('Missing X509Certificate node'); } /** @var $x509CertificateNode \DOMElement */ $x509CertificateNode = $list->item(0); $certificateData = trim($x509CertificateNode->textContent); if (false == $certificateData) { throw new LightSamlXmlException('Missing certificate data'); } $this->certificate = new X509Certificate(); $this->certificate->setData($certificateData); }