Nueva version 1.3.0: Firma multiple y refactorización interna

Hola!
Subi al svn de firma como a Toba 2.4 una actualización del Applet firmador y su consumo en .php.

A nivel funcionalidad se agrego la posibilidad de firmar múltiples documentos PDF, previa selección de los mismos desde HTML/JS. El Applet expone una API hacia JS que permite agregar/quitar pdfs al pool. Una vez presionado Firmar se descargan los documentos seleccionados, se firman y se suben uno a uno, de manera similar al caso de un único PDF. Lo probe con 68 documentos y tarda alrededor de un minuto en completar el proceso (descargar, firmar y subir cada documento), entiendo que es de orden lineal.

Aproveche también para refactorizar bastante en lo interno el firmador, habia mucha confusión sobre la eleccion del kestore a utilizar. Ahora la implementación queda así

  • Primero, si esta en windows, trata de utilizar el keystore native de windows. Es el que menos configuración necesita (no necesita que el applet sepa los drivers de antemano), integra tanto los certificados de los tokens con los locales, y ademas cachea el PIN para varios usos del Applet. También si se agregaron los certificados de la ONTI como confiables al sistema operativa, se incluye la cadena completa a la firma, haciendo la validación en una 3era máquina más sencilla (el receptor no tiene que salira buscar la cadena)
  • Segundo, intenta acceder al token usb usando PKCS11 (aun me resta probarlo y mejorarlo un poco mas, especialmente poder hacer la validacion OSCP sin contar con la cadena completa)
  • Finalmente, si lo anterior no es posible, intenta abrir el keystore particular de firefox y chrome en linux. Es bastante error-prone porque juega con cosas internas de cada navegador, es algo a mejorar a futuro, por ahora no lo toque, ya que la idea es usar solo tokens usb

El build que esta en el SVN tiene desactivada la validacion OSCP y no controla la cadena de certificados (en el medio de la programación borre mi certificado de la ONTI!, asi que la unica forma de seguir programandolo era usando uno trucho)