Generar DigestValue‏

582 views
Skip to first unread message

Daniel Manuel López

unread,
Jan 7, 2015, 2:43:32 AM1/7/15
to vfp-factura-ele...@googlegroups.com
Para el Compañero Desarrollo1.....

Disculpa no había leído tus hilos anteriores de solicitud de ayuda para tus Cancelaciones.
veo que no has podido obtener ayuda y creo que te estas haciendo bolas y de paso también
nos estas llevando al baile.

Por lo que escribiste en uno de tus hilos que tu PAC te solicita que firmes el XML de Cancelación
siento que allí es donde te haces bolas.

El Compañero Héctor te indicó que buscaras un PRG de cancelaciones (Y que ya te envié) y que
allí encontrarías cómo hacerlo. Lo mismo te comento yo.

En el programa de cancelaciones "SE ESTA FIRMANDO EL XML YA TIMBRADO" con los los datos
de la firma electrónica y pasword que da el SAT.  y no se como deseas firmarlo o como lo estas
entendiendo tu...

Ahora bien, si deseas que se te apoye aún más.... deberías proporcionar tus archivos de trabajo,
es decir: Tu XML timbrado y los archivos que te envia tu pac como prueba comparativa y si tu Pac
tiene un ambiente de pruebas pues proporciona también las claves necesarias para que 
podamos también realizar pruebas desde nuestros equipos.

 Esto también nos dará la oportunidad de ver que tan compatible es la cancelación de tu PAC vs
FINKOK...

Saludos..





Francisco J. I

unread,
Jan 7, 2015, 10:11:33 AM1/7/15
to vfp-factura-ele...@googlegroups.com
Primeramente te agradezco Daniel tu intervención.

Te comento :

Cuando me refiero a Firmar el XML, me refiero al método XML-Signature aprobado por la http://www.w3.org/Signature/ 

Bien.

El PAC que manejo es Reach Core, este PAC , permite cancelar los cfdi's en varias formas, 2 de ellas es en línea (síncronas)

Una de ellas es el enviar el XML ensobretado como lo hace el PRG que se encuentra en el foro y que amablemente me enviaste, la única desventaja en este método es que tengo que proporcionar los CSD al PAC.

