<div class="gmail_quote"><div><div class="h5"><div class="gmail_quote">Olá pessoal,<br><br>Aqui na empresa, nosso sistema de emissão de notas fiscais eletrônicas está indo bem.<br><br>Estamos utilizando o XML::Compile::Schema para criar os XMLs a partir dos schemas fornecidos pelo fisco. O Daniel Ruoso me ajudou bastante a entender o funcionamento deste módulo.<br>


<br>Agora que conseguimos adequar as informações para o que é exigido pelos schemas, estamos com um novo desafio que gostaria de compartilhar com os colegas: a assinatura eletrônica do arquivo. Alguém aqui já precisou fazer isso?<br>


<br>Segundo o manual da NFe, os arquivos XML precisam tags que correspondem a assinatura do documento, conforme um exemplo abaixo:<br><br>--------------------------------------<br><br>&lt;Signature xmlns=&quot;<a href="http://www.w3.org/2000/09/xmldsig#" target="_blank">http://www.w3.org/2000/09/xmldsig#</a>&quot;&gt;<br>


        &lt;SignedInfo&gt;<br>                &lt;CanonicalizationMethod Algorithm=&quot;<a href="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" target="_blank">http://www.w3.org/TR/2001/REC-xml-c14n-20010315</a>&quot;/&gt;<br>

                &lt;SignatureMethod Algorithm=&quot;<a href="http://www.w3.org/2000/09/xmldsig#rsa-sha1" target="_blank">http://www.w3.org/2000/09/xmldsig#rsa-sha1</a>&quot; /&gt;<br>
                &lt;Reference URI=&quot;#NFe31060243816719000108550000000010001234567897&quot;&gt;<br>                        &lt;Transforms&gt;<br>                                &lt;Transform Algorithm=&quot;<a href="http://www.w3.org/2000/09/xmldsig#enveloped-signature" target="_blank">http://www.w3.org/2000/09/xmldsig#enveloped-signature</a>&quot;/&gt;<br>


                                &lt;Transform Algorithm=&quot;<a href="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" target="_blank">http://www.w3.org/TR/2001/REC-xml-c14n-20010315</a>&quot;/&gt;<br>                        &lt;/Transforms&gt;<br>


                        &lt;DigestMethod Algorithm=&quot;<a href="http://www.w3.org/2000/09/xmldsig#sha1" target="_blank">http://www.w3.org/2000/09/xmldsig#sha1</a>&quot;/&gt;<br>                        &lt;DigestValue&gt;vFL68WETQ+mvj1aJAMDx+oVi928=&lt;/DigestValue&gt;<br>


                &lt;/Reference&gt;<br>        &lt;/SignedInfo&gt;<br>        &lt;SignatureValue&gt;IhXNhbdL1F9UGb2ydVc5v/gTB/y6r0KIFaf5evUi1i ...&lt;/SignatureValue&gt;<br>        &lt;KeyInfo&gt;<br>                &lt;X509Data&gt;<br>


                        &lt;X509Certificate&gt;MIIFazCCBFOgAwIBAgIQaHEfNaxSeOEvZGlVDANB ... &lt;/X509Certificate&gt;<br>                &lt;/X509Data&gt;<br>        &lt;/KeyInfo&gt;<br>&lt;/Signature&gt;<br><br>--------------------------------------<br>


<br>Nós possuímos um certificado digital, que foi exportado para um arquivo do tipo PKCS12 que já consegui ler usando Crypt::X509. Mas o que ainda não entendi é como eu vou gerar os hashes a partir deste certificado. Alguém pode me dar uma luz?<br>


<br>Obrigado desde já,<br></div><br>-- <br>Jorge Augusto Senger<br>jasenger (at) <a href="http://gmail.com" target="_blank">gmail.com</a><br>
</div></div></div>