Firma electrónica nativa.
Sin Java, sin esperas.
Aplicación de escritorio en Rust y React que sustituye la interfaz Swing y los servidores locales de AutoFirma, con la criptografía oficial de la Administración.
- Código abierto, EUPL 1.2
- La clave privada no sale de tu equipo
- CAdES, PAdES, XAdES y FacturaE
- En cinco idiomas
Así se firma un documento
Documento cargado
rFirma abre el PDF y muestra lo que contiene: páginas, tamaño y las firmas que ya lleva. Si hay una previa, la tuya será una cofirma.
Elegir certificado
La lista se compone con los almacenes del sistema, los perfiles del navegador y los módulos PKCS#11. Los caducados y revocados se muestran, pero no se pueden usar.
Introducir el PIN
El PIN se pide en un diálogo nativo, no en una ventana web, y se borra de la memoria en cuanto termina la firma.
Firma completada
El PDF firmado se guarda junto al original, y el resumen indica su formato.




Cuatro decisiones de diseño
Sustituye la interfaz Swing y los servidores locales de AutoFirma; el motor criptográfico es el mismo, el de clienteafirma.
Rendimiento nativo
Escritorio en Tauri v2, Rust y React. Sin JVM y sin servidores locales a la escucha.
La clave privada no sale del sistema
La firma se hace en tu equipo, a través de los almacenes del sistema y de los módulos PKCS#11. Java nunca la ve.
Criptografía oficial
CAdES, PAdES, XAdES y FacturaE salen del código de clienteafirma, compilado a binario nativo con GraalVM.
Firma visible arrastrable
Coloca y dimensiona la rúbrica sobre la página, con previsualización fiel. Sin coordenadas a ciegas.
AutoFirma frente a rFirma
| Aspecto | AutoFirma (oficial) | rFirma |
|---|---|---|
| Arquitectura | Java Swing sobre JVM | Tauri v2 (Rust + React) con el motor de clienteafirma en GraalVM Native Image |
| Dónde se procesa la clave privada | En el proceso Java | En el almacén del sistema o el módulo PKCS#11; no sale de él |
| Protección del PIN en memoria | Se borra solo en parte y puede acabar en disco | Protegido en memoria, nunca va a disco y se borra tras usarlo |
| Firma con DNIe | Sí, con jMulticard | En desarrollo |
Certificados en fichero (.p12) | Se registra la ruta del fichero en un diálogo de almacenes con seis opciones | Almacén propio y cifrado, que se abre con tu sesión |
| Búsqueda de certificados | Solo busca en el almacén que elijas | Todos en una lista con buscador, un certificado por fila |
| Colocación de la firma visible | Coordenadas o recuadro sin contexto | Arrastre sobre la página, con modelos de texto y previsualización fiel |
| Confianza del navegador en el servidor local | El instalador registra la CA en el sistema, con privilegios | La aplicación registra su CA en los almacenes NSS de la persona, sin root |
| Idiomas | Español, con las cadenas de los diálogos Swing | Español, català, euskara, galego e inglés, con catálogo propio y cambio desde Preferencias |
| Gestor de documentos | — | Recuerda los documentos recientes y el último certificado usado |
| Sistemas operativos | Windows, macOS, Linux, Android e iOS | Linux y Windows; macOS, en desarrollo |
| Canal de actualización | Descarga manual de .deb o .rpm | Repositorios nativos: APT, DNF y Flatpak; en Windows, desde la propia aplicación |
| Integración con el escritorio | Apariencia propia de Swing | Sigue el estilo del escritorio, con tema claro y oscuro |
Un repositorio para tu sistema operativo
Los canales de rFirma son repositorios nativos. Una vez añadido el de tu sistema, los parches de seguridad se instalan con el gestor de paquetes.
Para Debian, Ubuntu y distribuciones derivadas. Configura el repositorio mediante el formato moderno deb822 con la clave GPG verificada en /usr/share/keyrings/.
curl -fsSL https://rfirma.sgomez.me/rfirma.asc | sudo tee /usr/share/keyrings/rfirma.asc >/dev/null sudo tee /etc/apt/sources.list.d/rfirma.sources <<'EOF' Types: deb URIs: https://rfirma.sgomez.me/apt/ Suites: stable Components: main Signed-By: /usr/share/keyrings/rfirma.asc EOF sudo apt update && sudo apt install rfirma
Para Fedora y derivadas basadas en paquetes RPM. Configura el repositorio con comprobación criptográfica estricta de metadatos y paquetes (gpgcheck=1 y repo_gpgcheck=1).
sudo tee /etc/yum.repos.d/rfirma.repo <<'EOF' [rfirma] name=rfirma baseurl=https://rfirma.sgomez.me/rpm/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://rfirma.sgomez.me/rfirma.asc EOF sudo dnf install rfirma
Recomendada para las distribuciones de Linux que no usan APT ni DNF. Se resuelve desde el remoto ostree propio de rFirma, y el runtime org.gnome.Platform se descarga de Flathub sin configurar nada. Solo necesitas tener instalados flatpak y xdg-desktop-portal.
flatpak install https://rfirma.sgomez.me/rfirma.flatpakref
También puedes descargar e instalar con doble clic el fichero rfirma.flatpakref si tu escritorio lo soporta.
Instalador para tu usuario, sin permisos de administrador. Usa directamente el almacén de certificados de Windows (MS-CAPI / CNG) y, una vez instalado, se actualiza desde la propia aplicación: cada versión nueva llega con su firma minisign, que se comprueba antes de instalarla.
Verifica lo que descargas: baja SHA256SUMS de la Release y comprueba que el hash del instalador coincide con su línea. El instalador no está firmado con Authenticode, así que SmartScreen avisará al abrirlo.
Get-FileHash .\rFirma_*_x64-setup.exe -Algorithm SHA256 Select-String rFirma_ .\SHA256SUMS
La versión nativa para macOS está en fase de desarrollo activo. Se integrará con el Keychain de Apple y CryptoTokenKit para un acceso fluido y seguro a las identidades digitales del sistema.
Se distribuirá como imagen de disco .dmg y mediante fórmula de Homebrew. Puedes seguir el avance del proyecto en GitHub.
Todo el código, a la vista
rFirma es software libre y auditable bajo licencia EUPL 1.2. El código y el motor criptográfico viven en dos repositorios públicos.
Aplicación y puente FFI
En sgomez/rfirma están la interfaz en Tauri (Rust + React), el puente FFI (rfirma-native-bridge) y el empaquetado.
Motor criptográfico original
La lógica de firma consume los artefactos de ctt-gob-es/clienteafirma, compilados en una biblioteca nativa con GraalVM Native Image.
Clave de firma de paquetes
Clave pública en rfirma.asc. Comprueba su huella tras descargarla con gpg --show-keys rfirma.asc:
C8D6 A81C 1ED4 3A28 D426 8112 A6E0 EE02 2344 6A16