From 70ea7af3c18e74ffd06cff907b599e1dff064c59 Mon Sep 17 00:00:00 2001 From: Johannes Findeisen Date: Mon, 8 Feb 2021 21:20:05 +0100 Subject: [PATCH] Added README --- README.md | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..0c44ffe --- /dev/null +++ b/README.md @@ -0,0 +1,118 @@ +

Notes

+ +

This code does not work with version 7 of PHP! Currently I am not able to fix this. If you want to take over development or submit patches it is very welcome... Please contact me if you are interested.

+ +

I do not write PHP code since many years so it would be great to find a maintainer for this code.

+ +

About

+ +

This is the only extension for using PC/SC based smart cards with PHP5. It is a wrapper to the wonderful and free project by Ludovic Rousseau, PCSC-Lite, which is the middleware to access a smart card using SCard API (PC/SC). Since PCSC-Lite is compatible to the winscard API it should be possible to compile this extension using a Windows(R) operating system. Currently I only take focus on Linux environments.

+ +

Thanks are going to Johann Dantant! He provides a PC/SC extension for PHP since 2005 and I reused some of his code. He allowed me to relicense these parts under the terms of the PHP license so I could integrate PCSC-Lite natively into PHP.

+ +

Installation

+ +

I recommend to install the PECL extension the "PHP" way:

+ +
pecl install pcsc-alpha
+ +

You can install the latest version by downloading the sources and compile yourself too... :)

+ +
wget http://pecl.php.net/get/pcsc-0.3.1.tgz
+tar -xvf pcsc-0.3.1.tgz
+cd pcsc-0.3.1
+phpize
+./configure
+make
+make install
+ +

After that you have all needed files in ./modules/

+ +

API

+ +

The extension currently provides the following API:

+ +

scard_establish_context();

+ +

Returns the application $context to the PC/SC resource manager.

+ +

scard_is_valid_context($context);

+ +

Returns TRUE if $context is valid or FALSE if $context is not valid.

+ +

scard_release_context($context);

+ +

Releases the application $context.

+ +

scard_list_readers($context);

+ +

Returns an array of available readers or FALSE.

+ +
Example:
+ +
array(3) {
+  [0]=>
+  string(26) "OMNIKEY CardMan 5x21 00 00"
+  [1]=>
+  string(26) "OMNIKEY CardMan 5x21 00 01"
+  [2]=>
+  string(76) "SCL01x Contactless Reader [SCL01x Contactless Reader] (21161009200722) 00 00"
+}
+
+ +

scard_connect($context, "OMNIKEY CardMan 5x21 00 00");

+ +

Connects to a card. Returns the $connection to a reader or FALSE.

+ +

scard_reconnect($connection);

+ +

Returns the $connection to a reader or FALSE.

+ +

scard_disconnect($connection);

+ +

Disconnects the $connection to a card. Returns the TRUE if disconnecting was succesful or FALSE.

+ +

scard_transmit($connection, $apdu);

+ +

Returns the response $apdu as string or FALSE.

+ +

scard_status($connection);

+ +

Returns the status or FALSE.

+ +

scard_cancel($context);

+ +

Code

+ +

The code has successful been released to the official code repository pecl.php.net... ;) + +

+ +

You could get the code using the following command:

+ +
svn checkout http://svn.php.net/repository/pecl/pcsc/trunk pcsc
+ + + +

License

+ +

This code is licensed under the terms of the PHP License version 3.01. PCSC-Lite is licensed in a way where it is possible to integrate it native in the PHP environment.

+ + + +