<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>::xml-utils.com:: &#187; Facturae</title>
	<atom:link href="http://xml-utils.com/category/facturae/feed/" rel="self" type="application/rss+xml" />
	<link>http://xml-utils.com</link>
	<description>El rincón práctico de los estándares web</description>
	<lastBuildDate>Fri, 16 Jul 2010 06:23:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Múltiples firmas enveloped en un documento XML Signature</title>
		<link>http://xml-utils.com/2009/08/31/multiples-firmas-enveloped-en-un-documento-xml-signature/</link>
		<comments>http://xml-utils.com/2009/08/31/multiples-firmas-enveloped-en-un-documento-xml-signature/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 12:53:12 +0000</pubDate>
		<dc:creator>borillo</dc:creator>
				<category><![CDATA[Facturae]]></category>
		<category><![CDATA[Firma digital]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://xml-utils.com/?p=43</guid>
		<description><![CDATA[Según la especificación del estándar XML Signature del W3C, las firmas &#8220;enveloped&#8221; son aquellas que están embebidas en los datos originales, de forma que son capaces de excluir su contenido a la hora de verificar el documento original.
Destacan por tener siempre definida una referencia (Reference), con el valor establecido del atributo URI a cadena vacia:
&#60;Reference [...]]]></description>
			<content:encoded><![CDATA[<p>Según la especificación del estándar <a href="http://www.w3.org/TR/xmldsig-core" target="_blank">XML Signature del W3C</a>, las firmas &#8220;enveloped&#8221; son aquellas que están embebidas en los datos originales, de forma que son capaces de excluir su contenido a la hora de verificar el documento original.</p>
<p>Destacan por tener siempre definida una referencia (Reference), con el valor establecido del atributo URI a cadena vacia:</p>
<p><code>&lt;Reference URI=""&gt;<br />
  &lt;Transforms&gt;<br />
    &lt;Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /&gt;<br />
    &lt;Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /&gt;<br />
  &lt;/Transforms&gt;<br />
  &lt;DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /&gt;<br />
  &lt;DigestValue&gt;&lt;/DigestValue&gt;<br />
&lt;/Reference&gt;<br />
</code></p>
<p>Ejemplo de una firma &#8220;enveloped&#8221;:</p>
<p><img src="http://jvnrss.ise.chuo-u.ac.jp/jtg/image/s/xsig_rdf.png" /></p>
<p>El problema es que cuando tenemos más de una firma de este tipo en un mismo documento, es necesario que cada una se excluya a si misma y a las demás firmas a la hora de calcular cualquier digest. Con la transformación &#8220;enveloped&#8221;, sólo se elimina la propia referencia, quedando en el documento el resto de firmas y haciendo que los cálculos de los digest sean incorrectos.</p>
<p>Para resolver este problema, debemos utilizar <a href="http://www.w3.org/TR/xmldsig-core/#sec-XPath" target="_blank">XPath Filtering</a>.</p>
<p>Según la especificación, el filtrado XPath en una transformación que nos permite quedarnos con el conjunto de nodos necesario para poder calcular de forma correcta la firma.</p>
<p>En nuestro caso, sustituyendo la transformación &#8220;enveloped&#8221; por un correcto filtrado, podemos soportar múltiples firmas &#8220;enveloped&#8221; en un mismo documento:</p>
<p><code>&lt;Reference URI=""&gt;<br />
  &lt;Transforms&gt;<br />
    &lt;Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116"&gt;<br />
      &lt;XPath xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"&gt;<br />
        not(ancestor-or-self::dsig:Signature)<br />
      &lt;/XPath&gt;<br />
    &lt;/Transform&gt;<br />
  &lt;/Transforms&gt;<br />
  &lt;DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/&gt;<br />
  &lt;DigestValue&gt;&lt;/DigestValue&gt;<br />
&lt;/Reference&gt;<br />
</code></p>
<p>Si estamos desarrollando en Java, podemos generar este tipo de referencia de la siguiente forma:</p>
<p><code>Transform transform = fac.newTransform(Transform.XPATH, new XPathFilterParameterSpec(<br />
    "not(ancestor-or-self::dsig:Signature)", Collections.singletonMap("dsig", XMLSignature.XMLNS)));<br />
Reference ref = fac.newReference("", fac.newDigestMethod(DigestMethod.SHA1, null),<br />
    Collections.singletonList(transform), null, null);</code></p>
]]></content:encoded>
			<wfw:commentRss>http://xml-utils.com/2009/08/31/multiples-firmas-enveloped-en-un-documento-xml-signature/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crea tus facturas electrónicas de forma sencilla y gratuita</title>
		<link>http://xml-utils.com/2009/05/16/crea-tus-facturas-electronicas-de-forma-sencilla-y-gratuita/</link>
		<comments>http://xml-utils.com/2009/05/16/crea-tus-facturas-electronicas-de-forma-sencilla-y-gratuita/#comments</comments>
		<pubDate>Sat, 16 May 2009 19:59:45 +0000</pubDate>
		<dc:creator>borillo</dc:creator>
				<category><![CDATA[Facturae]]></category>
		<category><![CDATA[Firma digital]]></category>

		<guid isPermaLink="false">http://xml-utils.com/?p=42</guid>
		<description><![CDATA[&#8220;Hazte una Facturae&#8221; es un nuevo servicio disponible de forma gratuita y que permite realizar la emisión y firma digital de facturas en formato Facturae 3.1, generando adicionalmente una visualización de la misma en formato PDF.
Gracias a este servicio, las empresas pequeñas que tienen un volumen de facturación reducido, pueden emitir sus facturas electrónicas sin [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.hazteunafacturae.com/" target="_blank">&#8220;Hazte una Facturae&#8221;</a> es un nuevo servicio disponible de forma gratuita y que permite realizar la emisión y firma digital de facturas en formato <a href="http://www.facturae.es/Documentacion/EsquemaFormato/Version3_1/" target="_blank">Facturae 3.1</a>, generando adicionalmente una visualización de la misma en formato PDF.</p>
<p>Gracias a este servicio, las empresas pequeñas que tienen un volumen de facturación reducido, pueden emitir sus facturas electrónicas sin necesidad de adquirir un sotware especializado de facturación.</p>
<p>Como aspecto a reseñar, las facturas emitidas por este servicio validan perfectamente contra el <a href="http://www11.mityc.es/FacturaE/" target="_blank">servicio de validación</a> que ofrece el Ministerio de Economía y Hacienda.</p>
]]></content:encoded>
			<wfw:commentRss>http://xml-utils.com/2009/05/16/crea-tus-facturas-electronicas-de-forma-sencilla-y-gratuita/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
