ThinkFinger
===========

ThinkFinger is a driver for the UPEK/SGS Thomson Microelectronics fingerprint
reader (USB ID 0483:2016).  The device is being found either as a standalone
USB device, built into USB keyboards or built into laptops.  The following
laptop vendors are using the device:

- Dell
- IBM/Lenovo
- Toshiba

Toshiba is shipping their laptops either with the UPEK/SGS Thomson Micro-
electronics fingerprint reader or with a fingerprint reader built by AuthenTec.
The AuthenTec fingerprint reader is *not* supported by ThinkFinger.

SONY laptops with the UPEK/SGS Thomson Microelectronics fingerprint
reader are not supported.

ThinkFinger is devided into two parts: libthinkfinger and pam_thinkfinger.

libthinkfinger is a library to be used in order to communicate with the finger-
print reader.

The utility 'tf-tool' can be used to acquire and to verify fingerprints.

Installation Instructions
=========================

Please check the INSTALL file.

Simple Test Tool: tf-tool
=========================

Usage: tf-tool [--acquire | --verify | --add-user <login> ] [--verbose]

To acquire a fingerprint run 'tf-tool --acquire'.  You will be prompted to
swipe your finger.  It needs three successful swipes to get a fingerprint.
This fingerprint is being stored in '/tmp/test.bir'.

To verify a fingerprint run 'tf-tool --verify'.  tf-tool will read a finger-
print image from '/tmp/test.bir' and compare that with the finger which
is being swiped.

Notes:

It is likely that you have to run 'tf-tool' as root as it needs to access the
USB device.  On most distribution the device node can not be accessed by a
regular user.

The switch '--add-user' is only available if ThinkFinger was built with PAM
support.

Pluggable Authentication Module: pam_thinkfinger
================================================

The pluggable authentication module pam_thinkfinger can be used for PAM (e.g.
to log into your system).  The module needs to be copied to the location
where PAM expects the modules to reside.  On most GNU/Linux distributions
PAM modules are stored in '/lib/security'.

In order to use pam_thinkfinger, PAM needs to be aware of the module.  To
achieve this please edit '/etc/pam.d/common-auth'.  You are required to add
the following directive:

     auth     sufficient     pam_thinkfinger.so

See [1] for a complete example how '/etc/pam.d/common-auth' looks like.

The module does only trigger for users which have deposited their fingerprint
in '/etc/pam_thinkfinger/'.

E.g. if the user 'bob' wants to login using his fingerprint, his fingerprint
needs to be stored at '/etc/pam_thinkfinger/bob.bir'.  See [2] for a more
detailed example.

PAM Compatibility
=================

The pluggable authentication module pam_thinkfinger should work with all
PAM aware applications.

Authors
=======

Timo Hoenig <thoenig@suse.de>, <thoenig@nouse.net>
Pavel Machek <pavel@suse.cz>
Wolfgang Hafenscher <wolfgang@hafenscher.net>

Project Page
============

* http://thinkfinger.sourceforge.net

SVN
===

* svn co https://svn.sourceforge.net/svnroot/thinkfinger

Mailing List
============

* https://lists.sourceforge.net/lists/listinfo/thinkfinger-devel

[1] Example for a ThinkFinger-enabled '/etc/pam.d/common-auth'

#%PAM-1.0

auth	required	pam_env.so
auth	sufficient	pam_thinkfinger.so
auth	required	pam_unix2.so

[2] Example how to store a fingerprint image for user 'bob'

root@host~> tf-tool --add-user bob

( Now user 'bob' has to swipe his finger three times )

ThinkFinger 0.2.1 (http://thinkfinger.sourceforge.net/)
Copyright (C) 2006, 2007 Timo Hoenig <thoenig@suse.de>

Initializing... done.
Please swipe your finger (successful swipes 3/3, failed swipes: 0)... done.
Storing data (/etc/pam_thinkfinger/bob)... done.

Now 'bob' can authenticate himself by swiping his finger.
