|
NAMEChipcard::PCSC - Smart card reader interface librarySYNOPSISmy $hContext = new Chipcard::PCSC(); @ReadersList = $hContext->ListReaders (); $hContext->GetStatusChange(\@readers_states, $timeout); $apdu = Chipcard::PCSC::array_to_ascii(@apdu); @apdu = Chipcard::PCSC::ascii_to_array($apdu); $hContext = undef; DESCRIPTIONThe PCSC module implements the Chipcard::PCSC class. Objects of this class are used to communicate with the PCSC-lite daemon (see pcscd(1) for more information).PC/SC represents an abstraction layer to smart card readers. It provides a communication layer with a wide variety of smart card readers through a standardized API. A PCSC object can be used to communicate with more than one reader through Chipcard::PCSC::Card objects. Please read Chipcard::PCSC::Card for extended information on how to talk to a smart card reader. A PCSC object uses the following property: "$pcsc_object->{hContext}" the context returned by the pcsc library CONSTRUCTORSThe following methods can be used to construct a PCSC object:
CONSTRUCTION FAILUREChipcard::PCSC constructors return an "undef" value when the object can not be created. $Chipcard::PCSC::errno can be used to get more information about the error. (See section "ERROR HANDLING" below for more information)Chipcard::PCSC METHODSHere is a list of all the methods that can be used with a PCSC object.
ERROR HANDLINGAll functions from PCSC objects save the return value in a global variable called $Chipcard::PCSC::errno. This variable therefore holds the latest status of PCSC.It is a double-typed magical variable that behaves just like $!. This means that it both holds a numerical value describing the error and the corresponding string. The numerical value may change from a system to another as it depends on the PCSC library... Here is a small example of how to use it: $hContext = new Chipcard::PCSC(); die ("Can't create the PCSC object: $Chipcard::PCSC::errno\n") unless (defined $hContext); In case the last call was successful, $Chipcard::PCSC::errno contains the "SCARD_S_SUCCESS" status. Here is a list of all possible error codes. They are defined as read-only variables with in the PCSC module: $Chipcard::PCSC::SCARD_S_SUCCESS $Chipcard::PCSC::SCARD_E_CANCELLED $Chipcard::PCSC::SCARD_E_CANT_DISPOSE $Chipcard::PCSC::SCARD_E_CARD_UNSUPPORTED $Chipcard::PCSC::SCARD_E_DUPLICATE_READER $Chipcard::PCSC::SCARD_E_INSUFFICIENT_BUFFER $Chipcard::PCSC::SCARD_E_INVALID_ATR $Chipcard::PCSC::SCARD_E_INVALID_HANDLE $Chipcard::PCSC::SCARD_E_INVALID_PARAMETER $Chipcard::PCSC::SCARD_E_INVALID_TARGET $Chipcard::PCSC::SCARD_E_INVALID_VALUE $Chipcard::PCSC::SCARD_E_NO_MEMORY $Chipcard::PCSC::SCARD_E_NO_SERVICE $Chipcard::PCSC::SCARD_E_NO_SMARTCARD $Chipcard::PCSC::SCARD_E_NOT_READY $Chipcard::PCSC::SCARD_E_NOT_TRANSACTED $Chipcard::PCSC::SCARD_E_PCI_TOO_SMALL $Chipcard::PCSC::SCARD_E_PROTO_MISMATCH $Chipcard::PCSC::SCARD_E_READER_UNAVAILABLE $Chipcard::PCSC::SCARD_E_READER_UNSUPPORTED $Chipcard::PCSC::SCARD_E_SERVICE_STOPPED $Chipcard::PCSC::SCARD_E_SHARING_VIOLATION $Chipcard::PCSC::SCARD_E_SYSTEM_CANCELLED $Chipcard::PCSC::SCARD_E_TIMEOUT $Chipcard::PCSC::SCARD_E_UNKNOWN_CARD $Chipcard::PCSC::SCARD_E_UNKNOWN_READER $Chipcard::PCSC::SCARD_E_UNSUPPORTED_FEATURE $Chipcard::PCSC::SCARD_W_REMOVED_CARD $Chipcard::PCSC::SCARD_W_RESET_CARD $Chipcard::PCSC::SCARD_W_UNPOWERED_CARD $Chipcard::PCSC::SCARD_W_UNRESPONSIVE_CARD $Chipcard::PCSC::SCARD_W_UNSUPPORTED_CARD PCSClite users will also be able to use the following (PCSClite specific) codes: $Chipcard::PCSC::SCARD_INSERTED $Chipcard::PCSC::SCARD_REMOVED $Chipcard::PCSC::SCARD_RESET $Chipcard::PCSC::SCARD_SCOPE_GLOBAL In addition, the wrapper defines: $Chipcard::PCSC::SCARD_P_ALREADY_CONNECTED $Chipcard::PCSC::SCARD_P_NOT_CONNECTED SEE ALSOpcscd(1) manpage has useful information about PC/SC lite. Chipcard::PCSC::Card manpage gives information about how to communicate with a reader and the smart card inside it.COPYRIGHT(C) Lionel VICTOR & Ludovic ROUSSEAU, 2001-2004, GNU GPL (C) Ludovic ROUSSEAU, 2005-2008, GNU GPLAUTHORS / ACKNOWLEDGEMENTLionel VICTOR <lionel.victor@unforgettable.com> <lionel.victor@free.fr> Ludovic ROUSSEAU <ludovic.rousseau@free.fr>
Visit the GSP FreeBSD Man Page Interface. |