Notice

rFirma is not an official product of the Public Administration. It's an independent open-source project under the EUPL 1.2 licence.

Alternative to AutoFirma

rFirma: native electronic signature,
no Java.

No waiting. Desktop application in Rust and React that replaces AutoFirma's Swing interface and local servers, with the Administration's official cryptography.

  • Open source, EUPL 1.2
  • The private key never leaves your computer
  • CAdES, PAdES, XAdES and FacturaE
  • In five languages
rFirma — Solicitud-subvencion.pdf
rFirma main window: document viewer, visible signature placement and side signature panel
CertificateADA LOVELACE BYRONAC FNMT Usuarios
StageAssembling
Visible signaturePlaced on page 3
PAdES · 2 signatures
CAdESPAdESXAdESFacturaEPKCS#11
Step by step

How a document gets signed

01

Document loaded

rFirma opens the PDF and shows what it contains: pages, size and the signatures it already carries. If there's an earlier one, yours will be a co-signature.

02

Choose certificate

The list is built from the system stores, the browser profiles and the PKCS#11 modules. Expired and revoked ones are shown, but can't be used.

03

Enter the PIN

The PIN is requested in a native dialogue, not a web window, and is wiped from memory as soon as the signature is done.

04

Signature complete

The signed PDF is saved next to the original, and the summary shows its format.

rFirma with a PDF open that already carries a valid signature
Why rFirma

Four design decisions

It replaces AutoFirma's Swing interface and local servers; the cryptographic engine is the same one, from clienteafirma.

Native performance

Desktop app in Tauri v2, Rust and React. No JVM and no local servers listening.

The private key never leaves the system

Signing happens on your computer, through the system stores and the PKCS#11 modules. Java never sees it.

Official cryptography

CAdES, PAdES, XAdES and FacturaE come from the clienteafirma code, compiled to a native binary with GraalVM.

Draggable visible signature

Place and size the rubric on the page, with a faithful preview. No blind coordinates.

Comparison

AutoFirma versus rFirma

AutoFirmarFirma
JavaRequiredNot used
Entering your PIN on LinuxJava windowNative dialogue and protected memory
DNIe detectionAt startupHot-plug
.p12 certificatesYou pick the file in a dialogueIts own encrypted store
Finding certificatesOne store at a timeAll at once, with a search box
Browsers on LinuxOne store: the first one found. No Flatpak or LibreWolfThose of the Firefox and Chromium families, native, Snap and Flatpak, at once
Visible signatureBy coordinatesDrag it onto the page
LanguagesSpanishSpanish, Catalan, Basque, Galician and English
Operating systemsWindows, macOS, Linux, Android and iOSLinux, macOS and Windows
UpdatesManual downloadAutomatic
Look and feelJava windowsMatches your desktop, with light and dark themes
Installation

One repository for your operating system

rFirma's channels are native repositories. Once your system's is added, security patches install through the package manager.

For Debian, Ubuntu and derived distributions. Sets up the repository using the modern deb822 format with the GPG key verified in /usr/share/keyrings/.

curl -fsSL https://rfirma.com/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.com/apt/
Suites: stable
Components: main
Signed-By: /usr/share/keyrings/rfirma.asc
EOF
sudo apt update && sudo apt install rfirma

To leave no rFirma certificate behind in your browser, click Withdraw certificate in the status panel before uninstalling.

Detailed steps, key fingerprint and verification are in the manual (in Spanish) →

Transparency

All the code, in the open

rFirma is free, auditable software under the EUPL 1.2 licence. The code and the cryptographic engine live in two public repositories.

Application and FFI bridge

sgomez/rfirma holds the Tauri interface (Rust + React), the FFI bridge (rfirma-native-bridge) and the packaging.

Original cryptographic engine

The signing logic consumes the artefacts from ctt-gob-es/clienteafirma, compiled into a native library with GraalVM Native Image.

Package signing key

Public key at rfirma.asc. Check its fingerprint after downloading it with gpg --show-keys rfirma.asc:

C8D6 A81C 1ED4 3A28 D426  8112 A6E0 EE02 2344 6A16