A few days prior I have finally received my electronic ID or eID that can be used to streamline the communication with various official bureaus in the country. Since it is Java based, it has a support for multiple OSes by default, including Linux. Although, as I stated in the previous article, officially only Debian, Ubuntu and Mint distributions are supported, I was able to use all the functionality that were within my reach on Arch as well. It just requires a little bit of configuration, as is the norm with this rolling release, cutting edge distro.

The required packages I had to have installed at the time of writing on a fully updated Arch, some of them are available on AUR:

  • Card reader via pcsclite and ccid
  • Java 8 via jre8-openjdk and jre8-openjdk-headless
  • Java 8 JFX via java8-openjfx
  • IcedTea via icedtea-web
  • eID client via eidklient
  • web signer via disig-web-signer

The above can be installed with the following:

yay -S pcsclite ccid jre8-openjdk jre8-openjdk-headless \
    java8-openjfx icedtea-web eidklient disig-web-signer

Next download, extract, mark as executable and run D.Launcher. At the time of writing the version 1.1.0.1a was available for GNU/Linux x64 at:

https://www.slovensko.sk/static/zep/apps/DLauncher.linux.x86_64.zip

As noted in the previous articles, start a pcscd service to access the built in card reader:

sudo systemctl enable pcscd --now

There are two external card readers supplied by the bureau. One of them might be requiring a driver - Search for bit4id in AUR.

Finally, create a file ~/.config/icedtea-web/deployment.properties with the following content:

deployment.jre.dir=/usr/lib/jvm/java-8-openjdk

The above will be different depending on the distribution used.

OpenJDK location

For Arch Linux, the folder where Java 8 resides can be double-checked with pacman:

pacman -Fl jre8-openjdk | grep lib

Which should output something very similar to:

jre8-openjdk usr/lib/
jre8-openjdk usr/lib/jvm/
jre8-openjdk usr/lib/jvm/java-8-openjdk/
jre8-openjdk usr/lib/jvm/java-8-openjdk/jre/
jre8-openjdk usr/lib/jvm/java-8-openjdk/jre/bin/
jre8-openjdk usr/lib/jvm/java-8-openjdk/jre/bin/policytool
jre8-openjdk usr/lib/jvm/java-8-openjdk/jre/lib/
jre8-openjdk usr/lib/jvm/java-8-openjdk/jre/lib/amd64/
jre8-openjdk usr/lib/jvm/java-8-openjdk/jre/lib/amd64/libjsound.so
jre8-openjdk usr/lib/jvm/java-8-openjdk/jre/lib/amd64/libjsoundalsa.so
jre8-openjdk usr/lib/jvm/java-8-openjdk/jre/lib/amd64/libsplashscreen.so

Modify the content of the file above if needed, but the existing location is not really going to change, unless a different Java version is used for this stack in the future.

Anyway, this should be it, using official electronic communication should be possible with the above steps, unless I missed something. It is quite time consuming to completely re-check everything, as there are many steps involved. And some steps like generating the initial certificates are done only once or very infrequently. I am leaving it here in case someone stumbles on it.