La otra opción que me da el PAC y es por la que estoy apostando es firmar el XML, (XML-Signature http://www.w3.org/Signature/ ) asi no dependeré de proporcionarles los CSD.

Para esto , se requiere crear un XML, que lo genero muy parecido a como lo genera el PRG que me enviaste, el cual es el siguiente :

<?xml version="1.0" encoding="UTF-8"?> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header> <h:ApiKey xmlns:h="http://www.reachcore.com/CFDI/customHeaders" xmlns="http://www.reachcore.com/CFDI/customHeaders">7F3F610F552E406B87C081771AE4DFCA3687D134ACD9489FBA6024A9E42D72E3</h:ApiKey> </s:Header> <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <CancelacionFiscalRequest xmlns="urn:reachcore.com:services:api:ws:timbre-fiscal:cancelacion:2.0"> <Folios> <guid>d6855812-af48-4e8f-b30e-3dcb8bd0b40d</guid> </Folios> <RFC>AAA010101AAA</RFC> </CancelacionFiscalRequest> </s:Body> </s:Envelope>

Este pequeño XML, se debe de canonicalizar primeramente y se debe aplicar XML-Signature tal como se indica en el Anexo 20 para la cancelación de cfdi, para que me quede un XML firmado de la siguiente forma:

<?xml version="1.0" encoding="UTF-8"?> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header> <h:ApiKey xmlns:h="http://www.reachcore.com/CFDI/customHeaders" xmlns="http://www.reachcore.com/CFDI/customHeaders">7F3F610F552E406B87C081771AE4DFCA3687D134ACD9489FBA6024A9E42D72E3</h:ApiKey> </s:Header> <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <CancelaCFD xmlns="http://cancelacfd.sat.gob.mx"> <Cancelacion Fecha="2013-10-18T20:30:04" RfcEmisor="AAA010101AAA"> <Folios> <UUID>C20145B9-79CD-43BB-BE75-CB444D309382</UUID> </Folios> <Folios> <UUID>8F919478-7B71-4E5C-BCD2-7A55B371C8FF</UUID> </Folios> <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=""> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>ECZGKbcjj0s9IYLAogitGaky9JE=</DigestValue> </Reference> </SignedInfo> <SignatureValue>JD9kFX7HQ1mTcqUcjFZrrKmZdc3flmllcwwPodOeLX7Znhgu4S7A6jhs5UJFcN/1P8SvPh4WsWIFBQFvgjEmY0CtziCNsf7KSBtJ34PaGFEZ5vOLbZS32OpciHwn9eYY4pasRYvR/EZJmdomBH1wDs46XVynmvCcxCGGzeS5y2M=</SignatureValue> <KeyInfo> <X509Data> <X509IssuerSerial> <X509IssuerName>OID.1.2.840.113549.1.9.2=Responsable: H&#xE9;ctor Ornelas Arciga, OID.2.5.4.45=SAT970701NN3, L=Coyoac&#xE1;n, S=Distrito Federal, C=MX, PostalCode=06300, STREET="Av. Hidalgo 77, Col. Guerrero", E=asi...@pruebas.sat.gob.mx, OU=Administraci&#xF3;n de Seguridad de la Informaci&#xF3;n, O=Servicio de Administraci&#xF3;n Tributaria, CN=A.C. de pruebas</X509IssuerName> <X509SerialNumber>286524172099382162235533054511188021807429465904</X509SerialNumber> </X509IssuerSerial> <X509Certificate>MIIEdDCCA1ygAwIBAgIUMjAwMDEwMDAwMDAxMDAwMDU4NzAwDQYJKoZIhvcNAQEFBQAwggFvMRgwFgYDVQQDDA9BLkMuIGRlIHBydWViYXMxLzAtBgNVBAoMJlNlcnZpY2lvIGRlIEFkbWluaXN0cmFjacOzbiBUcmlidXRhcmlhMTgwNgYDVQQLDC9BZG1pbmlzdHJhY2nDs24gZGUgU2VndXJpZGFkIGRlIGxhIEluZm9ybWFjacOzbjEpMCcGCSqGSIb3DQEJARYaYXNpc25ldEBwcnVlYmFzLnNhdC5nb2IubXgxJjAkBgNVBAkMHUF2LiBIaWRhbGdvIDc3LCBDb2wuIEd1ZXJyZXJvMQ4wDAYDVQQRDAUwNjMwMDELMAkGA1UEBhMCTVgxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVyYWwxEjAQBgNVBAcMCUNveW9hY8OhbjEVMBMGA1UELRMMU0FUOTcwNzAxTk4zMTIwMAYJKoZIhvcNAQkCDCNSZXNwb25zYWJsZTogSMOpY3RvciBPcm5lbGFzIEFyY2lnYTAeFw0xMjA3MjcxNzAyMDlaFw0xNjA3MjcxNzAyMDlaMIHbMSkwJwYDVQQDEyBBQ0NFTSBTRVJWSUNJT1MgRU1QUkVTQVJJQUxFUyBTQzEpMCcGA1UEKRMgQUNDRU0gU0VSVklDSU9TIEVNUFJFU0FSSUFMRVMgU0MxKTAnBgNVBAoTIEFDQ0VNIFNFUlZJQ0lPUyBFTVBSRVNBUklBTEVTIFNDMSUwIwYDVQQtExxBQUEwMTAxMDFBQUEgLyBIRUdUNzYxMDAzNFMyMR4wHAYDVQQFExUgLyBIRUdUNzYxMDAzTURGUk5OMDkxETAPBgNVBAsTCFVuaWRhZCA0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCxjtFKP9bhgV8I8lIlc58M19l8xBIrM6rWJagt1G/yYTo6WLVKTGx9fiWSnTZVeClcrLXo3heKYAkHPla6WHRiMRkwdshafy9AtUx5xyLIDXzER4K/eZitmzp9LWTxi6BYEHPUuOdFJ8PtPkVb3yvadMJgxMtI47uXxmx40mkA9QIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQUFAAOCAQEA2D99yNxnBdJ7ONJQ7XiMaaqCTkB4wWYxHaFlxpKgLe3HRc86rEZfBnoHLGd/ACAIoTc2PG09J4qkDOw63fb1aNLa9Zjqat+Nh6qB7+ifC9+pAVd6OrR5Ch7v/Fr0I4APrfSyXbx5U915zaGw9c1wM57Lfa0oGipkPUfab2lnf0y6X1WXMKv+vMMVtlQxUAC0Vc5HBPV3aWtDXwg8pANbcYfZEr8H2i4aOpFBsRLuPjdo9OOqfn4Df6GoqKUrlwBPh6wCqexSKuG3XuTqZB1svdyss9NW+iOTqkBFWJrOPpKwVppyt4YGEcejoPBcnWpGSALpahuxuX5hoUak0+1Yxw==</X509Certificate> </X509Data> </KeyInfo> </Signature> </Cancelacion> </CancelaCFD> </s:Body> </s:Envelope>


Este ultimo es el XML firmado.

Bien , existe un nodo que es <DigestValue> el cual es el resultado del calculo aplicando RSA-SHA1 al primer bloque del XML, según pruebas que he hecho, no he podido obtenerlo tal como muestra el ejemplo, yo utilizo OPENSSL, el resto de la firma como el certificado, ya lo tengo, pero ahí estoy detenido.

Disculpa lo extenso , pero creo que era necesario, agradezco los comentarios.

Saludos cordiales e igualmente les deseo un Feliz y prospero año 2015.
 



















--
Has recibido este mensaje porque estás suscrito al grupo "vfp-factura-electronica-mexico" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a vfp-factura-electroni...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a vfp-factura-ele...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/vfp-factura-electronica-mexico.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Alejandro Castrejon

unread,
Jan 7, 2015, 12:34:44 PM1/7/15
to vfp-factura-ele...@googlegroups.com
Aqui la esta la documentacion del PAC, creo que con eso no necesiats mas.

http://go.reachcore.com/docs/CancelacionFiscal/XmlSignature

Francisco J. I

unread,
Jan 7, 2015, 2:24:05 PM1/7/15
to vfp-factura-ele...@googlegroups.com
Gracias Alejandro.

Efectivamente tengo esa página , si te fijas de ahí tome los ejemplos que puse en mi anterior correo.

El detalle, es que quiero formar el HTTPRequest o XML , bajo el método XML-Signature.

El PAC tiene 2 formas de cancelar que a mi me interesan, que es en línea, el primero me funciona, ensobretando la petición y enviándoselas, ellos la firman con los CSD del cliente y lo envían al SAT. de esta forma , ya estoy cancelando los CFDI.

Pero quiero implementar el firmado localmente, o sea, generar el XML , aplicarle el XML-Signature y enviarlo, asi el PAC, no requiere firmarlo por consecuencia no ocupa los CSD de los clientes.
Lógico mis clientes cada uno tiene en su servidor los CSD, con eso genero la firma de los CFDI's, quiero aprovecharlos para firmal el XML de cancelación.

No se si me explico.

El problema que tengo es que no encuentro la forma de canonalizar el XML para firmarlo y una vez canonalizado, generar el RSA SHA1 que me genera el contenido que va en el nodo <DigestValue> .

Ese es mi primer obstáculo que encuentro.

Espero sus amables comentarios.

 
Reply all
Reply to author
Forward
0 new messages