{"id":16609648,"url":"https://github.com/grakic/jfreesteel","last_synced_at":"2025-04-11T20:06:17.835Z","repository":{"id":4738532,"uuid":"5887799","full_name":"grakic/jfreesteel","owner":"grakic","description":"A native Java library, a Swing GUI application and an applet to read the Serbian eID card, built on javax.smartcardio","archived":false,"fork":false,"pushed_at":"2023-09-06T14:40:24.000Z","size":2951,"stargazers_count":54,"open_issues_count":17,"forks_count":24,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-04-11T20:06:11.453Z","etag":null,"topics":["eid-card","java-applet","serbian","smartcard","smartcard-reader","smartcardio","webextensions"],"latest_commit_sha":null,"homepage":"http://jfreesteel.devbase.net","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grakic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-09-20T14:28:48.000Z","updated_at":"2024-12-01T22:52:05.000Z","dependencies_parsed_at":"2024-10-12T01:29:38.443Z","dependency_job_id":"69a4ebd7-8022-4775-a9c9-b526b3c93eb6","html_url":"https://github.com/grakic/jfreesteel","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grakic%2Fjfreesteel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grakic%2Fjfreesteel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grakic%2Fjfreesteel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grakic%2Fjfreesteel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grakic","download_url":"https://codeload.github.com/grakic/jfreesteel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248473127,"owners_count":21109628,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["eid-card","java-applet","serbian","smartcard","smartcard-reader","smartcardio","webextensions"],"created_at":"2024-10-12T01:29:10.850Z","updated_at":"2025-04-11T20:06:17.809Z","avatar_url":"https://github.com/grakic.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"JFreesteel\n==========\n\nJFreesteel is a reusable open-source Java library for reading public data from\nthe Serbian eID card. It is built on top of javax.smartcardio and released under\nthe GNU LGPLv3 license.\n\n[![Build Status](https://travis-ci.org/grakic/jfreesteel.svg?branch=master)](https://travis-ci.org/grakic/jfreesteel)\n\nUsing this library your Java desktop applications and general web applications\nrunning in a browser (via \"invisible\" Java applet) can access the smartcard\nreader to get data such as personal number, full name, place of residence or\ndate of birth. It is also possible to read personal photo from the eID card.\n\nIt is built on top of native Java smart card interface and does not require\ninstallation of the middleware software or other libraries. Underlay, Java is\nusing system PC/SC interface (bundled with MS Windows and Apple Mac OS X, and\npcsc-lite is available on GNU/Linux)\n\n\nJava API\n--------\n\nTo start using the library API, call methods readEidInfo() and readEidPhoto()\non the EidCard instance. There are two options to get EidCard instance.\n\nThere is a low-level API where you get an instance from a card that is currently\ninserted in a smartcard reader (terminal) with EidCard.fromCard([Card]) factory\nmethod. A sample code [sample/JFreesteel.java] is availabile in the jfreesteel\nmodule. When using the low-level API, you would need to handle card insertions\nand removals.\n\nIt is better to use a high-level API where you just have to implement a listener\nfollowing the ReaderListener interface, adding your code to methods inserted()\nand removed(), then subscribe this listener to a Reader object wrapping a\n[smartcard reader][CardTerminal]. Your listener will be notified whenever the\neID card is inserted or removed from a smart card reader, receiving a new\nEidCard instance on insert.\n\nFor more API details, you may find these slides useful (in Serbian):\n[Čitanje elektronske lične karte u Javi][Slides].\n\u003e **Note:** After the latest API update, EidCard is an abstract class. If you do\n\u003e not use a Reader object, to get an instance call EidCard.fromCard(Card).\n\n[Code Review] wiki page has some more info in Serbian.\n\n\n[sample/JFreesteel.java]: https://github.com/grakic/jfreesteel/blob/master/jfreesteel/src/main/java/net/devbase/jfreesteel/sample/JFreesteel.java\n[Slides]: https://speakerdeck.com/u/grakic/p/jfreesteel-citanje-elektronske-licne-karte-u-javi\n[Code Review]: https://github.com/grakic/jfreesteel/wiki/CodeReview\n[Card]: http://docs.oracle.com/javase/7/docs/jre/api/security/smartcardio/spec/javax/smartcardio/Card.html\n[CardTerminal]: http://docs.oracle.com/javase/7/docs/jre/api/security/smartcardio/spec/javax/smartcardio/CardTerminal.html\n\n\n### Maven Repository\n\n    \u003crepositories\u003e\n        \u003crepository\u003e\n            \u003cid\u003ejfreesteel-repository\u003c/id\u003e\n            \u003cname\u003eJFreesteel Maven Repository\u003c/name\u003e\n            \u003curl\u003ehttp://jfreesteel.devbase.net/maven/\u003c/url\u003e\n            \u003csnapshots\u003e\n                \u003cenabled\u003etrue\u003c/enabled\u003e\n            \u003c/snapshots\u003e\n        \u003c/repository\u003e\n    \u003c/repositories\u003e\n    \u003cdependencies\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003enet.devbase.jfreesteel\u003c/groupId\u003e\n            \u003cartifactId\u003ejfreesteel\u003c/artifactId\u003e\n            \u003cversion\u003e1.0-SNAPSHOT\u003c/version\u003e\n        \u003c/dependency\u003e\n    \u003c/dependencies\u003e\n\n\n\nWebExtension (Native Messaging)\n-------------------------------\n\nProof-of-concept WebExtension implementation (tested in Google Chrome) is available\nin the **eidnativemessaging module**. The code is given as-is and more work is required\nto package and distribute Java host application and Google Chrome extension. Sample\nweb page is provided that is using this extension to read public data from the smartcard.\n\n  * [Čitanje lične karte bez Java apleta](http://blog.goranrakic.com/2016/12/citanje-licne-karte-bez-java-apleta.html) (in Serbian)\n\n\nApplet\n------\n\nThe **eidapplet module** contains an \"invisible\" Java applet providing a\nJavaScript interface that can be used in web applications to read smartcard data\nfrom a web browser.\n\n\nApplication\n------\n\nFor non-developers, in the **eidviewer module** there is a full-featured GUI\nviewer built as a Java Swing application using the JFreesteel library. The\nviewer is released under the GNU Affero GPLv3 license and has the iText library\nas a dependency.\n\nTo download the current viewer release for Windows, GNU/Linux\nor Mac OS X please visit http://jfreesteel.devbase.net\n\n\nResources\n---------\n\n  * Get the source code from the Git repository at \n    [Github](https://github.com/grakic/jfreesteel) (prefered) or \n    [Gitorious](https://gitorious.org/freesteel)\n\n  * Check out the library [web page](http://jfreesteel.devbase.net) (in Serbian)\n\n  * Browse the project's [wiki page](https://github.com/grakic/jfreesteel/wiki)\n    \n  * Send your patches and comments to Goran Rakic \u0026lt;grakic@devbase.net\u0026gt; or\n    create a merge/pull request on Github or Gitorious\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrakic%2Fjfreesteel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrakic%2Fjfreesteel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrakic%2Fjfreesteel/lists"}