Converted documentaion files to Markdown; Updated all content to current version; Added some credit;

This commit is contained in:
Johannes Findeisen 2021-02-21 01:34:32 +01:00
commit 54382009f7
7 changed files with 89 additions and 71 deletions

View file

@ -1,2 +0,0 @@
pcsc
Johann Dantant, Johannes Findeisen, Marco Schuster, Calvin Buckley

11
CREDITS.md Normal file
View file

@ -0,0 +1,11 @@
# Contributors
## In alphabetical order:
* Johann Dantant (Original author)
* Anatol Belski (Contributor)
* Calvin Buckley (Contributor)
* Remi Collet (Contributor)
* Johannes Findeisen (Maintainer)
* Marco Schuster (Contributor)

100
README.md
View file

@ -1,90 +1,96 @@
<h2 id="About">About</h2>
# PC/SC for PHP
<p>This is the only extension for using <a href="http://www.pcscworkgroup.com/" class="ext">PC/SC</a> based smart cards with <a href="http://www.php.net" class="ext">PHP</a>. It is a wrapper to the wonderful and free project by Ludovic Rousseau, <a href="https://pcsclite.apdu.fr/" class="ext">PCSC-Lite</a>, 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 or macOS operating system.</p>
## About
<p>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.</p>
This is the only extension for using [PC/SC](http://www.pcscworkgroup.com/) based smart cards with [PHP](http://www.php.net). It is a wrapper to the wonderful and free project by Ludovic Rousseau, [PCSC-Lite](https://pcsclite.apdu.fr/), 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 or macOS operating system.
<h2 id="Installation">Installation</h2>
Thanks are going to Johann Dantant! He provided 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 native into PHP.
<p>I recommend to install the PECL extension the "PHP" way:</p>
## Installation
<pre>pecl install pcsc-beta</pre>
I recommend to install the PECL extension the "PHP" way:
<p>You can install the latest code by downloading the sources and compile yourself too.</p>
```
pecl install pcsc-beta
```
<pre>git clone https://github.com/pcsc-for-php/pcsc.git
You can install the latest code by downloading the sources and compile yourself too.
```
git clone https://github.com/pcsc-for-php/pcsc.git
cd pcsc
phpize
./configure
make
make install</pre>
make install
```
<p>After that you have all needed files in ./modules/</p>
After that you have all needed files in ./modules/ .
<h2 id="API">API</h2>
## API
<p>The extension currently provides the following API:</p>
The extension currently provides the following API:
<h3 id="scard_establish_context">scard_establish_context();</h3>
### scard_establish_context">scard_establish_context();
<p>Returns the application $context to the PC/SC resource manager.</p>
Returns the application $context to the PC/SC resource manager.
<h3 id="scard_is_valid_context">scard_is_valid_context($context);</h3>
### scard_is_valid_context">scard_is_valid_context($context);
<p>Returns TRUE if $context is valid or FALSE if $context is not valid.</p>
Returns TRUE if $context is valid or FALSE if $context is not valid.
<h3 id="scard_release_context">scard_release_context($context);</h3>
### scard_release_context">scard_release_context($context);
<p>Releases the application $context.</p>
Releases the application $context.
<h3 id="scard_list_readers">scard_list_readers($context);</h3>
### scard_list_readers">scard_list_readers($context);
<p>Returns an array of available readers or FALSE.</p>
Returns an array of available readers or FALSE.
<h5>Example:</h5>
#### Example:
<pre>array(3) {
[0]=&gt;
```
array(3) {
[0]=>
string(26) "OMNIKEY CardMan 5x21 00 00"
[1]=&gt;
[1]=>
string(26) "OMNIKEY CardMan 5x21 00 01"
[2]=&gt;
[2]=>
string(76) "SCL01x Contactless Reader [SCL01x Contactless Reader] (21161009200722) 00 00"
}
</pre>
```
<h3 id="scard_connect">scard_connect($context, "OMNIKEY CardMan 5x21 00 00");</h3>
### scard_connect">scard_connect($context, "OMNIKEY CardMan 5x21 00 00");
<p>Connects to a card. Returns the $connection to a reader or FALSE.</p>
Connects to a card. Returns the $connection to a reader or FALSE.
<h3 id="scard_reconnect">scard_reconnect($connection);</h3>
### scard_reconnect">scard_reconnect($connection);
<p>Returns the $connection to a reader or FALSE.</p>
Returns the $connection to a reader or FALSE.
<h3 id="scard_disconnect">scard_disconnect($connection);</h3>
### scard_disconnect">scard_disconnect($connection);
<p>Disconnects the $connection to a card. Returns the TRUE if disconnecting was succesful or FALSE.</p>
Disconnects the $connection to a card. Returns the TRUE if disconnecting was succesful or FALSE.
<h3 id="scard_transmit">scard_transmit($connection, $apdu);</h3>
### scard_transmit">scard_transmit($connection, $apdu);
<p>Returns the response $apdu as string or FALSE.</p>
Returns the response $apdu as string or FALSE.
<h3 id="scard_status">scard_status($connection);</h3>
### scard_status">scard_status($connection);
<p>Returns the status or FALSE.</p>
Returns the status or FALSE.
<h3 id="scard_cancel">scard_cancel($context);</h3>
### scard_cancel">scard_cancel($context);
<h2 id="License">License</h2>
## License
<p>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.</p>
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.
<h2 id="Links">Links</h2>
## Links
* [PECL Project Page](http://pecl.php.net/package/pcsc) - Page for package download at PHP.net
* [PC/SC Worgroup](http://www.pcscworkgroup.com/) - Homepage and definition file downloads
* [PC/SC](http://en.wikipedia.org/wiki/PC/SC) - PC/SC at Wikipedia
* [PC/SC-Lite](https://pcsclite.apdu.fr/) - The free and open implementation of the PC/SC SCard API for UNIX
* [PCSC sample in PHP5](http://ludovicrousseau.blogspot.de/2015/01/pcsc-sample-in-php5.html) - Ludovic Rousseau about "PC/SC for PHP"
<ul>
<li><a href="http://pecl.php.net/package/pcsc" class="ext">PECL Project Page</a> - Page for package download at PHP.net</li>
<li><a href="http://www.pcscworkgroup.com/" class="ext">PC/SC Worgroup</a> - Homepage and definition file downloads.</li>
<li><a href="http://en.wikipedia.org/wiki/PC/SC" class="ext">PC/SC</a> - PC/SC at Wikipedia.</li>
<li><a href="https://pcsclite.apdu.fr/" class="ext">PC/SC-Lite</a> - The free and open implementation of the PC/SC SCard API for UNIX</li>
<li><a href="http://ludovicrousseau.blogspot.de/2015/01/pcsc-sample-in-php5.html" class="ext">PCSC sample in PHP5</a> - Ludovic Rousseau about "PC/SC for PHP"</li>
</ul>

15
TODO
View file

@ -1,15 +0,0 @@
Implement important missing PC/SC functions:
- SCardControl(),
SCardGetStatusChange(),
SCardBeginTransaction(),
SCardEndTransaction()
Implement less important missing PC/SC functions:
- SCardGetAttrib(),
SCardSetAttrib(),
SCardListReaderGroups(),
SCardReconnect
Write complete API documentation

17
TODO.md Normal file
View file

@ -0,0 +1,17 @@
# TODO
## Implement important missing PC/SC functions and write documentation:
* SCardControl()
* SCardGetStatusChange()
* SCardBeginTransaction()
* SCardEndTransaction()
* Write complete API documentation
## Implement less important missing PC/SC functions:
* SCardGetAttrib()
* SCardSetAttrib()
* SCardListReaderGroups()
* SCardReconnect

View file

@ -20,10 +20,10 @@ http://pear.php.net/dtd/package-2.0.xsd">
<email>calvin@cmpct.info</email>
<active>yes</active>
</developer>
<date>2021-02-20</date>
<time>23:44:26</time>
<date>2021-02-21</date>
<time>01:26:42</time>
<version>
<release>0.5.0</release>
<release>0.5.1</release>
<api>0.3.1</api>
</version>
<stability>
@ -31,11 +31,11 @@ http://pear.php.net/dtd/package-2.0.xsd">
<api>stable</api>
</stability>
<license uri="http://www.php.net/license">PHP</license>
<notes>Updated for PHP 8 compatibility.</notes>
<notes>Added and updated content like README.md; No bug or feature updates.</notes>
<contents>
<dir name="/">
<file name="COPYING" role="doc" />
<file name="CREDITS" role="doc" />
<file name="CREDITS.md" role="doc" />
<file name="config.m4" role="src" />
<file name="config.w32" role="src" />
<file name="pcsc.c" role="src" />
@ -43,7 +43,8 @@ http://pear.php.net/dtd/package-2.0.xsd">
<file name="pcsc.stub.php" role="src" />
<file name="pcsc_arginfo.h" role="src" />
<file name="pcsc_legacy_arginfo.h" role="src" />
<file name="TODO" role="doc" />
<file name="README.md" role="doc" />
<file name="TODO.md" role="doc" />
</dir> <!-- / -->
</contents>
<dependencies>

View file

@ -4,7 +4,7 @@
extern zend_module_entry pcsc_module_entry;
#define phpext_pcsc_ptr &pcsc_module_entry
#define PHP_PCSC_VERSION "0.5.0"
#define PHP_PCSC_VERSION "0.5.1"
#ifdef PHP_WIN32
#define PHP_PCSC_API __declspec(dllexport)