File afirma.spec of Package afirma
%define build_path BUILD/
%define afirma_tar AutoFirma_Linux_OpenSUSE
%define afirma_tar_path rpmbuild
Name: autofirma
Version: 1.8.2
Release: 1
Summary: Aplicación de firma electrónica en escritorio y en trámites web
License: GPLv2+ or EUPL 1.1
# Fuentes obtenidos https://github.com/ctt-gob-es/clienteafirma/archive/vVERSION.tar.gz
Source0: %{afirma_tar}.zip
#Source0: sources.tar.gz
Requires: bash
# Para Fedora se requiere nss-tools
# Para OpenSuse se requiere mozilla-nss-tools
Requires: mozilla-nss-tools
AutoReqProv: no
BuildArch: noarch
%description
Aplicación para la firma electrónica de documentos locales y operaciones de firma desde navegador web compatibles con el Cliente @firma.
%pre
if pgrep chromium; then
pkill chromium;
fi
if pgrep chrome; then
pkill chrome;
fi
if pgrep firefox; then
pkill firefox;
fi
%prep
%setup -q -n %{afirma_tar_path}
ls
%build
cat > %{name}.desktop <<EOF
[Desktop Entry]
Encoding=UTF-8
Version=1.8.2
Type=Application
Terminal=false
Categories=Office;Utilities;Signature;Java
Exec=java -Djdk.tls.maxHandshakeMessageSize=65536 -jar %{_libdir}/%{name}/%{name}.jar %u
Name=AutoFirma
Icon=%{_libdir}/%{name}/%{name}.png
GenericName=Herramienta de firma
Comment=Herramienta de firma
MimeType=x-scheme-handler/afirma
EOF
cat > %{name} <<EOF
java -Djdk.tls.maxHandshakeMessageSize=65536 -jar %{_libdir}/%{name}/%{name}.jar "\$@"
EOF
ls
%install
ls
install -d -m 0755 %{buildroot}%{_libdir}/%{name}
install -d -m 0755 %{buildroot}%{_bindir}
install -d -m 0755 %{buildroot}/usr/local/share/applications/
install -d -m 0755 %{buildroot}%{_libdir}/firefox/defaults/pref
ls
install -m 0644 %{build_path}%{name}.png %{buildroot}%{_libdir}/%{name}/
install -m 0755 %{build_path}%{name}.jar %{buildroot}%{_libdir}/%{name}/
install -m 0755 %{build_path}%{name}Configurador.jar %{buildroot}%{_libdir}/%{name}/
install -m 0755 %{build_path}%{name} %{buildroot}%{_bindir}/
install -m 0644 %{build_path}%{name}.desktop %{buildroot}/usr/local/share/applications
install -m 0755 %{build_path}%{name}.js %{buildroot}%{_libdir}/firefox/defaults/pref
%post
java -Djava.awt.headless=true -jar %{_libdir}/%{name}/%{name}Configurador.jar -install
if [ -e /usr/local/share/applications/mimeapps.list ]; then
echo x-scheme-handler/afirma=%{name}.desktop >> /usr/local/share/applications/mimeapps.list
else
cat > /usr/local/share/applications/mimeapps.list <<EOF
[Default Applications]
x-scheme-handler/afirma=%{name}.desktop
EOF
fi
if [ -f "%{_libdir}/%{name}/script.sh" ]; then
chmod +x %{_libdir}/%{name}/script.sh
%{_libdir}/%{name}/script.sh
fi
%preun
java -Djava.awt.headless=true -jar %{_libdir}/%{name}/%{name}Configurador.jar -uninstall
if [ -f "%{_libdir}/%{name}/uninstall.sh" ]; then
if pgrep chromium; then
pkill chromium;
fi
if pgrep chrome; then
pkill chrome;
fi
if pgrep firefox; then
pkill firefox;
fi
chmod +x %{_libdir}/%{name}/uninstall.sh
%{_libdir}/%{name}/uninstall.sh
fi
%postun
#Clean files created in post
if [ -e /usr/local/share/applications/mimeapps.list ]; then
sed -i '/x-scheme-handler\/afirma=%{name}.desktop/d' /usr/local/share/applications/mimeapps.list
fi
rm -r %{_libdir}/%{name}
echo "Desinstalación completada con exito"
%files
%license LICENSE
%dir %{_libdir}/%{name}
%attr(0755, root, root) %{_bindir}/%{name}
%attr(0755, -, -) /usr/local/share/applications/%{name}.desktop
%attr(0755, -, -) %{_libdir}/firefox/defaults/pref/%{name}.js
%attr(-, root, root) %{_libdir}/%{name}/*
%changelog
* Wed May 17 2023 Gobierno de España AutoFirma 1.8.2
- Correcciones de seguridad.
- Se evita que un problema al identificar la configuración de proxy del sistema impida la ejecución de AutoFirma.
- Actualización de la biblioteca Java WebSockets a la versión 1.5.3.
- Actualización de la biblioteca Apache Santuario a la versión 2.2.3.
- Actualización de la biblioteca JSON a la versión 20230227.
- Actualización de la biblioteca proxy-vole a la versión 1.0.18.
- Actualización de la biblioteca JNA a la versión 5.13.0.
- Se elimina el envío de datos estadísticos.
- Se actualiza la ayuda con la información del plugin de hashes.
- Se modifica el filtro de certificados de seudónimo para permitir que se configuren para sólo mostrar estos certificados.
- Se configura por defecto el proveedor de firma XML de Apache con la máxima prioridad y se agrega una propiedad para configurar este comportamiento en servidor.
- Se evita la aparición del mensaje de log "[Fatal Error]" en la operación de firma XAdES/FacturaE para evitar ensuciar la salida en las llamadas por consola.
- Se corrige y flexibiliza la configuración de página de PDF para que vuelva a aceptar números seguidos de espacios en blanco y se permite exceder el número de páginas para referirse a la última.
- Se vuelve a permitir definir áreas de firma visible que sobresalgan de la página, aunque estas se recortarán al borde de ésta.
- Se cuida que el nombre de los nuevos campos de firma no coincida con el de otros campos, aunque no sean de firma.
- Se evita que se puedan firmar documentos CAdES con un PDF contenido.
- Se evita que se generen firmas con el mismo nombre que otro campo del documento, aunque no sean firmas.
- Se cambia el algoritmo interno de compresión del instalador DEB para evitar problemas con DPKG en Debian.
- Se actualiza la ayuda integrada para señalar que la funcionalidad de hashes ahora se ha externalizado a un plugin.
- Se suprime la modificación de los perfiles de Chrome durante la instalación y, con ello, tampoco es necesario cerrar el navegador al instalar y desinstalar AutoFirma.
* Wed Aug 26 2020 Gobierno de España AutoFirma 1.7.0-1
- Se identifican por separado la versión de AutoFirma de cada sistema operativo lo que permite que AutoFirma por separado de las actualizaciones para cada uno de ellos.
- La comprobación de actualizaciones sólo se realiza una vez al día.
- Se comprueban por defecto los certificados SSL de los servicios a los que se conecta y se permite desactivar esta comprobacion desde el panel de preferencias (útil para pruebas y para permitir firmar en sitios web con certificados SSL no reconocidos). [INC 598357]
- Se agrega a las opciones de configuración manual de proxy la posibilidad de configurar excepciones.
- Adecuación al estándar ETSI TS 119 192-1: Se verifican a nivel critográfico y de caducidad de los certificados las firmas cargadas.
- Adecuación al estándar ETSI TS 119 192-1: Se solita confirmación antes firmar.
- Adecuación al estándar ETSI TS 119 192-1: Se permite revisar los atributos a firmar.
- Se incorpora la librería JXAdES v0.2.2.
- Se incorpora la librería JMulticard v1.6.
- Se muestra al usuario la opción para el giró del texto de la firma visible PDF.
- Se remodela la interfaz de configuración de proxy para hacerla más intuitiva.
- Se permite a los usuarios cambiar de almacén de claves desde el diálogo de selección de certificado.
- Se permite a los usuarios cambiar la vista de los certificados entre: Personales (vista estándar), Representante y Pseudónimo.
- No se muestra al usuario la opción de extraer datos de la firma cuando esta sea XAdES Externally Detached o una firma con manifest.
- Se mejora la detección de perfil de Firefox para corregir problemas derivados de los cambios en las versiones 69 y superiores (cambia según sistema operativo).
- Se corrige el comportamiento del filtro de certificados de seudónimo para identificarlos por la extension "2.5.4.65". [INC 480736]
- Se corrige la selección de perfil de Firefox ya que a veces se seleccionaba el primer perfil disponible en lugar del activo. [INC 602646]
- Soporte para la generación de los distintos formatos de firma con algoritmos de curva eliptica (aún no se soporta el uso de certficados con claves de curva elíptica).
- Se corrige el que se expandiesen los datos de la política de firma de la AGE cuando se indicaba el parámetro "expPolicy" y un formato de firma que no soportase esta política (como FacturaE)
- Se evita la generación de ficheros temporales en las operaciónes de comprobación de formato de firma.
- Se permite que en las llamadas desde el navegador o consola se indique el ClaimedRole.
- Adecuación interna para el futuro soporte de firmas CAdES B-Level.
- Se realiza la comprobación de atributos longevos en las firmas trifásicas para impedir la cofirma de firmas no compatibles.
- Se obvia la configuración de manifest (extraParam "useManifest") en las operaciones de cofirma y contrafirma. No se pueden realizar multifirmas con manifest, independientemente a si la firma original tenía manifest o no.
- Se permite la firma XAdES con manifest de múltiples referencias externas indicando el hash correspondiente a los datos referenciados por ellas.
- En las firmas manifest, se utilizará el parámetro "referencesDigestMethod" para determinar el algoritmo de hash utilizado cuando no se indique el parametro "precalculatedHashAlgorithm".
- Se identificará en las cofirmas la versión de XAdES utilizada en la firma original y se generarán declarando la misma versión.
- Se agrega compatibilidad parcial para la generación de cofirmas y contrafirmas de firmas XAdES 1.1.1 y 1.2.2 (No se permite la generación de firmas en estos formatos).
- Mejoras en la identificación de los distintos tipos de firmas (Enveloping, Enveloped, internally Detached y Externally Detached).
- Se habilita el procesado seguro de los XML en todas las funciones de carga para evitar ataques con XML.
- Adecuación interna para el futuro soporte de firmas XAdES B-Level.
- Las firmas manifest deberán recibir el hash de los datos referenciados. Nunca se accedera a los datos para calcular su hash.
- Las firmas Externally Detached de URLs externas ahora están correctamente referenciadas por el objeto DataObjectFormat.
- Las firmas Externally Detached no solicitaran datos a firmar cuando pueden recuperarlos a partir de la URI indicada.
- No se extrae el contenido de las firmas XAdES Externally Detached y firmas con manifest.
- Se corrige que al cofirmar firmas se puedan cofirmar referencias de la firma que no correspondían a los datos firmados. [INC 603014]
- Se corrige que al cofirmar firmas la referencia a los datos siempre fuese de tipo Object en lugar del tipo señalado por la firma (referencias externas, referencias a los datos en firmas Detached, etc.). [INC 603014]
- Se corrige la identificación de las firmas XAdES con sellos de tiempo XML, lo que permite su cofirma y contrafirma. [INC 514933]
- Se corrige que fallase el proceso de cofirma de una firma XAdES que incluyese espacios, saltos de línea o comentarios entre los nodos de las transformaciones que declara. [INC 609777]
- La contrafirma de una contrafirma realizada con un espacio de nombres XAdES distinto a "xades" se generaba declarando el espacio de nombres "null" y no lo declaraba en los nodos. [INC 726628]
- Las firmas enveloped que declaraban en la URI de referencia a los datos un identificador de nodo podían identificarse incorrectamente como Detached lo que llevaba a que se decodificase un Base 64 que contuviesen si la estructura del XML se asemejaba a la de las firmas detached ordinarias del cliente.
- En lugar de mostrar un error directamente, se consulta al usuario si desea forzar la firma del documentos PDF cerficados o con firmas no registradas a pesar de que esto puede invalidar las firmas anteriores.
- Se permite indicar la orientación de la firma visible PDF.
- Se agrega la ofuscación de los identificadores de usuario en las firmas visibles PDF cuando dichos identificadores se extraen del certificado de firma. Se omite la ofuscación con certificados de seudónimo.
- Adecuación interna para el futuro soporte de firmas PAdES B-Level.
- Se corrige el que no se muestre la información de las firmas PDF aunque alguna una de las firmas no contenga la fecha de firma.
- Se corrige el que no se detectasen elementos de firma en PDF generados con determinadas herramientas. [INC 627484] (Corrección señalada por La Diputación Provincial de A Coruña)
- Se incorpora un nuevo formato de fichero de hashes de un directorio.
- Se optimiza el proceso de cálculo y comprobación de hashes pasando a usar hilos concurrentes para reducir los tiempos de proceso.
- Se corrige que no se mostrasen los ficheros prexistentes de informe de comprobación de hashes en el diálogo para el guardado de este informe.
- Durante la comprobación de hashes a partir del fichero XML, se comprueba que los hashes declarados en Base 64 y hexadecimal para un mismo fichero sean iguales.
- Comunicación por WebSockets. Se sustituye la comunicación por socket tradicional, salvo en Internet Explorer, mejorando la estabilidad y velocidad. (Requiere el JavaScript del Cliente 1.7 o superior).
- AutoFirma pedirá que se actualice cuando se ejecute desde el nuevo JavaScript de despliegue (necesario para aprovechar la comunicación por websockets).
- Se agrega compatibilidad con el método setStickySignatory en la comunicación por servidor intermedio. (Requiere el JavaScript del Cliente 1.7 o superior).
- Las llamadas a "getSignersStructure" para recuperar la información de las firmas XAdES y CAdES devolverán también el algoritmo usado en cada una de las firmas.
- Las firmas XAdES Externally Detached y firmas Manifest no obligaran a la configuración de un dato de entrada, ya que las referencias necesarias se pueden incluir en los extraParams.
- Se permite que se pueda desactivar y volver a activar la fijación de certificado mediante setStickySignatory sin hacer entre medias una llamada a un método de firma o selección de certificado. [INC 646540]
- Se permite verificar las firmas antes de agregarles una nueva multifirma (extraParam "checkSignatures").
- Adecuación al estándar ETSI TS 119 192-1: Para evitar el uso de certificados caducados, se omitiran por defecto del diálogo de selección. Si el integrador define filtros de certificados, queda bajo su responsabilidad el indicar que se omitan.
- Se evita la impresión de datos grandes en el log, lo que evita que este se corrompa y borre y que AutoFirma no complete el proceso de guardado.
- Se corrige el que no se dé mensaje de error cuando se use comunicación por servidor intermedio y se llame a un método de carga de ficheros.
- Se corrige la operación de selección de certificado con servidor intermedio cuando el tamaño de la configuración de la operación era demasiado grande y se subía al servidor.
- Se identifica correctamente el navegador Safari en iOS 13 (Mejora proporcionada por el usuario "rasputino" de GitHub).
- Se habilitan nuevas opciones de configuración de calculo y comprobación de hashes.
- Se permite el uso de las funciones de calculo y comprobación de hashes sin necesidad de interacción con interfaces gráficos.
- Se mejora el criterio de selección del directorio de bibliotecas de NSS (Mejora proporcionada por el usuario "ssaavedra" de GitHub).