<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><Signature xmlns="<a href="http://www.w3.org/2000/09/xmldsig#" target="_blank">http://www.w3.org/2000/09/xmldsig#</a>"><br>
<SignedInfo><br> <CanonicalizationMethod Algorithm="<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>"/><br>
<SignatureMethod Algorithm="<a href="http://www.w3.org/2000/09/xmldsig#rsa-sha1" target="_blank">http://www.w3.org/2000/09/xmldsig#rsa-sha1</a>" /><br>
<Reference URI="#NFe31060243816719000108550000000010001234567897"><br> <Transforms><br> <Transform Algorithm="<a href="http://www.w3.org/2000/09/xmldsig#enveloped-signature" target="_blank">http://www.w3.org/2000/09/xmldsig#enveloped-signature</a>"/><br>
<Transform Algorithm="<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>"/><br> </Transforms><br>
<DigestMethod Algorithm="<a href="http://www.w3.org/2000/09/xmldsig#sha1" target="_blank">http://www.w3.org/2000/09/xmldsig#sha1</a>"/><br> <DigestValue>vFL68WETQ+mvj1aJAMDx+oVi928=</DigestValue><br>
</Reference><br> </SignedInfo><br> <SignatureValue>IhXNhbdL1F9UGb2ydVc5v/gTB/y6r0KIFaf5evUi1i ...</SignatureValue><br> <KeyInfo><br> <X509Data><br>
<X509Certificate>MIIFazCCBFOgAwIBAgIQaHEfNaxSeOEvZGlVDANB ... </X509Certificate><br> </X509Data><br> </KeyInfo><br></Signature><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">gmail.com</a><br>