Omnikey AG and their ridiculous driver policy

Since I'm doing some work with cryptographic smart cards, I wanted to get some PCMCIA/PC-Card smartcard adapter. This would save me from carrying the somewhat large USB-based devices that I have.

So I found reasonably priced Omnikey CardMan Mobile 4000 and Omnikey CardMan Mobile 4040 devices.

The vendor claims in the download section of his homepage to have "Linux Drivers, Source Code". That was enough for me to actually buy the device.

I should have read the "source code" first, since what they actually ship is a BSD/GPL licensed kernel module together with a binary-only i386 ELF library. So now the device is totally useless to me, since the only machines with PC-Card or PCMCIA slot that I own are non-i386 (ARM, MIPS, PPC, x86_64) - including my Notebook, for which I actually bought the device.

So I contacted their support, but all they told me is that they wouldn't release the source code to their library, since it contains "valuable driver know-how". I explained in deep detail how that actually harms their users, tow which they just responded with "we know that we cannot make all users happy". Then I explained to them that EU copyright explicitly allows reverse engineering for the purpose of interoperability.

And that's what I actually did. So their "valuable driver know-how" came down to the implementation of the ISO/IEC 7816-3 T=0 and T=1 protocols, of which there are plenty closed and open source implementations, for example in the REINER SCT CyberJack driver that I happen to maintain, or in the OpenCT package.

A couple of hours later I wrote an OpenCT backend for the CardMan 4000. It works, at least I've successfully managed to issue basic commands with both T=0 and T=1.

So what does this tell us about Omnikey AG? That they are a bunch of corporate suits who'd rather trick their users with wrong advertising statements ("source code driver") than to release a shared library that has been replaced by something like four to six hours of work.

I'm likely to add OpenCT support for the Omnikey 4040 and 5121 devices, too. They're a bit more tricky to interface, but apparently they're somewhat designed with the CCID spec in mind, although not fully compatible.

Hopefully within short time, the users will be freed from Omnikey's Intel lock-in policy., and nobody will have to use their non-free software anymore.