===============================================================================
KOBIL Systems GmbH
===============================================================================
CT-API driver and PC/SC-Plugin
- 64 Bit version -
===============================================================================
Version:
--------
2011.05.11
Supported KOBIL Smart Card Terminals:
-------------------------------------
- KAAN Professional RS232
- KOBIL KAAN Base RS232
- KOBIL KAAN Advanced RS232
For testing only:
- KOBIL KAAN Base USB (beta status!)
- KOBIL KAAN Advanced USB (beta status!)
- KOBIL KAAN SIM III / mIDentity Light (beta status!)
- KOBIL SecOVID Reader III / EMV TriCAP Reader / KAAN TriB@nk (beta status!)
- KOBIL mIDentity L, XL, XXL (in composite device mode only, beta status!)
Supported Operating Systems:
----------------------------
- Any Linux distribution (on x86_64) with glibc 2.3 or newer.
Note that if you run a 32 Bit application on a 64 Bit machine,
you must use the 32 Bit version of these drivers!
Required Packages:
------------------
For KOBIL KAAN Base USB, KOBIL KAAN Advanced USB, KOBIL KAAN SIM III,
SecOVID Reader III, EMV TriCAP Reader, KAAN TriBank and KOBIL mIDentity
two additional packages are required, namely:
- LIBCCID 1.3.x or newer, but not LIBCCID-1.4.3
(download from http://pcsclite.alioth.debian.org/ccid.html)
please pay attention to notes about libusb versions there!
- MUSCLE framework pcsc-lite-1.5.x or newer
(download from http://alioth.debian.org/projects/pcsclite/ )
Note: This release fixes an incompatibility in secure PIN handling with
CCID-1.3.10 and newer.
Fast installation:
------------------
If you are either using a serial reader or a working version of
pcsc-lite is already installed, you can simply copy libct.so to
/usr/lib (or any other directory, that is in your library search
path)
When using ports 1 through 4, this will by default address a
serial reader, while 5 and up will address PCSC readers.
Installation details:
---------------------
After using CT-Api for the first time, ~/.CT_devices will have
been created. In this file, you can change which ports map to
what, so you can force e.g. port 1 to use PCSC or you can force
more serial ports. Example:
Port1=PCSC;[IDX="1"];3;0;KOBIL reader over PCSC
forces port 1 to use the first reader found by PCSC.
Note: If you are using several readers, you probably want to clearly
determine which one should be addressed by which port, however,
PC/SC's ordering is more or less random.
So, in place of [IDX="1"] you can use the full reader name as
found by pcscd. To see which string(s) you need to use, you can
start pcscd in foreground mode, e.g. via /usr/sbin/pcscd -f
Alternatively, you can use a couple of magic strings to specify
- a substring the reader name should contain ([CNT="substring"]),
- a serial number the reader should have ([SN="serial number" ],
- or as seen above the index (starting with 1) of the reader in
the list of readers given by PC/SC lite ([IDX="nr"]),
for example:
Port1=PCSC;[CNT="KAAN Advanced"];3;0;KAAN Advanced USB over PCSC
or
Port1=PCSC;[IDX="3"];3;0;Third reader found by PCSC
If you start with a fresh .CT_devices (or if you reset DefaultPortType
to 0), unknown port indices are handled as follows: For indices 1
through 4, CT-API will try to open a serial reader at the given
port, for indices 5 and higher, CT-API will try to open the PCSC
reader with the index decreased by 4, i.e. if you start with a
fresh .CT_devices, after attempting to open Ports 1 through 8, it
will contain lines like those:
Port1=COM;/dev/ttyS0;1;0;serial reader at /dev/ttyS0: B1/Kaan Pro
Port2=COM;/dev/ttyS1;1;0;serial reader at /dev/ttyS1: unknown reader
Port3=COM;/dev/ttyS2;1;0;serial reader at /dev/ttyS2: B1/Kaan Pro
Port4=COM;/dev/ttyS3;1;0;serial reader at /dev/ttyS3: unknown reader
Port5=PCSC;[IDX="1"];3;0;reader via PCSC [IDX="1"]: transparent
Port6=PCSC;[IDX="2"];3;0;reader via PCSC [IDX="2"]: transparent
Port7=PCSC;[IDX="3"];3;0;reader via PCSC [IDX="3"]: transparent
Port8=PCSC;[IDX="4"];3;0;reader via PCSC [IDX="4"]: transparent
Note that only ports that you actually tried to access will be
listed in that file.
Special cases:
--------------
There are basically three cases that require special care:
1. Running 32-bit applications on 64-bit Linux.
First, you need the 32-bit version of this library,
see directory ../linux. Second, for PCSC readers, you also
need a 32-bit version of the PC/SC-Lite library (libpcsclite.so).
Note that starting with pcsclite-1.5.0, this library is supposed
to be able to communicate with the 64-bit version of the pcsc
daemon, so once that library is installed, everything should work
out of the box. In case of problems, an update to a newer
pcsclite version should help.
2. Broken installation of PC/SC and/or CCID software.
For some (older) linux distributions, pcsclite and ccid can be
installed from the installation CD but the process results in
a broken installation, because configuration files like
Info.plist are missing or not in the expected place.
This is typically the case if you are running "pcscd -df" and
get a message about "missing bundle files" or if you get no
reaction to attaching the reader to an USB port.
In this case, compiling and installing from the source code
of the current packages available from http://alioth.debian.org/
is your best bet.
3. Using 2048-bit RSA encryption or - more generally speaking -
sending commands and receiving answers longer than 256 bytes.
Note that there is a bug in the CCID driver which in older versions
caused crashes especially when receiving answers from the card
reader, that are longer than 256 bytes, while newer versions just
give an error message.
As a workaround, you can download the latest sources of the CCID
driver from
http://pcsclite.alioth.debian.org/ccid.html
Change into the root directory of the CCID distribution and apply
the patch in the file ccid.patch via GNU patch e.g. by issuing
patch < ccid.patch
Compile and install the library as described in the instructions
for this package.
Note: The included patch was tested with pcsc-lite-1.5.5 and
ccid-1.3.11.
Installation notes for serial readers:
--------------------------------------
Depending on your application you might want to use the MUSCLE
framework to connect to your reader. If you are using one of the
PCSC readers which always use the MUSCLE framework, this is
obviously not a problem. For the serial readers, a so-called
interface device handler (IFDH), i.e. a plugin for the MUSCLE
PC/SC lite framework, is provided by libkobil_ifd.so. To use this
handler, you may proceed as follows:
- First, install libct.so and libkobil_ifd.so to a directory in your
library search path.
- If the PC/SC lite framework is not yet installed, install it,
following the instructions of pcsclite (ccid and libusb are not
strictly needed for those readers).
- Last copy reader.conf to /etc and adapt it to your needs:
* enter the correct absolute path to libkobil_ifd.so
* enter the correct "CHANNEL".
Files included in this package:
-------------------------------
- readme.txt this text file
- libct.so CT-API driver
- libkobil_ifd.so PC/SC driver plugin (for MUSCLE PC/SC lite framework)
- reader.conf sample configuration file for PC/SC driver
- cardping sample program to send APDUs to terminal/cards
- ccid.patch the patch file for the CCID driver
- development.txt some hints for software developers
- ct_api.h header file for developpers.
- libct.a static version of CT-API driver for developpers
===============================================================================
Download Driver Pack
After your driver has been downloaded, follow these simple steps to install it.
Expand the archive file (if the download file is in zip or rar format).
If the expanded file has an .exe extension, double click it and follow the installation instructions.
Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.
Find the device and model you want to update in the device list.
Double-click on it to open the Properties dialog box.
From the Properties dialog box, select the Driver tab.
Click the Update Driver button, then follow the instructions.
Very important: You must reboot your system to ensure that any driver updates have taken effect.
For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.