A continuación os muestro una firma que he realizado y luego les comento lo que creo que está mal, y que me digan como debería ser:
Código:
- <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> - <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> - <Reference URI="#Documento"> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <DigestValue>CV9fX4hz2c3PGQju+G3bsM94Jc4=</DigestValue> </Reference> </SignedInfo> <SignatureValue>bbIDwx3BzVg4J1H62eecyjeUWt5kF3+e4UH10LyD0lU/iPIwbCGHf0+SC9Kk470tLGSvlsBpw+6TO5Wku0OxdZM6UTTzianCTbHljPOuht6v90HUl6ZDS+BlkqAeJStNJa41ziWJHw2L5mzRC2hFZkWnmPVOf7kdYuAuTZ8IPuk=</SignatureValue> - <KeyInfo> - <KeyValue> - <RSAKeyValue> <Modulus>7T84wVxJgzVPBllgCNndCUjxSUVk9GfvoshfuY7+NdUbm5FgUjo/5VHVJhoFr2uMMtzDMyoWjcMNSKhGjzrNoFLbUk+AU4MKX6rqS+3E+amaUBUSwb4TSI5v3xBtJv9asN2QuWYk2HkDcYbI9XtPSz4/pSTBcRajVoWmQEeikZ0=</Modulus> <Exponent>AQAB</Exponent> </RSAKeyValue> </KeyValue> </KeyInfo> - <Object Id="Documento"> - <InformacionDocumento xmlns=""> <nombre>PAGOS.txt</nombre> <contenido>UDA4MDMwMDAwMTI1DQoNClAwODAzMDAwMDEyNw0KDQoNCmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9jbGljay9oZWxsb3NlY3VyZXdvcmxkL2RlZmF1bHQubXNweA==</contenido> </InformacionDocumento> </Object> </Signature>
Lo que yo he firmado es lo siguiente:
Código:
<InformacionDocumento> <nombre>PAGOS.txt</nombre> <contenido>UDA4MDMwMDAwMTI1DQoNClAwODAzMDAwMDEyNw0KDQoNCmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9jbGljay9oZWxsb3NlY3VyZXdvcmxkL2RlZmF1bHQubXNweA==</contenido> </InformacionDocumento>
En el Tag <contenido> estoy metiendo el contenido del fichero en Base64. Eso creo que esta mal, ya que si es un PDF, el XML de la firma pesa bastante (En una prueba que hice 22MB).
Me surge una duda
1-. Junto con la firma, quiero mandar el contenido del fichero para que al ver que este firmado, se pueda ver el contenido del mismo. ¿Debo mantenerlo en Base64 o hay que pasarlo a otro estandar más comprimido?, ¿O usando la llave publica que mando, se puede descifrar el SignatureValue evitandome asi tener que mandar el contenido propiamente dicho?
En fin, espero puedan ayudarme, desde ya, muchas gracias.