Perl interface to the PC/SC smart card library
==============================================
This package contains a Perl wrapper to the PC/SC smartcard library
(pcsc-lite) [1] from MUSCLE [2] together with some small examples.
You can find applications using this wrapper in the pcsc-tools package
[3].
[1] http://pcsclite.alioth.debian.org/
[2] http://www.musclecard.com/
[3] http://ludovic.rousseau.free.fr/softwares/pcsc-tools/
Build and Install:
==================
A very quick documentation on how to build and install the wrapper.
$ perl Makefile.PL
$ make
Insert a smart card in the (first) PCSC reader
$ make test
$ sudo make install
Remarks:
========
For Windows users:
Status behaves different on Unix and from Win32
it returns the Atr len
it does not return any error like
Authors:
========
- Lionel VICTOR for the main part of the job
- Ludovic ROUSSEAU for the debug and maintainance
Licences:
=========
pcsc-perl: wrapper to the PC/SC smartcard library
Copyright (C) 2001-2003 Lionel VICTOR
Copyright (C) 2001-2010 Ludovic ROUSSEAU
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
History:
========
1.4.15 - 18 November 2023, Ludovic ROUSSEAU
- add support of SCARD_W_SECURITY_VIOLATION error code
1.4.14 - 19 November 2015, Ludovic ROUSSEAU
- Fix _StringifyError() on Mac OS X. The string version of
PCSC::errno now works.
1.4.13 - 1 April 2013, Ludovic ROUSSEAU
- Fix a warning with Perl 5.16
1.4.12 - 6 March 2011, Ludovic ROUSSEAU
- Also check for SVt_PVIV and not just SVt_IV.
Fixes Debian bug #613722 "libpcsc-perl: GetStatusChange error after print"
1.4.11 - 27 October 2010, Ludovic ROUSSEAU
- Do not use SCardSetTimout() since it is no more present in
pcsc-lite > 1.6.4
1.4.10 - 18 August 2010, Ludovic ROUSSEAU
- Use LPSCARD_READERSTATE instead of LPSCARD_READERSTATE_A since it
is no more defined in pcsc-lite >= 1.6.2
1.4.9 - 30 June 2010, Ludovic ROUSSEAU
- remove reference to SCARD_W_INSERTED_CARD since it is no more
define in pcsc-lite 1.6.0 Thanks to Olivier Huber for the bug
report
1.4.8 - 23 September 2009, Ludovic ROUSSEAU
- minor bugs fixed
1.4.7 - 26 March 2008, Ludovic ROUSSEAU
- merge all the Makefile.PL.* in Makefile.PL
1.4.6 - 7 March 2007, Ludovic ROUSSEAU
- add support of GNU/kFreeBSD
1.4.5 - 2 March 2007, Ludovic ROUSSEAU
- remove some pcsc-lite specific constants to make it compile
against pcsc-lite 1.4.0
1.4.4 - 12 August 2006, Ludovic ROUSSEAU
- add support of extended APDU
1.4.3 - 16 May 2006, Ludovic ROUSSEAU
- update for Mac OS X Tiger
1.4.2 - 6 August 2004, Ludovic ROUSSEAU
- allow to use SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1 as the protocol
this is used by gscriptor 1.4.0
1.4.1 - 4 July 2004, Ludovic ROUSSEAU
- Card/Card.pm:
. ISO7816Error(): return an error if given $sw if not 5 chars long
"xx xx"
. Transmit(): return (undef) if the protocol is not defined. This
happens if you change a T=0 card with a T=1 (or vice versa) and
try to exchange an APDU without disconnecting first.
- PCSCperl.h: replace LPCSTR by LPCTSTR (pcsc-lite 1.2.9 beta4)
1.4.0 - 20 May 2004, Ludovic ROUSSEAU
- use a new Control() API to reflect the change in SCardControl() in
pcsc-lite. We now have
$RecvData = $hCard->Control($control_code, \@SendData);
- load libpcsclite.so.1 instead of libpcsclite.so.0
1.3.1 - 2 April 2004, Ludovic ROUSSEAU
- do not use PCSCLITE_MAX_CHANNELS anymor since it is no more
defined by pcsc-lite > 1.2.0 and is not defined under Windows
- test.pl: add demo code for GetStatusChange()
- PCSC.pod: document GetStatusChange()
- allow commands to be in the form "00A40100020100" instead of just
"00 A4 01 0 0 02 01 00"
1.3.0 - 13 December 2003, Ludovic ROUSSEAU
- add support of SCardControl with $out = $hContext->Control (\@in);
Thanks to Andrew Kay.
- more support of Windows PC/SC and compiler.
Thanks to Andrew Kay and Troy Curtiss
- array_to_ascii() returns an empty string for an empty list
- add Makefile_win.PL for Windows
- Card.pm: by default use T=0 | T=1 protocols instead of just T=0
1.2.2 - 27 May 2003, Ludovic ROUSSEAU
- add two constant definitions in PCSC.pm. Thanks to Ville Skyttä
for report and patch
- add a PL_FILES section in Makefile*.PL to avoid problem since we
have Makefile.PL and Makefile_OSX.PL. Again thanks goes to Ville
Skyttä
- Also thanks to Wolfgang Hommel for uploading the package to CPAN
and registering the official name Chipcard::PCSC (Wolfgang is
maintainer of the Chipcard::CTAPI wrapper)
1.2.1 - 24 May 2003, Ludovic ROUSSEAU
- redesign the Makefile.PL to make the modules at least installable
- add Card/Makefile.PL to also install Chipcard::PCSC::Card
- modified test.pl to accept any SW in TransmitWithCheck
1.2.0 - 9 May 2003, Ludovic ROUSSEAU
- naming scheme migration from PCSC to Chipcard::PCSC
- add TransmitWithCheck() and Chipcard::PCSC::Card::ISO7816Error()
functions
1.1.3 - 7 Nov 2002, Ludovic ROUSSEAU
- small modifications to support Perl 5.8
1.1.2 - 28 Aug 2002, Ludovic ROUSSEAU
- small modification to link against libpcsclite.so.0 instead of
libpcsclite.so since libpcsclite.so should only be available on
development platforms (-dev packages).
1.1.1 - 7 Mar 2002, Ludovic ROUSSEAU
- small typesetting modifications od .pod files
1.1.0 - 6 Mar 2002, Ludovic ROUSSEAU
- create this README file with the history
- complete reindentation of .pod files
1.0.9 - 5 Mar 2002, Ludovic ROUSSEAU
- the minium APDU length is 4 bytes and not 5
- correctly test if a digit is hexa or not
1.0.8 - 18 Oct 2001, Ludovic ROUSSEAU