The GET method is not allowed. Try with POST!La siguiente pregunta es: ¿Cómo sé qué parámetros tengo que pasasrle si quiero continuar usando curl? Hice lo que todo el mundo haría en su sano juicio: leerse la mitad de la RFC1381. Es cierto que hay muchas cosas que se te escapan hasta que encuentras la sección que dice:
There is no mandatory transport mechanism for TSA messages in this document. The mechanisms described below are optional; additional optional mechanisms may be defined in the future.Y te enumera las distintas formas. Entre las mencionadas están e-mail, fichero (con extensión .tsq o Time-Stamp query), sockets y el que estaba buscando: HTTP(S). Pero la información que muestra ya la sabemos, porque lo estábamos usando. Pero a partir de otra búsqueda pude encontrar en Stackoverflow que hablaban de un "navegador" específico para estos menesteres. Por lo tanto, para enviar a una TSA un fichero .tsq hay que usar la herramienta tsget.
En teoría deberíamos de poder acceder a ella directamente porque se espera que esté en el path. Pero en mi caso la encontraba. Ni siquiera probando whereis. Así, con otra búsqueda más, apareció en /usr/lib/ssl/misc/. Además, lo más curioso de todo es que el comando man sí que mostraba el manual.
Ahora que ya la tenemos, nos encontramos con un nuevo bache: esta herramienta está hecha en perl y nos muestra un mensaje de error:
"&WWW::Curl::Easy::global_cleanup called at ./tsget line 196."Aunque después descubrí que sí que había funcionado con este mensaje, hice una nueva búsqueda en la que me encontré con que se podían instalar dos cosas para eliminar el mensaje:
- Una librería para curl y openssl:
- apt-get install libcurl4-openssl-dev
- Una librería de perl:
- perl -MCPAN -e "CPAN::Shell->force(qw(install WWW::Curl::Easy));"
Una vez instaladas las cosas y encontrarme con que seguía saliendo el mensaje, pero también obtenía resultados, se puede explicar las distintas formas de llamar a la TSA.
¿Qué estaba haciendo antes y cómo se puede hacer con el nuevo comando?
Antes estaba ejecutando esta línea, pero sin los caracteres en negrita (con ellos funciona, sin ellos no):
cat miFich.tsq > curl -s -S -H "Content-Type: application/timestamp-query" --data-binary @- http://tss.accv.es:8318/tsa -o result.tsr
Con tsget se podría ejecutar de esta forma:
./tsget -h http://tss.accv.es:8318/ts -o /ruta/destino/fich.tsr /ruta/fichero/query.tsq
Ahora si se quiere se podría añadir la ruta de esta herramienta al $PATH para no depender de tener que poner la ruta completa de los ficheros de entrada/salida. Para eso tendremos que editar el fichero /etc/profile. Para mi usuario mortal funciona, que es lo importante.
¿Qué podemos contar de todo esto?
- Que para estas cosas nos tenemos que acordar de mirar todos los comandos letra a letra, que a veces leemos lo que queremos, no lo que realmente hay escrito.
- Que para trabajar con una agencia de sellado de tiempo, además de curl tenemos tsget.
- Que si una cosa no funciona, siempre puedes terminar buscando una posible solución en el RFC del tema en cuestión, si es que existe. En mi caso me lo leí hasta la mitad y como mínimo alguna cosa curiosa aprendes aunque no consigas solucionar el problema.
No hay comentarios:
Publicar un comentario