Closed GoogleCodeExporter closed 9 years ago
si no me equivoco esta excepción sale de la siguiente parte del código:
public void verificar() throws Exception {
String certStr = document.getCertificado();
Base64 b64 = new Base64();
byte[] cbs = b64.decode(certStr);
X509Certificate cert = KeyLoader
.loadX509Certificate(new ByteArrayInputStream(cbs));
verificar(cert);
}
public void verificar(Certificate cert) throws Exception {
String sigStr = document.getSello();
Base64 b64 = new Base64();
byte[] signature = b64.decode(sigStr);
byte[] bytes = getOriginalBytes();
boolean md5 = true;
if (getYear() < 2011) {
Signature sig = Signature.getInstance("MD5withRSA");
sig.initVerify(cert);
sig.update(bytes);
try {
sig.verify(signature);
} catch (SignatureException e){
// Not MD5
md5 = false;
}
}
if (getYear() > 2010 || !md5) {
System.out.println("AÑO MAYOR A 2010 - " + getYear());
Signature sig = Signature.getInstance("SHA1withRSA");
sig.initVerify(cert);
sig.update(bytes);
boolean bool = sig.verify(signature);
if (!bool) {
throw new Exception("Invalid signature");
}
}
}
Que hay de diferencia en su verificación del sello digital con respecto al
validador de sat, ya que este sello según el sat es válido... debo considerar
indudablemente que la fatura posee un sello inválido y decirle a mi cliente
que no la acepte? Agradecería su pronta respuesta puesto que me urge un poco.
Les mando un saludo :)
Original comment by garciacr...@gmail.com
on 8 May 2012 at 11:18
Otra duda, la verificación/generación del sello se hace respecto a la cadena
original o a su certificado? la pregunta es por lo que puedo leer de su código
de verificación en el que utilizan el sello y el certificado.
Gracias :)
Original comment by garciacr...@gmail.com
on 8 May 2012 at 11:25
Disulpen en su encriptacion y desencriptacion utilizan SHA1withRSA, SHA1withRSA
es lo mismo que SHA1? y de no ser asi, por qué se uso ese en vez del SHA1?
Todo debido a mi mismo problema de que me aparece el sello invalido cuando en
otro validadores si lo es. Les agradezo de antemano y espero puedan ayudarme.
Original comment by garciacr...@gmail.com
on 9 May 2012 at 5:24
Hola que tal, comparto una pronta posible respuesta a tu pregunta, he tenido el
mismo problema con diferentes comprobantes y lo que puedo detectar es que lo
que te está afectando, sea la transformación de las cantidades manejadas
dentro de tu comprobantes, las cuáles, contienen ceros a la izquierda!
Saludos.
Original comment by jcaflori...@gmail.com
on 14 May 2012 at 3:23
Hola!
Antes que nada muchisimas gracias por tu respuesta. Le he quitado literalmente
en al archivo xml los ceros a los comprobantes y aun así me sigue marcando
invalid signature, no se si se deba generar el cfd desde el principio. Cabe
mencionar que este comprobante no lo he generado yo, simplemente recibo las
facturas en formatdo xml ya que el proyecto que me encuentro desarrollando es
un validador de cfds y cfdis.
Disculpa la molestia pero me gustaría preguntarte si es correcto que a mi
cliente le entreguen estos comprobantes con ceros a la izq o si puedo y debo
decirle que le pida por favor a sus proveedores que no ingresen dichos ceros
para que puedan ser validados.
Te reitero mis agradecimientos por tu ayuda. Buena día :)
Original comment by garciacr...@gmail.com
on 14 May 2012 at 3:17
Jejejeje, al modificar manualmente un comprobante digital, automáticamente
estás rompiendo o quebrantando el sello de autenticidad del mismo, éste, debe
ser generado nuevamente pero sin esos ceros. Respecto a lo que me comentas, he
estado investigando y Hacienda no ha dicho que éstos sean inválidos, por tal
motivo, se deberían de aceptar aunque técnicamente estén mal.
Lo que te recomiendo es que si tienen la posibilidad de volver a generarlo sin
ceros a la izquierda, lo generen y lo valides!
Saludos.
Original comment by jcaflori...@gmail.com
on 15 May 2012 at 2:20
Oki. Pues muchisimas gracias por la información y el tiempo. Que tengas buen
día. Saludos :)
Original comment by garciacr...@gmail.com
on 15 May 2012 at 5:47
@jcafloriano, gracias por la información. Me parece que para evitar el
problema el sistema debería de procesar los campos numéricos como cadenas de
caracteres y no convertirlos a tipos numéricos.
Voy a pensar una solución para este problema.
Saludos
Original comment by bigdata.mx
on 15 May 2012 at 6:56
La librería de factura-electronica ha sido migrada a GitHub para facilitar la
colaboración.
Los temas han sido migrados a
https://github.com/bigdata-mx/factura-electronica/issues/
Visítanos!
Original comment by bigdata.mx
on 21 Oct 2012 at 5:51
Original issue reported on code.google.com by
garciacr...@gmail.com
on 8 May 2012 at 6:54Attachments: