Pretože eID klient ma nepresvedčil, podujal som sa napísať pár jednoduchých programov na prácu s elektronickým občianskym preukazom (minulej generácie):
skripty v jazyku Python na prihlasovanie či zobrazovanie údajov uložených v čipe git clone https://sarinay.com/code/pyskeid.git
Hoci na mojich počítačoch to funguje, veľa to neznamená. Kto vie, nech testuje. Zišla by sa najmä dobrá duša s macOS, aby sa ovládač raz súčasťou OpenSC mohol stať.
Programátorky a programátori, pridajte sa prosím s vidličkami, záplatami či pripomienkami. Podpora iných druhov či verzií preukazov by mala byť hračka. Ja však iný nemám.
Ak máš poruke preukaz a chuť programovať, ozvi sa, naprogramujeme spolu.
Skvelý počin. Bolo jasné že “je to spraviteľné”, keďže príslušné API sú v podstate štandardné, len sa do toho nikomu nechcelo.
Dávno mal byť zdrojový kód k eID klientovi verejný.
Ak by to bola normálne udržiavaná aplikácia, imho by to veľa ľudí používalo/integrovalo. Lebo k oficiálnemu sw nie je známy ani len changelog(edit: changelog je, viď. nižšie), ani release plan…
Parada Juraj, urcite to skusim.
Len taka mala poziadavka. Nedalo by sa to druhe repo preniest tiez na GitHub, aby sme pripadne mohli vyrobit aj nejaky PR alebo Issue?
Mňa zaujalo to prihlasovanie. Ak by niekto spravil nejaké dočasné ukladanie bok, tak by to riešilo notorický problém s prihlasovanim stále dokola pre iné subjekty. Resp. Výrazne to zrýchlilo.
Môj kód funguje len s preukazmi vydávanými od leta 2021 do novembra 2022. Pod novými myslím nazoaj doklady s bezkontaktným rozhraním vydávané od decembra 2022. Neviem, čo presne chýba, na to by som musel taký preukaz na chvíľu dostať do rúk. Preto tu hľadám iných dobrovoľníkov či dobrovoľníčky. Napísal som, že to bude hračka, v najhoršom prípade bude treba takmer celý proces zopakovať
Starší preukaz by som si na rozdiel od nového možno vedel na chvíľu požičať. Pretože preň už neeixstujú certifikáty na kvalifikovaný podpis, nemá ale PKCS #11 veľmi zmysel.
To v skutočnosti netreba. BOK si opakovane pýta eID klient, karte stačí raz a bude ťa prihlasovať kým ju nevytiahneš. To len ja som to tak naschvál nenaprogramoval. Kto má chuť, môže zmeniť poradie niektorých riadkov…
To, že BOK karte treba len raz, mimochodom platí aj pre nekvalifikovaný (zdokonalený?) podpis. Po prvom prihlásení BOKom môžeš (z pohľadu karty) opakovane podpisovať bez akýchkoľvek kódov.
V OpenSC zas možno nastaviť PIN caching (pretože karta na každý jeden kvalifikovaný podpis vyžaduje KEP PIN).
Otazka je, ci by sa to nedalo nejakym sposobom aplikovat aj na iPadOS, kedze M1/M2 su ARM, ktore su pouzivane aj v iPadoch Chcelo by to asi aj nejaku integraciu do Keychain Access a DriverKit.
V prvom kroku treba namiesto posledného release použiť môj ovládač. Ak máš chuť, skompiluj sám, alebo rovno celé nainštaluj odtiaľto (asi treba mať GitHub konto).
Skús s oboma podpisovými certifikátmi voľačo (neškodné) podpísať, jednak “priamo” použitím opensc-pkcs11.so alebo cez OS/tokend (o tom ale ja neviem takmer nič) …
Super. Moja chyba že som nevedel. Pred nejakým časom (zopár rokov) som so skupinou adminov riešil že by sa im changelog veľmi zišiel, nevedeli sme to nájsť, pýtal som sa na MV, odpoveď bola že nie je, ale že si to zapísali. Odvtedy som žiadne nové info nedostal, tak som mylne predpokladal…
Ja sa zase neviem úplne rozhodnúť, či by ich nemalo viac strašiť, keď ten bok tam zadávajú ľudia toľko krát, že sa im vyšúcha na numpade alebo sa zvýši šanca, že si ho niekto okolo už zapamätá. Prípadne si ho zmenia na 6 nul, aby to bolo celé rýchlejšie na prepínanie. Prípadne rovno dajú Eid niekomu s kódmi lebo na to nemajú nervy.
Skusil som rozbehat na Linuxe / Ubuntu, ale predpokladam, ze starsia karta nie je podporovana:
Traceback (most recent call last):
File "~/Downloads/pyskeid/pyskeid_read_data.py", line 19, in <module>
from pyskeid_common import connect_card, perform_eac
File "~/Downloads/pyskeid/pyskeid_common.py", line 23, in <module>
from smartcard.CardType import ATRCardType
ModuleNotFoundError: No module named 'smartcard.CardType
S inou verziou preukazu to (zatiaľ) určite nefunguje. Tamtá chyba ale znamená, že asi nemáš nainštalovanú knižnicu pyscard. Závislosti nájdeš v README. Na Ubuntu skús azda