Zvanična klijentska aplikacija Poreske uprave se može preuzeti sa njihove stranice.
U pitanju je Java aplikacija koja dolazi sa posebno priređenom distribucijom Oracle Java radnog okruženja. Aplikacija podržava samo Microsoft Windows operativni sistem i sertifikatima u Personals skladištu pristupa kroz Microsoft CryptoAPI koji poziva operacije na pametnoj kartici ili tokenu posredstvom midlvera.
Sertifikaciono telo Pošte korisnicima nudi SafeSign midlver, osim u verziji za Windows i u verziji za GNU/Linux i macOS operativne sisteme. Midlver isporučuje prateću aplikaciju za upravljanje karticom/tokenom i PKCS#11 biblioteku. Programi poput jSignPDF, Adobe Reader ili LibreOffice mogu da učitaju ovu biblioteku i omoguće korisniku elektronsko potpisivanje dokumenata.
Elektronsko potpisivanje se koristi i na portalu ePorezi Poreske uprave, posredstvom pomenute klijentske aplikacije.
Da bi klijentsku aplikaciju mogli da koristimo na macOS-u moramo da je naučimo da kartici/tokenu umesto kroz Microsoft CryptoAPI pristupa kroz SafeSign PKCS#11 modul. Minimalno (nezvanično) prerađena verzija ePorezi 1.0 tako da umesto MS CAPI koristi PKCS#11 sa odgovarajućim putanjama midlvera prema podrazumevanoj instalaciji na macOS-u se može preuzeti sa:
http://goranrakic.com/tmp/ePorezi_1.1_mac.zip
Prepravljena verzija nije podržana od strane Poreske uprave. Napravljena je isključivo u najboljoj nameri, sa željom da se i korisnicima macOS-a omogući pristup portalu. Izmene menjaju isključivo deo aplikacije koji je okrenut ka kartici, bez izmena u kodu koji je okrenut ka portalu. Za pristup kartici izmenjena aplikacija koristi isključivo postojeće PKCS#11 biblioteke i ne bi trebalo da dovede do oštećenja ili neočekivanog blokiranja kartice (kartica će biti blokirana u slučaju da korisnik više puta unese pogrešan PIN kod, što je podrazumevano ponašanje). Ipak napisano ne predstavlja garanciju i ovu nepodržanu i prepravljenu verziju koristite isključivo na svoju odgovornost.
Klijentska aplikacija je minimalno izmenjena, samo koliko je bilo neophodno za učitavanje PKCS#11 modula. U slučaju greški aplikacija će "zakucati" ili "pući", i jedino u log zapisu ili eventualnom ispisu u terminalu možete da naslutite šta je problem. Ovakvo prepravljanje gotove aplikacije kada izvorni kod nije dostupan nije jednostavno i postoje ograničene mogućnosti za dodavanje nove funkcionalnosti. Verovatno bi bilo lakše i praktičnije napraviti novu alternativnu aplikaciju, koja bi mogla da izgleda i ovako.
Na macOS-u nakon svakog uspešnog potpisivanja prikazuje se greška o padu programa. Aplikacija bi u tom trenutku trebalo da se tiho zatvori, međutim pri izlasku dolazi do neogovarajućeg pristupa (EXC_BAD_ACCESS). Pretpostavljam da je problem u zaostaloj niti ili resursu koji je potrebno osloboditi, međutim to ostaje u delu aplikacije koji ne mogu ili ne znam kako da prepravim (patchujem).
Osim Sertifikacionog tela Pošte, moguće da i druga sertifikaciona tela imaju dostupan PKCS#11 modul za macOS (npr. NexusPersonal za Halcom ili NetSet CardEdge za PKS/MUP).
@najdanovicivan ako pricamo o tehnologijama ja bih rekao da je bolja bolja varijanta Dart/Flutter koji nativno podrzava C interop app ali moramo da znamo sta je generalno problem pa onda da vidimo da nadjemo najbolje resenje. Ja sam raspolozen za malo open source-a ako je jos neko raspolozen ko je u materiji. Ono što ja vidim kao početni korak je razumevanje same materije šta je problem i zašto trenutna app radi kako radi, šta su ograničenja (kao što si gore objasnio neka od njih) i neka specifikacija use caseva, mozda cak i neki dijagram kako to treba da funkcioniše. Ono kako ja to laički posmatram je da je sve to neko komuniciranje izmedju aplikacija, pošalju se neke komande kartici, ona vrati neke podatke, cert sta god i tako dalje (za ovo flow nam treba neki chart), prosto mi je neverovatno da za tako nešto ne možemo da smislimo neko rešenje. Plus dobro bi bilo kad bi se neko iz državnog ITja uključio da da neko malo dodatno objašnjenje ili pomogne ali ne bih mnogo da tražim.