Citire
Scanare MRZ, handshake PACE-CAN, citire eDATA. Toate CEI emise după 2025. NFC nativ pe Android și iOS, plus modul low-level pentru când vrei să controlezi sesiunea.
Trei platforme, un API comun. Citire, verificare, semnare PAdES - pe Android (Maven Central), iOS (CocoaPods + SwiftPM) și Expo / React Native (npm). Apache 2.0, gratuit, fără chei de licență.
$ npm install @amsemnat/expo-sdkSelectează platforma · Apache 2.0
Un API comun în trei limbaje. Aceleași tipuri de erori, aceeași normalizare a datelor (toate datele ISO yyyy-mm-dd), aceleași etape de progres.
Scanare MRZ, handshake PACE-CAN, citire eDATA. Toate CEI emise după 2025. NFC nativ pe Android și iOS, plus modul low-level pentru când vrei să controlezi sesiunea.
Passive authentication completă cu CSCA furnizat de tine. Chip Authentication ca semnal (chipAuthenticated: Bool).
Semnături PAdES native cu certificatul de pe applet-ul de semnătură al CEI-ului. eIDAS-conform, fără server, fără intermediari, fără chei stocate undeva.
Versiunile cresc împreună când se schimbă API-ul public. Fix-urile interne rămân independente.
ro.amsemnat:am-semnat-sdk
AmSemnatSDK
@amsemnat/expo-sdk
Pune CAN-ul (cele 6 cifre de pe CEI), apropie-l de spatele telefonului, primești obiectul tipizat. Progres emis pe etape, gata pentru UI.
import { AmSemnat } from '@amsemnat/expo-sdk';
const identity = await AmSemnat.read({
can: '123456',
onProgress: (progress) => {
console.log(progress.stage);
},
});
console.log(identity.firstName);
console.log(identity.documentNumber);Fluxurile de semnare PAdES și verificare passive sunt în README-uri - vezi linkurile de la pachete.
Passive authentication confirmă că semnătura statului (Document Signer Certificate) e validă și se validează până la o autoritate (CSCA) în care ai încredere.
SDK-urile fac toată verificarea - calculează hash-urile pe datele citite din chip, le compară cu Document Security Object semnat de stat, validează lanțul de certificate. Singurul lucru pe care ți-l cerem: trust list-ul. Nu împachetăm certificate CSCA în SDK - nu vrem să decidem noi în cine ai încredere când codul tău rulează în 2030.
Practic: descarci CSCA-ul publicat de DGP / MAI, îl pasezi ca parametru la verifyPassiveOffline(), și SDK-ul îți spune dacă chip-ul e autentic plus dacă lanțul s-a închis. Dacă nu vrei să faci asta on-device - verifier-node (planificat) îți permite să muți validarea pe server.
Complementar la passive auth - semnătură challenge-response cu cheia chip-ului.
Pachet Node.js pentru verificarea passive a unei semnături produse pe device - pentru servere care nu vor să implementeze passive auth de la zero.
docs.amsemnat.ro cu API reference structurată, generată din KDoc / DocC. Până atunci: README-urile pe GitHub.
Tot codul AmSemnat e Apache 2.0 - folosire comercială, modificare, redistribuție, totul permis. Singura cerință e să păstrezi notițele de copyright și să incluzi licența.
Steaua: SDK-ul Android depinde tranzitiv de JMRTD și SCUBA (LGPL-2.1+) pentru parsing-ul ICAO 9303 și BAC/PACE. Compatibilitatea LGPL cu produsul tău (mai ales pentru redistribuție compilată) merită verificată.
Mai multe informații în secțiunea de licență a fiecărui repo de pe GitHub - vezi linkurile de la pachete.
SDK-urile iOS și Expo nu au dependențe LGPL.