/**
  * @param SamlMessage $message
  *
  * @return string
  */
 private function signAndSerialize(SamlMessage $message)
 {
     $signatureWriter = new SignatureWriter($this->getCertificate(), $this->getPrivateKey());
     $message->setSignature($signatureWriter);
     $serializationContext = new SerializationContext();
     $message->serialize($serializationContext->getDocument(), $serializationContext);
     $xml = $serializationContext->getDocument()->saveXML();
     return $xml;
 }
 /**
  * @param SamlMessage|EntityDescriptor|EntitiesDescriptor|Assertion $object
  */
 protected function sign($object)
 {
     $object->setSignature(new SignatureWriter($this->getX509Certificate(), KeyHelper::createPrivateKey(__DIR__ . '/../../../../../resources/sample/Certificate/saml.pem', '', true)));
 }
 /**
  * @param SamlMessage    $message
  * @param MessageContext $context
  *
  * @return string
  */
 protected function getMessageEncodedXml(SamlMessage $message, MessageContext $context)
 {
     $message->setSignature(null);
     $serializationContext = $context->getSerializationContext();
     $message->serialize($serializationContext->getDocument(), $serializationContext);
     $xml = $serializationContext->getDocument()->saveXML();
     $this->dispatchSend($xml);
     $xml = gzdeflate($xml);
     $xml = base64_encode($xml);
     return $xml;
 }