mirror of
https://github.com/pcsc-for-php/pcsc.git
synced 2026-08-10 22:02:46 +02:00
Converted documentaion files to Markdown; Updated all content to current version; Added some credit;
This commit is contained in:
parent
f66c5ae0a6
commit
54382009f7
7 changed files with 89 additions and 71 deletions
2
CREDITS
2
CREDITS
|
|
@ -1,2 +0,0 @@
|
||||||
pcsc
|
|
||||||
Johann Dantant, Johannes Findeisen, Marco Schuster, Calvin Buckley
|
|
||||||
11
CREDITS.md
Normal file
11
CREDITS.md
Normal 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
100
README.md
|
|
@ -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
|
cd pcsc
|
||||||
phpize
|
phpize
|
||||||
./configure
|
./configure
|
||||||
make
|
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]=>
|
array(3) {
|
||||||
|
[0]=>
|
||||||
string(26) "OMNIKEY CardMan 5x21 00 00"
|
string(26) "OMNIKEY CardMan 5x21 00 00"
|
||||||
[1]=>
|
[1]=>
|
||||||
string(26) "OMNIKEY CardMan 5x21 00 01"
|
string(26) "OMNIKEY CardMan 5x21 00 01"
|
||||||
[2]=>
|
[2]=>
|
||||||
string(76) "SCL01x Contactless Reader [SCL01x Contactless Reader] (21161009200722) 00 00"
|
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
15
TODO
|
|
@ -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
17
TODO.md
Normal 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
|
||||||
|
|
||||||
13
package.xml
13
package.xml
|
|
@ -20,10 +20,10 @@ http://pear.php.net/dtd/package-2.0.xsd">
|
||||||
<email>calvin@cmpct.info</email>
|
<email>calvin@cmpct.info</email>
|
||||||
<active>yes</active>
|
<active>yes</active>
|
||||||
</developer>
|
</developer>
|
||||||
<date>2021-02-20</date>
|
<date>2021-02-21</date>
|
||||||
<time>23:44:26</time>
|
<time>01:26:42</time>
|
||||||
<version>
|
<version>
|
||||||
<release>0.5.0</release>
|
<release>0.5.1</release>
|
||||||
<api>0.3.1</api>
|
<api>0.3.1</api>
|
||||||
</version>
|
</version>
|
||||||
<stability>
|
<stability>
|
||||||
|
|
@ -31,11 +31,11 @@ http://pear.php.net/dtd/package-2.0.xsd">
|
||||||
<api>stable</api>
|
<api>stable</api>
|
||||||
</stability>
|
</stability>
|
||||||
<license uri="http://www.php.net/license">PHP</license>
|
<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>
|
<contents>
|
||||||
<dir name="/">
|
<dir name="/">
|
||||||
<file name="COPYING" role="doc" />
|
<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.m4" role="src" />
|
||||||
<file name="config.w32" role="src" />
|
<file name="config.w32" role="src" />
|
||||||
<file name="pcsc.c" 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.stub.php" role="src" />
|
||||||
<file name="pcsc_arginfo.h" role="src" />
|
<file name="pcsc_arginfo.h" role="src" />
|
||||||
<file name="pcsc_legacy_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> <!-- / -->
|
</dir> <!-- / -->
|
||||||
</contents>
|
</contents>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
extern zend_module_entry pcsc_module_entry;
|
extern zend_module_entry pcsc_module_entry;
|
||||||
#define phpext_pcsc_ptr &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
|
#ifdef PHP_WIN32
|
||||||
#define PHP_PCSC_API __declspec(dllexport)
|
#define PHP_PCSC_API __declspec(dllexport)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue