@erseco/autofirma-client

Cliente TypeScript sobre AutoScript, la API oficial de AutoFirma. Ni reimplementa criptografía ni valida firmas: adapta la API oficial a promesas tipadas.

Pruébalo

Firmar requiere tener AutoFirma instalada. Si no lo está, verás aquí abajo el error que devuelva al intentarlo.


No hay un tamaño máximo declarado: el fichero viaja entero a AutoFirma en una sola pieza, codificado en Base64, lo que lo hace un tercio más grande por el camino. El límite real es la memoria de la aplicación, y al superarla devuelve un error que esta página identifica como fichero demasiado grande.


Firma visible en el PDF (solo PAdES)

Una firma electrónica es válida sin verse. Esto solo decide si además se dibuja algo en el PDF que anuncie que está firmado.


Nada: el PDF se firma pero no cambia de aspecto.
Texto: AutoFirma dibuja un recuadro y escribe dentro un texto que compone él con los datos de tu certificado y la fecha real de la firma. No tienes que preparar nada.
Imagen de rúbrica: ese mismo recuadro, pero con una imagen tuya en lugar del texto — una firma manuscrita escaneada, un sello, un logotipo. Se llama rúbrica porque representa tu firma, y va ligada a la firma electrónica: quien abra el PDF puede pinchar en ella y ver el certificado. Texto e imagen son excluyentes: si das imagen, AutoFirma ignora el texto.

Distinto de la rúbrica: esto no representa tu firma ni va ligado a ella, es una imagen pegada en el documento, en todas sus páginas. Es lo más parecido a una marca de agua que permite AutoFirma.

El fichero no sale de tu navegador: no hay ningún servidor detrás. Los datos que se muestran son los del certificado que ha devuelto AutoFirma, no una verificación de la firma: AutoScript no puede validar firmas, cadenas de confianza ni revocación.

Instalación

npm install @erseco/autofirma-client

API

Función Descripción
loadAutoScript(url) Inserta autoscript.js como script clásico y resuelve con el objeto global AutoScript.
new AutoFirmaClient(options) Crea un cliente sobre el objeto AutoScript cargado.
client.sign({ data, format }) Firma los datos en el formato indicado (PAdES, CAdES, XAdES o FacturaE).
client.coSign(options) / client.counterSign(options) Cofirma o contrafirma cuando AutoScript lo expone.
client.selectCertificate() Abre el selector de certificado sin firmar.
client.saveDataToFile(options) Pide a AutoFirma que guarde datos en un fichero elegido.
client.checkTime(options) Comprueba la sincronía del reloj del equipo con una petición síncrona que bloquea la página. Solo avisa de un desfase con un alert() nativo: la promesa no informa del resultado. Con CT_OBLIGATORY puede impedir en silencio que una llamada posterior a initialize() cargue AutoFirma.
readCertificate(derBase64) Extrae titular, emisora, número de serie y vigencia del certificado devuelto por AutoFirma.

Repositorio

Código fuente, incidencias y notas de compatibilidad en github.com/erseco/autofirma-client.