本文整理汇总了PHP中XML::saveHTML方法的典型用法代码示例。如果您正苦于以下问题:PHP XML::saveHTML方法的具体用法?PHP XML::saveHTML怎么用?PHP XML::saveHTML使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XML
的用法示例。
在下文中一共展示了XML::saveHTML方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: verifyXML
/**
* Método que verifica la validez de la firma de un XML utilizando RSA y SHA1
* @param xml_data Archivo XML que se desea validar
* @return =true si la firma del documento XML es válida o =false si no lo es
* @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
* @version 2015-09-02
*/
public function verifyXML($xml_data, $tag = null)
{
$doc = new XML();
$doc->loadXML($xml_data);
// preparar datos que se verificarán
$SignaturesElements = $doc->documentElement->getElementsByTagName('Signature');
$Signature = $doc->documentElement->removeChild($SignaturesElements->item($SignaturesElements->length - 1));
$SignedInfo = $Signature->getElementsByTagName('SignedInfo')->item(0);
$SignedInfo->setAttribute('xmlns', $Signature->getAttribute('xmlns'));
$signed_info = $doc->saveHTML($SignedInfo);
$signature = $Signature->getElementsByTagName('SignatureValue')->item(0)->nodeValue;
$pub_key = $Signature->getElementsByTagName('X509Certificate')->item(0)->nodeValue;
// verificar firma
if (!$this->verify($signed_info, $signature, $pub_key)) {
return false;
}
// verificar digest
$digest_original = $Signature->getElementsByTagName('DigestValue')->item(0)->nodeValue;
if ($tag) {
$digest_calculado = base64_encode(sha1($doc->documentElement->getElementsByTagName($tag)->item(0)->C14N(), true));
} else {
$digest_calculado = base64_encode(sha1($doc->C14N(), true));
}
return $digest_original == $digest_calculado;
}