Ce verificăm
Semnătura CMS, lanțul până la DGEP (RO CEI MAI Root-CA + Sub-CA), legătura signingCertificateV2 și hash-ul pe ByteRange. Un atac care înlocuiește certificatul semnatarului e respins.
Trage un PDF semnat cu CEI și primești înapoi cine a semnat, când și dacă semnătura ține până la DGEP. Verificarea rulează local - fișierul nu părăsește browser-ul.
Format suportat: PAdES B-B - produs de aplicațiile AmSemnat și de orice flux eIDAS-compatibil. Pentru semnături multi-semnatar primești câte un rezultat per semnătură.
Semnătura CMS, lanțul până la DGEP (RO CEI MAI Root-CA + Sub-CA), legătura signingCertificateV2 și hash-ul pe ByteRange. Un atac care înlocuiește certificatul semnatarului e respins.
Timestamp-uri (PAdES B-T), revocare prin CRL / OCSP / LTV. signedAt vine din atributul signingTime, nu dintr-un Timestamp Token. Aliniat cu @amsemnat/verifier-node 0.1.x.
Fișierul tău nu pleacă din browser. Tot codul de verificare e în @amsemnat/verifier-node, deschis pe npm - poți face audit, fork, sau muta verificarea pe server-ul tău.
Semnăturile produse cu CEI au la bază un certificat emis de RO CEI MAI Sub-CA, care la rândul lui e semnat de RO CEI MAI Root-CA - ambele publicate de DGEP / MAI. Pentru ca verificarea să aibă sens, certificatul semnatarului trebuie să se închidă într-una din aceste ancore.
Le-am împachetat în site - sunt fișiere DER publice, nu material sensibil - ca să nu trebuiască să le descarci tu de pe hub.mai.gov.ro/cei. Dacă MAI rotește o autoritate, reactualizăm fișierele și facem redeploy.
Ultima reîmprospătare · 27 aprilie 2026
Pagina asta folosește @amsemnat/verifier-node direct în browser. Același pachet rulează în Node 20+, Cloudflare Workers, Deno și Bun - îl poți pune pe server, într-o funcție edge, sau alături de bridge-ul Expo / iOS / Android.