Bueno, estoy empezando a estudiar el tema de las firmas y he mirado un ejemplo qu está bastante bien, pero tengo dudas, por lo que espero qeu alguien experto en la materia pueda solucionarmelas, jejeje.
Bien el ejemplo se basa en firmar digitalmente el siguiente fichero XML:
Código:
<CreditCardInfo> <CCNumber>12345678</CCNumber> <Amount>100</Amount> <FirstName>Sitaraman </FirstName> <LastName>Lakshminarayanan </LastName > <Address1> 100 Robinson Avenue </Address1> <City> Philadelphia </City> <Zip>12345</Zip> </CreditCardInfo>
Por consiguiente, se genera el siguiente XML con la firma:
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#dsa-sha1" /> - <Reference URI="#TarjetaCredito"> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <DigestValue>Rtn1NDt4yXemDyjg0mXJAeEAfYA=</DigestValue> </Reference> </SignedInfo> <SignatureValue>GMzAtGW4PKZZE3/USBGp+ckrRAk39dR02DFMY67XVSzeUiAF2LhsEg==</SignatureValue> - <Object Id="TarjetaCredito"> - <CreditCardInfo xmlns=""> <CCNumber>12345678</CCNumber> <Amount>100</Amount> <FirstName>Sitaraman</FirstName> <LastName>Lakshminarayanan</LastName> <Address1>100 Robinson Avenue</Address1> <City>Philadelphia</City> <Zip>12345</Zip> </CreditCardInfo> </Object> </Signature>
Bueno, preguntas:
El <DigestValue> entiendo que es el MD5 de los datos que firmo. ¿Correcto?
El <Object> entiendo que es simplemente para mostrar visualmente los datos que se han firmado. ¿Correcto?
Si las dos son correctas, supongamos que quiero firmar un fichero .PDF, ¿Bastaría con mostrar el <DigestValue>? Es decir, no tener que poner en Base64 todo el contenido del fichero, ya que sería un documento XML muy pesado.
Es decir, seria válido algo como:
Código:
En fin, espero pueda ponerme un poco al día con todo esto, jejeje.- <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#dsa-sha1" /> - <Reference URI="#TarjetaCredito"> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <DigestValue>Rtn1NDt4yXemDyjg0mXJAeEAfYA=</DigestValue> </Reference> </SignedInfo> <SignatureValue>GMzAtGW4PKZZE3/USBGp+ckrRAk39dR02DFMY67XVSzeUiAF2LhsEg==</SignatureValue> </Signature>
Saludos.