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#">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">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">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">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">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">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><br clear="all"><br>-- <br>Jorge Augusto Senger<br>jasenger (at) <a href="http://gmail.com">gmail.com</a><br>