Skip to content

Instantly share code, notes, and snippets.

@grakic
Last active May 5, 2025 14:34
Show Gist options
  • Save grakic/9a850411c3b9294ff0c226e4f914be35 to your computer and use it in GitHub Desktop.
Save grakic/9a850411c3b9294ff0c226e4f914be35 to your computer and use it in GitHub Desktop.
ePorezi na macOS

ePorezi na macOS

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).

@mperovic
Copy link

mperovic commented Apr 1, 2024 via email

@pentago
Copy link

pentago commented Apr 1, 2024

Deluje kao kraj muka oko ove stvari onda :)

@milanbog92
Copy link

Samo da vas sve pozdravim pre nego sto se unsubscribujem :D Svaka cast svima koji su se cimali :D

@pentago
Copy link

pentago commented Apr 1, 2024

Moje čestitke svima takođe! <3

@svrdlans
Copy link

svrdlans commented Apr 1, 2024

@mperovic možeš li molim te da potvrdiš samo kad uspeš da potpišeš i pošalješ prijavu?

da se ne ponadam prerano 😄

@newtesla
Copy link

newtesla commented Apr 1, 2024

@mperovic možeš li molim te da potvrdiš samo kad uspeš da potpišeš i pošalješ prijavu?

da se ne ponadam prerano 😄

Sa Consent ID preko euprava eID - radi(skoro!) sve perfektno; pojedine (EPPDV) prijave imaju problem, prijave koje se ne potpisuju pa šalju već samo šalju; ostale, koje se potpisuju pa nakon toga šalju - sve rade.

Usput: svi potpisani XMLovi koje smo predali na Poreskoj putem eID - ostaju na eID :D

@mperovic
Copy link

mperovic commented Apr 1, 2024 via email

@lukapaunovic
Copy link

Radi sve savrseno sa consent id.

@Kasokaso
Copy link

Kasokaso commented Apr 2, 2024

Da, ConsentID je bolje resenje, takodje uspeo da se ulogujem.
https://www.ite.gov.rs/vest/7084/prijava-na-portal-eporezi-uz-mobilnu-aplikaciju-consentid.php

@vcalic
Copy link

vcalic commented Jul 1, 2024

Ali APR nije integrisan sa consentID-jem pa nisu svi problemi rešeni.
PKS kartice i čitatč su radili sa starijim verzijama macOS-a, ali na Sonori ništa.

@ubavic
Copy link

ubavic commented Apr 12, 2025

Nova verzija Baš Čelika podržava prijavljivanje na ePoreze emulirajući Smartbox aplikaciju koju je skoro objavljena na njihovom sajtu. Aplikacija (bi trebalo da) podržava PKCS11 module koje su izdali MUP, Privredna komora Srbije, Pošta, Halcom, eSmart. Ja sam je uspešno testirao sa MUP-ovim modulom.

Baš Čelik radi na Linuxu i MacOs-u bez problema, ali su problem PKCS11 moduli, koji kako je Ivan gore objasnio imaju ograničenu podršku za operativne sisteme (matrica podrške). Ja sam trenutno krenuo u implementaciju open source modula. Ako završim sa implementacijom, ovaj modul bi mogao da se koristi i direktno iz pretraživača, bez potrebe za bilo kakvom dodatnom aplikacijom (kako je i namenjeno da se PKCS11 moduli koriste). Takođe i office programi bi mogli da koriste modul za potpisivanje dokumenata, itd...

@newtesla
Copy link

MUP i PKS itekako rade na macOS, ja svakodnevno koristim (na Intelu); MUP i PKS imaju isto "poreklo".

@RockyMM
Copy link

RockyMM commented Apr 29, 2025

Da li postoji rešenje za potpisivanje dokumenata na APR-u za m-chip Macove? Koliko vidim, možda je najprostije podići VM?

@lukapaunovic
Copy link

lukapaunovic commented Apr 30, 2025

Aktiviraj ConsentID na nekom Windowsu uz pomoc El. sertifikata licne karte.
@RockyMM
ConsentID nema istek.
I mozes da potpisujes zavrsne racune itd. na svim uredjajima

@RockyMM
Copy link

RockyMM commented May 5, 2025

@lukapaunovic nisam bas razumeo kako da to uradim uz pomoć dva računara. Meni je bilo potrebno da potpišem zahtev za promenu statusa preduzetnika na APR e-servisima. Koliko vidim, to može samo pomoću mučene NexU aplikacije.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment