Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > by-pkgid > e7352439ff135746dddb1eabaca991d4 > files > 4

ifd-gempc410-1.0.1-1mdv2008.1.x86_64.rpm

Gemplus GemPC 410 and GemPC 430 IFD Handler
===========================================

This package provides the source code for the GemPC 410 (serial) and
GemPC 430 (usb) smart card familly readers PC/SC ifd handler.

Both readers use a GemCore chip and the same set of commands. Only the
low level transport layer is different.


See README.410 for GemPC410 specific comments.
See README.430 for GemPC430 specific comments.


Authors:
========

- David Corcoran for the original headers and empty ifdhandler.c file
- Jean-Luc Giraud for the main part of GemPC430/ and half of common/
- Ludovic Rousseau for the main part of GemPC410/ and half of common/


Supported readers:
==================

- GemPC 410
  . normal GemPC 410 (GemCore-R1.21-GM)
  . IBM 410p (v1.21)
  . GemPC 410-SL (GemCore-R1.21-GM)

- GemPC 412
  . GCR412 FirstUSA (GemCore-R1.21-GM)

- GemPC 413
  . EMV complient (GemCore-R1.32-GK)

- GemPC 415
  . VISA and American Express 415 (unkown)

- GemPC 430
  . normal GemPC 430 (GemUsb-R1.04-GM)

- GemPC 432
  . target.com (GemUsb-R1.04-WM)

- GemPC 435
  . American Express Blue Card reader (GemUsb-R1.04-A)

The number in () is the GemCore version as seen in the logs generated by
the driver. Like in "(GemPC430) OS string: GemUsb-R1.04-GM" or
"(GemPC410) OS string: GemCore-R1.21-I"


Unsupported GemCore based readers:
==================================

- GCR400
  Very old version of the GemPC410.

- GCR410
  Old version of the GemPC410. This reader uses a GemCore version 1.118
  or 1.10. With this firmware the case 4 commands (both input and output
  data) will not work.


Licences:
=========

The files in GemPC410/ are under GNU General Public Licence.

The files in GemPC430/ are under a BSD-like licence (except main.c which
is under GPL but is not needed to build the driver).

The files in common/ are under a double licence BSD-like and GNU General
Public Licence. except the files ifdhandler.c, ifdhandler.h and
pcscdefines.h which are originally written by David Corcoran and are
under the BSD-like licence.

That means that the GemPC 410 driver is under GNU General Public
Licence, and that the GemPC 430 driver is the BSD-like licence or the
GNU General Public Licence at your choice.


Supported pcsc-lite versions
============================

pcsc-lite 1.1.2beta4 and later
    You can get the latest pcsc-lite version from
    http://linuxnet.com/middle.html or from
    http://pcsclite.alioth.debian.org/

Get pcsc-lite higher than 1.2.0 if you want to use /etc/reader.conf
DEVICENAME fields managed by the new API IFDHCreateChannelByName()


History:
========

1.0.1 - 9 February 2006, Ludovic Rousseau
    - remove a useless "POUET" debug message
    - allow compilation with pcsc-lite-1.2.9-beta10. The check script
      was buggy for beta > 9
    - fix some compilation warnings with gcc 4.0

1.0.0 - 17 June 2005, Ludovic Rousseau
    - use new pcscd log function with dynamic level
    - use `pkg-config libpcsclite --variable=usbdropdir` to know where
      to install the driver

0.9.3 - 8 August 2004, Ludovic Rousseau
    - maintainance release to make it compile using gcc-3.4

0.9.2 - 25 July 2004, Ludovic Rousseau
    - use the header files provided by pcsc-lite 1.2.9-beta
    - use pkg-config to know the where to find the pcsc-lite include
      files
    - minium pcsc-lite version is 1.2.9-beta5

0.9.1 - 27 February 2004, Ludovic Rousseau
    - add a compilation flag AUTOMATIC_PPS to activate automatic PPS
      negociation by the reader firmware. I received many bug reports
      with some cards. The card works until some APDU returns a
      "invalid procedure byte" error. By default the automatic PPS
      negociation is now NOT performed. Uncomment a line in
      GemPC4?0/Config.h to revert to the previous behavior and choose
      speed versus safety
    - GemPC430/libusb_wrap.c: use pcsc-lite new
      IFDHCreateChannelByName() scheme: usb:vendor/product
      In 0.9.0 the driver failed when used with a CVS version of
      pcsc-lite. Thanks to Dr Russel Winder for the bug report
    - common/GCCmds.h: the GemCore error message now contains the file,
      function and line number of the command with error and not of the
      error printing function
    - add two GemCore error code descriptions: 0x15 and 0xE4

0.9.0 - 22 January 2004, Ludovic Rousseau
    - add support of IFDHCreateChannelByName() (from pcsc-lite > 1.2.0)
    - GemPC430/libusb_wrap.c: reset the reader in case of timeout on
      write (reader freeze?). Thanks to Patrick Valsecchi for the patch.
    - use asymetric timeout for USB read and write. The reader/card may
      be busy when we read (long timeout) but should be OK when we write
      (short timeout)

0.8.2 - 22 Octobre 2003, Ludovic Rousseau
    - Remove support for multi slot. The code was never used and is now
      broken under revent pcsc-lite versions. The error under pcsc-lite is:
        readerfactory.c:1391 RFInitializeReader: Attempting startup of GemPC430 0 0.
        readerfactory.c:1133 RFBindFunctions: Loading IFD Handler 2.0
        ifdhandler.c:87 (GemPC43x) Entering IFDHCreateChannel (lun: 0)
        GCCmds.c:394 (GemPC43x) GCCmdSetMode
        GCCmds.c:319 (GemPC43x) GCCmdGetOSVersion
        GemPC430Utils.c:51 (GemPC43x) OS string: GemUsb-R1.04-GM 
        ifdhandler.c:158 (GemPC43x) entering IFDHGetCapabilities (lun: 0)
        ifdhandler.c:158 (GemPC43x) entering IFDHGetCapabilities (lun: 0)
        readerfactory.c:1391 RFInitializeReader: Attempting startup of GemPC430 0 1.
        readerfactory.c:925 RFLoadReader: Warning library pointer not NULL
        readerfactory.c:1133 RFBindFunctions: Loading IFD Handler 2.0
        ifdhandler.c:87 (GemPC43x) Entering IFDHCreateChannel (lun: 1)
        libusb_wrap.c:106 (GemPC43x) USB driver with lun 1 already in use
        GemPC430Utils.c:30 (GemPC43x) OpenUSB failed
        ifdhandler.c:102 (GemPC43x) OpenReader failed
        readerfactory.c:1428 RFInitializeReader: Open Port 200000 Failed
        readerfactory.c:423 RFAddReader: GemPC430 init failed.
        hotplug_libusb.c:344 Adding USB device: 002:002
        readerfactory.c:119 RFAddReader: Duplicate reader found.
        hotplug_libusb.c:344 Adding USB device: 002:002
        readerfactory.c:119 RFAddReader: Duplicate reader found.
        [...]
      The reader told pcsc-lite that it supported two slots and
      pcsc-lite wanted to start two readers (one for each slot).
    - add support for 7 new GemCore error codes
    - check: Explain how to tell check to look elsewhere than just /usr/
      and /usr/local/

0.8.1 - 2 Septembre 2003, Ludovic Rousseau
    - ./check: uses paths defined in the Makefiles (if libusb is not
      installed in /usr or /usr/local)
    - common/GCCmds.c: add support of GemCore "Parity error during
      exchange"
    - GemPC410/devfs/libgempc410.devfsd.conf: use $devpath instead of
      $devname otherwise we have /dev/pcsc/1 -> tts/0 instead of
      /dev/pcsc/1 -> /dev/tts/0
    - GemPC430/Info.plist: use new <array></array> style
    - common/ifdhandler.c: FDHGetCapabilities() add support of tag
      TAG_IFD_SLOTS_NUMBER. All the readers I have/know have only one
      slot so this does not bring any new real functionnality.
    - Makefiles: do not exit with failure if makedepend(1) does not
      exist
    - update build and distclean rules.

0.8.0 - 12 April 2003, Ludovic Rousseau
    - Add support for GemPC 413 reader. That reader uses GemCore 2000
      and is EMV complient (different powerup sequence).
    - Add support for driver aliasing for USB drivers. Allows to connect
      different readers like a 430 and a 432 at the same time. You will
      need pcsc-lite-1.1.2beta4 for that.
    - change USB timeout from 10 to 60 seconds.
    - check: do not use /usr/local/include by default since cpp will
      warning on some systems (recent RedHat systems).
    - optimize Makefile to limit restarting unnecessary check and building.
    - driver filename for USB is now versioned (ie libGemPC430.so.0.8.0).

0.7.4 - 20 November 2002, Ludovic Rousseau
    - add comment on how to compile the USB driver (install libusb, etc.)
    - add the ./check script (MacOS X is not concerned here).
      Many users add problems with a "undefined symbol: debug_msg" error
      when starting pcscd. It will now NOT be possible to compile the
      drivers unless the _minimum_ versions of libusb and pcsc-lite are
      installed.

0.7.3 - 18 October 2002, Ludovic Rousseau
    - The GemPC430 driver under Linux now support hotplug. With the
      previous versions the reader(s) needed to be plugged _before_
      pcscd is started.

0.7.2 - 15 October 2002, Ludovic Rousseau
    - very very small modification. The previous compilation problem was
      not corrected.

0.7.1 - 15 October 2002, Ludovic Rousseau
    - very small modification to ease or allow compilation on some
      platforms (all 11 Debian supported platforms except i386)

0.7.0 - 13 October 2002, Jean-Luc Giraud, Ludovic Rousseau
    - the drivers are now shipped with low level debug messages OFF
    - do not depend on makedepend(1) anymore. Use it if present only.
    - GemPC410:
      - retry the last command if GBP returns a wrong first byte (NAD).
        This will help some GemPC410 to work. Before pcscd had to be
        started a second time.
      - add support for GemCore Repeat requests
    - GemPC410/devfs/ contains configuration files for devfs Linux systems
    - README.430: add a note about /proc/bus/usb/ directory under Linux
    - usbserial_mosx.c:
      - better stability and multiple reader support
      - the productId is now read from the Info.plist. This allow to
        support readers like the 432 and 435 without recompiling the
        library
    - libusb_wrap.[c|h] new files to use libusb under Linux and other
      systems supported by libusb. The USB driver _should_ work under
      FreeBSD and OpenBSD but in fact does not.

0.6.5 - 16 August 2002, Ludovic Rousseau
    - update README with the new readers supported (412, 415, 432, 435)
    - we now use the debug facilities from pcscd. see "Supported
      pcsc-lite" section
    - GemPC410/gbpserial.c: the serial initialisation should work
    - GemPC430/usbserial_linux.c: support for 432 and 435 readers

0.6.4 - 21 May 2002, Ludovic Rousseau
    - common/GCCmds.c: perform a powerup without PPS managment if the
      powerup with PPS managment failed
    - */Makefile: correctly remove .dependencies files
    - change sys_errlist[errno] to strerror(errno) to be (more) ready
      for the Hurd

0.6.3 - 9 May 2002, Ludovic Rousseau
    - README.410: Add info on /dev/pcsc/ for OpenBSD and FreeBSD
    - Case1 APDUs are converted in ISO IN commands (with length=0)
      instead of ISO OUT commands
    - some code cleanup

0.6.2 - 01 Apr 2002, Ludovic Rousseau, Jean-Luc Giraud
    - Add support for TAG_IFD_SIMULTANEOUS_ACCESS in IFDHGetCapabilities
    - Restore automatic PPS management compatible with Cyberflex
    - GemPC430/usbserial_mosx.c: fixes for multi-reader support
    - GemPC410/gbpserial.c: complete reimplementation of serial port
      configuration

0.6.1 - 11 Mar 2002, Ludovic Rousseau
    - GemPC410/gbpserial.c:
      . modified again the port BAUDS setting during open().

0.6.0 - 7 Mar 2002, Ludovic Rousseau
    - GemPC410/gbpserial.c:
      . modified the port BAUDS setting during open().
      . Changed the timeout delay from 2 to 10 seconds
    - common/ifdhandler.c: IFDHTransmitToICC: now manages case 1 APDU
      (only CLA, INS, P1, P2) as an outgoing APDU (CLA, INS, P1, P2, 0)
    - add a debug level: PERIODIC for... periodic calls. Do not define
      DEBUG_LEVEL_PERIODIC in GemPC4?0/Config.h if you don't want to see
      periodic logs from GCCmdCardStatus(), IFDHSetCapabilities() and
      IFDHICCPresence()
    - add a note about support of the IBM-410p reader.

