Closed erikn69 closed 6 years ago
No hemos tenido casos rechazados por el SII por lo indicado, la firma se genera válida (a lo menos como el SII la espera).
Respecto al rechazo ¿cuál fue el caso de prueba? ¿El rechazo se determinó con respuesta del SII o validando por otro lado la firma?
Bueno si no hay rechazo en el SII esta bien, probe con una firma del BCE, otro pais en la que trae dos pkey una Decryption Key, y otra Signing Key, en ese orden, y al firmar toma la Decryption Key, lo que da como resultado firma invalida, es un error de openssl_pkcs12_read me imagino
En este artículo los autores hicieron un análisis al proceso de firmado para el SII, quizás hay alguna diferencia con como se realiza en otros lados:
https://www.cryptosys.net/pki/xmldsig-ChileSII.html
(el firmado de LibreDTE de desarrolló en base a ese artículo)
Bueno cuento la solución en caso de que sea útil, recorrí los certificados buscando el que este vigente a la fecha, y busque la private key q va a la par, y ahi con esos dos ya sale firmado correctamente, es un problema de openssl_pkcs12_read, la unica solucion que encontre es hacer eso manualmente
al leer los datos de la firma electronica con openssl_pkcs12_read devuelve un arreglo de extracerts, en $this->certs['extracerts'], lo cual dependiendo de la caducidad cambia el Modulus, Exponent, y eso no se toma en cuenta en el firmado para signaturevalue, sale firma invalida