bueno como todos ya saben, la factura electronica entra el proximo año, tengo ya forma de hacer una factura electronica utilizando solamente php, sin embargo por cuestiones de un cliente es necesario hacer que la factura se haga utilizando el cmd
he encontrado una solucion algo coqueta utilizando iconv y openssl de la siguiente forma:
1. tengo la cadena original en co.txt
2. utilizo icon para pasar ese archivo a utf8 :
iconv -f ISO-8859-1 -t UTF-8 < co.txt > res.txt
3. utilizo openssl y firmo el archivo res.txt:
openssl dgst -md5 -sign llave.key.pem res2.txt | openssl enc -base64 -A > sello.txt
Esto me ha funcionado bastante bien con algunas facturas, sin embargo tengo un problema: en algunos casos a la hora de hacer el dgst del md5 en el cmd el cifrado no reconoce unos caracteres y los pasa como espacios en blanco !!!, y cuando hace la codificacion al base64 al encontrar esos espacios en blanco termina el cifrado y me genera el sello pero incompleto :(
les muestro una imagen de lo que me refiero:
http://img152.imageshack.us/img152/381/ejemplof.png
la primera parte de la imagen es un sello digital generado usando php y la parte de abajo pues los mismos pasos pero usando el cmd.
por alguna cuestion rara al firmar digitalmente el archivo me esta dejando espacios en blanco para caracteres que creo que no reconoce, esos mismos caracteres si los reconoce al hacer el mismo proceso con php. a alguien le ha pasado esto mismo ?, alguna sugerencia sobre como podria resolver este problema ?
Gracias de Antemano por su ayuda