0.5.10 - 3 Mar 2002, Ludovic Rousseau, Jean-Luc Giraud
    - fix bug with some kind of Cyberflex Access cards:
      . disable PPS management
      . the reader stays at 9600 bauds in all cases
    - fix bug when more than 252 output bytes are expected and less than
      that are available (which is the case when the card sends an error)
    - modify install: rule to include release version number in
      filename, create symlinks, remove execution right on the .so lib
    - README.410: Add a script to create the /dev/pcsc/? links
    - GemPC430/GemPC430Utils.c, GemPC410/GemPC410Utils.c,
      common/GCCmds.c: guarantee that the os_string is \0 terminated
    - GemPC410/resetGemPC410.c, GemPC410/gbpserial.c: use
      cfgetospeed()/cfsetospeed() instead of accessing directly the
      termios structure
      . the driver now works under OpenBSD
    - common/ifdhandler.c: also log APDU results

0.5.9 - 30 Nov 2001, Jean-Luc Giraud
    - fix bug in GCUtils.c/gemcore_ISO_EXCHANGE_processing()
    - added ProjectBuilder folder for MacOS X

0.5.8 - 27 Nov 2001, Ludovic Rousseau
    - MANIFEST: do not contain non existing files
        include create_distrib.sh
    - create_distrib.sh: exit in case of error
        mkdir creates the parents directories if needed, 

0.5.7 - 27 Nov 2001, Ludovic Rousseau
    - GemPC430/usblinux.c: crashed with two readers and no root
      priviledges
    - GemPC410/main.c: test code now support ISO 7816 case 1, 2, 3 and 4
      using Jean-Luc ReaderTest Java applet (not included here)
    - common/GCUtils.c: add support for IFD_ICC_NOT_PRESENT GemCore
      error status
    - GemPC410/gbpserial.c: prepare to support multi serial readers
    - GemPC430/usbserial_mosx.c: prepare to support multi USB readers
    - GemPC410/gbpserial.c: use explain_gbp() to log a descriptive GBP
      level error message
    - MANIFEST: add README.410
    - GemPC410/GemPC410Utils.c: log "OS string" at CRITICAL level to
      always have it the logs
    - GemPC430/GemPC430Utils.c: log "OS string" at CRITICAL level to
      always have it the logs
    - common/ifdhandler.c: Add APDU logging
    - common/GCdebug.h: add DEBUG_COMM3() and DEBUG_CRITICAL3() which is
      typically used to log error messages like "blabla /foo/bar: file not
      found"

0.5.6 - 15 Nov 2001, Ludovic Rousseau
    - all: migrate the type return value from RESPONSECODE to ifd_t,
      status_t or gcore_t
    - GCCmds.c: migrate from low level GCSendCommand() use to higer
      level and simpler GCMakeCommand()
    - libGemPC410 now supports long commands

0.5.5 - 7 Nov 2001, Ludovic Rousseau
    include Jean-Luc modifications to add a new protocol layer
    patch GemPC410 to support this layer
    include patches from the Debian package

0.5.4 - 28 Oct 2001, Ludovic Rousseau
    first public release
    I clarified the licences

0.5.3 - 26 Oct 2001, Ludovic Rousseau
    GemPC 410 and GemPC 430 compiles and runs

0.5.2bis - 23 Oct 2001, Jean-Luc Giraud
    Jean-Luc starts to dispatch ifdhandler.c

0.5.2 - 22 Oct 2001, Ludovic Rousseau
    first release containing GemPC410/ GemPC430/ and common/

0.5 - 14 Oct 2001, Jean-Luc Giraud
    complete release containing the code for the GemPC 430

?.? - 25 Sep 2001, Jean-Luc Giraud
    release of ifdhandler.{c,h} and GemCore.h

$Id: README,v 1.34 2006-02-09 13:29:55 rousseau Exp $

 vim:ts=20