![]() |
Respuesta: Facturacion electronica en México Cita:
Es esta la referencia: Org.BouncyCastle.Crypto.AsymmetricKeyParameter pk = Cert.GetPublicKey(); Con eso obtiene la clave publica del certificado, y con esa desencriptas, y ahi mismo obtienes el numero de certificado que te piden en al xml, incluso cuando lees la clave privada, ahi mismo puedes obtner la clave publica, y es la misma que si la lees del certificado, solo que tienes que leer el certificado por que obtienes el numero de serie, con el codigo que e pase antes ya te trael la el numeor de certificado, pk no se en k formato te lo dan y si lo checas en el validador es el mismo el k lees del certificado y el que te da el validador. Cuando enciptas ahi mismo puedes verificar si tu sello es correcto, tiene una opcion para validar tu sello con la clave publica. surte, espero no haberte enrredado con mi choro... |
Respuesta: Facturacion electronica en México Cita:
|
Respuesta: Facturacion electronica en México Cita:
y cual seria la referencia de esta funcion GetPublicKey() pque. parece ser que es la que no me esta funcionando. Estuve buscando en el examinador de objetos para ver a cual pertenece pero son muchos namespaces que lo contienen. en espera de sus comentarios. Saludos. |
Respuesta: Facturacion electronica en México Muchisimas gracias a los camaradas dumysoft y Edg_LB por su aclaración a mis dudas, a través del tiempo en esto del desarrollo me he dado cuenta que esto es como el karma cuando uno se detiene unos minutos en apoyar las dudas que otros compañeros tienen y por las cuales ya hemos pasado, esta acción siempre es revertida. Asi que muchas gracias. En efecto como bien lo dices Edg_LB el grabar la cadena desde el archivo de texto como UTF-8 lo graba con ciertas marcas que contaminan el resumen en MD5. Sucede que estoy haciendo una aplicación de facturación electronica en visual Fox 9 de forma que intentaba el enconding del archivo por fuera, pero al darme cuenta de que no me daba por la razón explicada, busque una función en el mismo fox para convertir al formato correcto además de que buscando por ahi encontré una clase que realiza el digest desde fox sin necesidad de utilizar el openssl (por cierto esta clase quedá a disposición para quien se encuentre en la misma situación que yo y desee hacerlo de VFox). Aunque finalmente debo recurrir a openssl mediante un comando externo para realizar el sellado y lo demás, estoy ahora en esto y veremos como nos va. Un saludo a toda la comunidad y gracias de nuevo camaradas. |
Respuesta: Facturacion electronica en México Cita:
using System; using System.Collections.Generic; using System.Text; using Org.BouncyCastle.Crypto; using Org.BouncyCastle.Utilities.Encoders; using Org.BouncyCastle.Crypto.Engines; using Org.BouncyCastle.Crypto.Generators; using Org.BouncyCastle.Security; using System.IO; using Org.BouncyCastle.X509; using Org.BouncyCastle.OpenSsl; using Org.BouncyCastle.Utilities.Collections; using Org.BouncyCastle.Crypto.Parameters; using System.Security.Cryptography; //Read Public Key TextReader trCer = new StreamReader(@PublicKey); PemReader rdCer = new PemReader(trCer); X509Certificate Cert = (X509Certificate)rdCer.ReadObject(); Org.BouncyCastle.Crypto.AsymmetricKeyParameter pk = Cert.GetPublicKey(); byte[] nSerie = Cert.SerialNumber.ToByteArray(); string nCertificado = Encoding.ASCII.GetString(nSerie); saludos... |
Hola, a todos pues yo soy nuevo en este ambito de la facturacion electronica al igual que en este foro, hasta ahorita he hecho la generacion de la cadena asi como su digestion md5, ahora viene lo bonito que es firmar la digestion con la llave privada y la cual he convertido a formato PEM, pero esto lo estoy haciendo en asp.net con c# alguien que me pueda ayudar a firmar la cadena por favor?? al igual yo puedo ayudar con lo que llevo hasta ahorita, muchas gracias de antemano Pues ahora he encontrado un [URL="http://www.jensign.com/opensslkey/index.html"]programa[/URL] que me genera un xml de mi llave privada, y me da la opcion de generarme un .p12 el cual ese ya me sirve para firmar mi cadena ya que esto lo hace con las librerias normales de c#, espero me puedan ayudar, o si pueden decirme como firmar con las librerias de BouncyCastle estaria genial, gracias por su ayuda Pues les agradezco a todos la ayuda, ya lo resolvi en c# Saludos Edicion: Ya es valido el sello que genera mi programa, si alguien necesita ayuda estoy dispuesto a ayudar... Saludos |
Hola, sin duda es un excelente compendio de informacion pero yo me atore en donde tengo que convertir de .key a .key.pem me regresa el error: Error decrypting key 6661:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:461: 6661:error:23077074:PKCS12 routines:PKCS12_pbe_crypt:pkcs12 cipherfinal error:p12_decr.c:97: 6661:error:2306A075:PKCS12 routines:PKCS12_item_decrypt_d2i:pkcs12 pbe crypt error:p12_decr.c:123: Según se el password que tengo es el correcto pero sigo teniendo el mismo error. :'( Cita:
|
Respuesta: Facturacion electronica en México Hoola colegas, buena tarde, y Feliz Año. Aqui nuevamente, quisera saber si alguien sabe como se le hace para que mis facturas, se las envie al SAT y me las valide, me comentaron de una certificacion, pero no se que onda con eso, espero sus respuestas. Gracias |
Respuesta: Facturacion electronica en México Cita:
Saludos |
Respuesta: Facturacion electronica en México Cita:
Ola k tal, Si hay forma de hacerlo con la libreria de BouncyCastle, no se cuales sean las referencias, lo hare y si lo tengo lo publico, por ahi puse codigo de como generar el sello utilizando BouncyCastle. Saludos |
Respuesta: Facturacion electronica en México Cita:
Toda la informacion necesaria para el reporte mensual esta aqui [URL="http://www.sat.gob.mx/sitio_internet/e_sat/comprobantes_fiscales/15_6534.html"]http://www.sat.gob.mx/sitio_internet/e_sat/comprobantes_fiscales/15_6534.html[/URL] Cuando tengas lista la informacion mensual aqui te indican como enviarla [URL="http://www.sat.gob.mx/sitio_internet/informacion_fiscal/tramites_fiscales/registro_t/101_11761.html"]http://www.sat.gob.mx/sitio_internet/informacion_fiscal/tramites_fiscales/registro_t/101_11761.html[/URL] Saludos |
Respuesta: Facturacion electronica en México Buena noches, Antes que nada gracias a todos los colaboradores por aportar sus conocimientos y buena disposición a la comunidad. Empiezo con mi pregunta, esto de la facturación electrónica es un rollo. En base a los post de este sección he construido algo pero tengo algunas dudas: Ya obtuve mis claves a través de C:\OpenSSL\bin\openssl.exe pkcs8 -inform DER -in C:\OpenSSL\Keys\aaa010101aaa_CSD_01.key -passin pass:a0123456789 -out C:\OpenSSL\Keys\aaa010101aaa.key.pem C:\OpenSSL\bin\openssl.exe x509 -inform DER -outform PEM -in C:\OpenSSL\Keys\aaa010101aaa_CSD_01.cer -pubkey -out C:\OpenSSL\Keys\aaa010101aaa.cer.pem Ya aplique el algoritmo MD5 a la cadena original que presenta el SAT . Genere el sello digital con mis claves obtenidas en el punto uno StreamReader readFile = new StreamReader(@"H:\Proyectos\Facturacion_electronic a\sello_digital\aaa010101aaa.key.pem"); //StreamReader readFile = new StreamReader(PublicKey); PemReader Ocert = new PemReader(readFile); //Dim o As AsymmetricCipherKeyPair = TryCast(Ocert.ReadObject(), AsymmetricCipherKeyPair) AsymmetricCipherKeyPair o = Ocert.ReadObject() as AsymmetricCipherKeyPair; ISigner sig = SignerUtilities.GetSigner("MD5WithRSAEncryption"); //sig.Init(True, o.[Private]) sig.Init(true, o.Private); byte[] signature = sig.GenerateSignature(); string signatureHeader = Convert.ToBase64String(signature); readFile.Close(); readFile = null; El certificado //*****************************certificado //Read Public Key TextReader trCer = new StreamReader(PublicKey); PemReader rdCer = new PemReader(trCer); X509Certificate Cert = (X509Certificate)rdCer.ReadObject(); Org.BouncyCastle.Crypto.AsymmetricKeyParameter pk = Cert.GetPublicKey(); //AsymmetricKeyParameter pk = Cert.GetPublicKey(); byte[] nSerie = Cert.SerialNumber.ToByteArray(); string nCertificado = Encoding.ASCII.GetString(nSerie); Mi duda es, cómo relaciono la cadena obtenida de la aplicación del algoritmo MD5, el certificado o el sello. En los requirimientos de hacienda dice que a la cadena obbtenida aplico el algoritmo RSA, con el sello y la clave privada, como junto estos procesos y luego convertirlo a base 64. Por su ayuda muchas gracias! |
Respuesta: Facturacion electronica en México Hola que tal. De hecho, en el codigo que muestras ya estas aplicando esos requerimientos. Saludos. |
Respuesta: Facturacion electronica en México Gracias por la respuesta, Lo que no veo es donde incluyo mi cadena original aplicado ya el MD5, acaso tengo que hacerlo a través de openssl? openssl dgst -md5 -sign pkey.key.pem -out md5.txt utf8.txt De antemano muchas gracias! |
Respuesta: Facturacion electronica en México ok, osease que te falta Dim plaintext As [Byte]() = ASCII.GetBytes(CadenaOriginal) ' Es una propiedad de la clase. . . . sig.Init(True, o.Private) sig.BlockUpdate(plaintext, 0, plaintext.Length) |
Respuesta: Facturacion electronica en México Muchas gracias! |
Respuesta: Facturacion electronica en México Hola, Les agradezco a todos sus aportaciones. Estoy por finalizar el proceso para generar CFDs, utilizando openssl. El unico problema que tengo es que al validar mi xml en la pagina del SAT me dice que "El sello del comprobante no es válido". ¿ Alguien tiene un ejemplo completo que cumpla con el anexo 20 version 2.0 y que sea aceptado por el validador de la pagina del SAT para poder encontrar el error ? Para poder hacer la revision paso a paso necesito : Archivo de Llave Privada de muestra (.key) Archivo de Llave Publica de muestra (.cer) Cadena Original armada de acuerdo con el anexo 20 version 2.0 MD5 obtenido Sello obtenido Serie de llave Publica obtenido Gracias. |
Respuesta: Facturacion electronica en México Hola, Les agradezco a todos sus aportaciones. Estoy por finalizar el proceso para generar CFDs, utilizando openssl. El unico problema que tengo es que al validar mi xml en la pagina del SAT me dice que "El sello del comprobante no es válido". ¿ Alguien tiene un ejemplo completo que cumpla con el anexo 20 version 2.0 y que sea aceptado por el validador de la pagina del SAT para poder encontrar el error ? Para poder hacer la revision paso a paso necesito : Archivo de Llave Privada de muestra (.key) Archivo de Llave Publica de muestra (.cer) Cadena Original armada de acuerdo con el anexo 20 version 2.0 MD5 obtenido Sello obtenido Serie de llave Publica obtenido Gracias. |
Respuesta: Facturacion electronica en México buen día... ya pude generar el MD5 y el sello.... además de extrael el no. de folio del certificado para ingresarlo al .xls.. pero aún así el validador del SAT me dice que el sello no es válido... les copio el .xml para ver si tienen algún comentario al respecto... será que hay algo mal con el validador del SAT o con el ejemplo que proporciona SAT de Muestra.xml?? Gracias por sus comentarios. Saludos!! P.D. Utilicé el ejemplo Muestra.xml con la cadena original y el certificado 2 proporcionado por el SAT. <?xml version="1.0" encoding="UTF-8"?> <Comprobante fecha="2005-09-02T16:30:00" folio="1" noAprobacion="1" noCertificado="10001200000000022515" sello="GEyGSaq21uiMk3sEJmsiLA22SLKeAtwl3rJ+jO8XB5G 8aoMgqgWwW10Hg8Rc/TDFcyRsloC32OBNV7lrQQ4DiLopu4XEYQ5ye+UvJAx3TzXyBa0 ZpjM4yzg5S2PO09nviv4Z4C2ByQQEiqmu1Z3ZzOAYffay+6/fBU2/Alb2bpE=" serie="A" version="1.0"> <Emisor nombre="Industrias del Sur Poniente, S.A. de C.V." rfc="ISP900909Q88"> <DomicilioFiscal calle="Alvaro Obregón" codigoPostal="06700" colonia="Col. Roma Norte" estado="Distrito Federal" localidad="México" municipio="Cuauhtémoc" noExterior="37" noInterior="3" pais="México"/> <ExpedidoEn calle="Pino Suarez" codigoPostal="95460" colonia="Centro" estado="Nuevo Léon" localidad="Monterrey" municipio="Monterrey" noExterior="23" pais="México"/> </Emisor> <Receptor nombre="Rosa MarÃ*a Calderón Uriegas" rfc="CAUR390312S87"> <Domicilio calle="Topochico" codigoPostal="95465" colonia="Jardines del Valle" estado="Nuevo León" localidad="Monterrey" municipio="Monterrey" noExterior="52" pais="México"/> </Receptor> <Conceptos> <Concepto cantidad="10" descripcion="Vasos decorados" importe="200" unidad="Caja" valorUnitario="20"/> <Concepto cantidad="1" descripcion="Charola metálica" importe="150" unidad="pieza" valorUnitario="150"/> </Conceptos> <Impuestos> <Traslados> <Traslado importe="52.5" impuesto="IVA"/> </Traslados> </Impuestos> </Comprobante> |
Respuesta: Facturacion electronica en México phpnewbie.... obtengo el mismo resultado que tú.. ya pudiste encontrar cuál es la razón por la cual el validador de sat no acepta el sello? Gracias y saludos! |
Respuesta: Facturacion electronica en México Cita:
¿que tal te fue con la facturacion electronica desde VFP?, estoy iniciando en esto y quisiera saber si no es tan complicado con FOX por que veo que la mayoría de la gente se esta llendo por PHP, C# o Java saludos |
Respuesta: Facturacion electronica en México Cita:
Existe un API llamado FirmaSat. (Con Costo). http://www.cryptosys.net/fsa/ ejemp. (Mandar la cadena original a un archivo de texto) RUN /N C:\FS\FirmaSAT PIPESTRING FacyuraEl_01.xml > CadenaOriginal.txt (Clear el sello) RUN /N C:\FS\FirmaSAT \FirmaSAT MAKESIG -k aaa010101aaa_csd_01.key -p a0123456789 FacyuraEl_01.xml y tambien se puede usar OpenSSS(Gratis ???) RUN /N C:\SSL\OpenSsl dgst -MD5 cadenaOriginal.txt > Md5Reult Saludos. |
Respuesta: Facturacion electronica en México Cita:
Saludos |
Respuesta: Facturacion electronica en México Cita:
"digestion MD5" de la cadenaOriginal, no da el mismo resultado que el validador de SAT. Sera que ellos usan Linux(Unix) ?. Que lioooooooo. Saludos y Suerte. P. D. Con FirmaSat todo de maravilla. |
Respuesta: Facturacion electronica en México Para los que ya pudieron generar el Sello pero aparentemente no esta correcto: ES MUUUUY IMPORTANTE que al generar el archivo, cadena, etc que almacena la Cadena Original, esta NO TENGA NINGUN caracter extraño. A mi me estaba pasando que al final de mi archivo binario mi rutina le estaba agregando un CR+LF (o sea un caracter #13 + #10), que ES INVISIBLE, pero esta ahi!!! Tampoco debe tener Tabuladores (caracter #8) ni doble espacio, ni "espacio + pipe" ni "pipe + espacio" es decir, lo siguiente es una PESIMA cadena original ||2.0| aqui hay un espacio de mas |Mi empresa| aqui hay dos espacios juntos| aqui (implicitamente) hay un retorno de carro CR+LF|y debe terminar con doble pipe|| Les recomiendo que revisen el tamaño de su variable, archivo o en general del "contenedor" de su cadena, que esta termine EXACTAMENTE en un "doble pipe" (esto es en "||") En lenguaje "C" asegurense que esta termine en NULL Los archivos NO DEBEN tener el caracter EOF (End Of File, o CTRL-Z) Aqui les dejo una liga donde explico como resolvi esto en Delphi www.clubdelphi.com/foros/showthread.php?p=359037 Saludos, |
Respuesta: Facturacion electronica en México Cita:
Mi problema era que la cadena se guardaba con EOF (End Of File, o CTRL-Z). Saludos. |
Respuesta: Facturacion electronica en México Que tal phpnewbie necesito de tu ayuda para lo de la facturación electrónica, tengo el mismo caso que se te presentó acerca del sello digital no válido pero ya igualo la cadena que me da el validador. sALUDOS. |
Respuesta: Facturacion electronica en México Cita:
TEXT TO cadenao noshow ||A|1|2005-09-02T16:30:00|1|ISP900909Q88|Industrias del Sur Poniente, S.A. de C.V.|Alvaro Obregón|37|3|Col. Roma Norte|México|Cuauhtémoc|Distrito Federal|México|06700|Pino Suarez|23|Centro|Monterrey|Monterrey|Nuevo Léon|México|95460|CAUR390312S87|Rosa María Calderón Uriegas|Topochico|52|Jardines del Valle|Monterrey|Monterrey|Nuevo León|México|95465|10|Caja|Vasos decorados|20|200|1|pieza|Charola metálica|150|150|IVA|52.5|| ENDTEXT cadenao=ALLTRIM(cadenao) cadena2=Strconv(cadenao, 9) arch_des = Fcreate('md5.txt') =Fwrite(arch_des ,cadena2) =Fclose(arch_des) !c:\openssl\bin\openssl dgst -md5 md5.txt >md51.txt saludos |
Respuesta: Facturacion electronica en México Cita:
Ya logre pasar ese paso. Ahora el problema es que el sello me lo marca como no valido : run c:\OpenSSL\Bin\openssl dgst -sign abcd123456xxx_9999999999.key.pem md5Result.txt | c:\OpenSSL\Bin\openssl enc -base64 -A > SelloBase64.txt Me genera esto : (No Pasa la validación) cOc86p97x5/cnu6ZbGTmh7dPHDQyepA/aYqN670Eu6WuyxXPhGnMkSsxD23vAkyxwKkCNX7CJuSP7yOvRM bxKwxz19Yql8Ry1yeMHiseg5vOF501QGlfdcLWvhVLaMjBjfqY DS6ckd8/SCHVOr2ySc+9MCLc62pho1RoLowlDoQ= y con la lbreria de firmaSat me genera esto : (Si pasa la validación) dnm+G0ttduIe389g/K4HJbzlsdGTeJdUsGYd+Lot5ycgr6BJeu4Ewqi/gx5F9asd6BOd8R4oFnd5NOigYPKiAcby7AGe9QvWWKkPtW62Es XHqOcO8+P3JF8C5aitox1t/1meNWV1KDnIdGCTn0sFldRS8jjgXday8BdCpZgyFMk= Los dos generan la misma digestión MD5 (d640bb467225d3e3e784ca14d68f2524) Saludos y Suerte. |
| La zona horaria es GMT -6. Ahora son las 10:03. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.