All Projects → grakic → jfreesteel

grakic / jfreesteel

Licence: other
A native Java library, a Swing GUI application and an applet to read the Serbian eID card, built on javax.smartcardio

Programming Languages

java
68154 projects - #9 most used programming language
HTML
75241 projects
shell
77523 projects
javascript
184084 projects - #8 most used programming language
NSIS
403 projects
Makefile
30231 projects

Projects that are alternatives of or similar to jfreesteel

transmitter
A WebExtension for the Transmission BitTorrent client
Stars: ✭ 72 (+50%)
Mutual labels:  webextensions
Wordology
A WebExtensions browser extension for aiding language learning.
Stars: ✭ 19 (-60.42%)
Mutual labels:  webextensions
hsmwiz
HSMWiz is a frontend for OpenSC, pkcs11tool and pkcs15tool to ease handling of HSM smartcards
Stars: ✭ 27 (-43.75%)
Mutual labels:  smartcard
cie-middleware
Middleware della CIE (Carta di identità elettronica)
Stars: ✭ 57 (+18.75%)
Mutual labels:  smartcard
apdu-intercept
Smartcard APDU interception and MITM for one smartcard model
Stars: ✭ 33 (-31.25%)
Mutual labels:  smartcard
SixIndicator
SixIndicator is a WebExtension Plugin which indicates via an icon, if you are viewing the website with IPv6 or IPv4.
Stars: ✭ 17 (-64.58%)
Mutual labels:  webextensions
man-in-the-middle
Modify requests, inject JavaScript and CSS into pages
Stars: ✭ 74 (+54.17%)
Mutual labels:  webextensions
fortify
Fortify enables web applications to use smart cards, local certificate stores and do certificate enrollment. This is the desktop application repository.
Stars: ✭ 88 (+83.33%)
Mutual labels:  smartcard
scd-pkcs11
PKCS#11 provider with smart card support via GnuPG
Stars: ✭ 35 (-27.08%)
Mutual labels:  smartcard
x41-smartcard-fuzzing
X41 Smartcard Fuzzer
Stars: ✭ 113 (+135.42%)
Mutual labels:  smartcard
oseid
Microchip AVR based smartcard/token with ECC and RSA cryptography
Stars: ✭ 17 (-64.58%)
Mutual labels:  smartcard
cie-middleware-linux
Middleware della CIE (Carta di Identità Elettronica) per Linux
Stars: ✭ 31 (-35.42%)
Mutual labels:  smartcard
snapsite
The easiest way to get website internal / customers feedbacks (WebExtensions)
Stars: ✭ 12 (-75%)
Mutual labels:  webextensions
keycard-cli
A command line tool and shell to manage keycards
Stars: ✭ 42 (-12.5%)
Mutual labels:  smartcard
Image-Reverse-Search-WebExtension
WebExtension: Adds an option to the context menu to search with an image on various services.
Stars: ✭ 89 (+85.42%)
Mutual labels:  webextensions
newhackbar
A sitebar that helps pentesters to perform manual web security testing inside their browser. This addon is written in webextension and alternatives to the XUL version of original Hackbar.
Stars: ✭ 42 (-12.5%)
Mutual labels:  webextensions
win-gpg-agent
[DEPRECATED] Windows helpers for GnuPG tools suite
Stars: ✭ 214 (+345.83%)
Mutual labels:  smartcard
simtrace2
Osmocom SIM card tracer, v2.0; mirror of https://gitea.osmocom.org/sim-card/simtrace2
Stars: ✭ 54 (+12.5%)
Mutual labels:  smartcard
soundfixer
A WebExtension that lets you fix sound problems in e.g. YouTube videos
Stars: ✭ 102 (+112.5%)
Mutual labels:  webextensions
copy-selected-tabs-to-clipboard
Provides ability to copy title and URL of selected tabs to the clipboard for Firefox 63 and later.
Stars: ✭ 46 (-4.17%)
Mutual labels:  webextensions

JFreesteel

JFreesteel is a reusable open-source Java library for reading public data from the Serbian eID card. It is built on top of javax.smartcardio and released under the GNU LGPLv3 license.

Build Status

Using this library your Java desktop applications and general web applications running in a browser (via "invisible" Java applet) can access the smartcard reader to get data such as personal number, full name, place of residence or date of birth. It is also possible to read personal photo from the eID card.

It is built on top of native Java smart card interface and does not require installation of the middleware software or other libraries. Underlay, Java is using system PC/SC interface (bundled with MS Windows and Apple Mac OS X, and pcsc-lite is available on GNU/Linux)

Java API

To start using the library API, call methods readEidInfo() and readEidPhoto() on the EidCard instance. There are two options to get EidCard instance.

There is a low-level API where you get an instance from a card that is currently inserted in a smartcard reader (terminal) with EidCard.fromCard(Card) factory method. A sample code sample/JFreesteel.java is availabile in the jfreesteel module. When using the low-level API, you would need to handle card insertions and removals.

It is better to use a high-level API where you just have to implement a listener following the ReaderListener interface, adding your code to methods inserted() and removed(), then subscribe this listener to a Reader object wrapping a smartcard reader. Your listener will be notified whenever the eID card is inserted or removed from a smart card reader, receiving a new EidCard instance on insert.

For more API details, you may find these slides useful (in Serbian): Čitanje elektronske lične karte u Javi.

Note: After the latest API update, EidCard is an abstract class. If you do not use a Reader object, to get an instance call EidCard.fromCard(Card).

Code Review wiki page has some more info in Serbian.

Maven Repository

<repositories>
    <repository>
        <id>jfreesteel-repository</id>
        <name>JFreesteel Maven Repository</name>
        <url>http://jfreesteel.devbase.net/maven/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>net.devbase.jfreesteel</groupId>
        <artifactId>jfreesteel</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>

WebExtension (Native Messaging)

Proof-of-concept WebExtension implementation (tested in Google Chrome) is available in the eidnativemessaging module. The code is given as-is and more work is required to package and distribute Java host application and Google Chrome extension. Sample web page is provided that is using this extension to read public data from the smartcard.

Applet

The eidapplet module contains an "invisible" Java applet providing a JavaScript interface that can be used in web applications to read smartcard data from a web browser.

Application

For non-developers, in the eidviewer module there is a full-featured GUI viewer built as a Java Swing application using the JFreesteel library. The viewer is released under the GNU Affero GPLv3 license and has the iText library as a dependency.

To download the current viewer release for Windows, GNU/Linux or Mac OS X please visit http://jfreesteel.devbase.net

Resources

  • Get the source code from the Git repository at Github (prefered) or Gitorious

  • Check out the library web page (in Serbian)

  • Browse the project's wiki page

  • Send your patches and comments to Goran Rakic <[email protected]> or create a merge/pull request on Github or Gitorious

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].