Module for easily interacting with smartcards.
Project description
::
_ _ _____ _ _____ _
| | | | / ____| | | / ____| | |
| | | | _____| (___ _ __ ___ __ _ _ __| |_| | __ _ _ __ __| |
| | | | |______\___ \| '_ ` _ \ / _` | '__| __| | / _` | '__/ _` |
| |____| |____ ____) | | | | | | (_| | | | |_| |___| (_| | | | (_| |
|______|______| |_____/|_| |_| |_|\__,_|_| \__|\_____\__,_|_| \__,_|
Authors: Chad Spensky (chad.spensky@ll.mit.edu)
Hongyi Hu (hongyi.hu@ll.mit.edu)
Contents
========
- examples/ Some example scripts on how to use the library to interact
with various smartcards
- docs/ Contains some useful documents when working with smart cards
that define some of the APDUs and RIDs.
Install
=======
- Install `pyDes <https://pypi.python.org/pypi/pyDes/>`__ python
library
- Install `pyscard <http://pyscard.sourceforge.net/>`__ python library
- Install PC/SC >$ sudo apt-get install pcsc-tools pcscd
- To install all of these just run: >$ ./install\_dependencies.sh
Usage
=====
- For developing your own smart card application using llsmartcard, see
template.py
- See ``examples/``
Certificates
============
This section discusses how to work with the certificates on the CAC.
- Extract Certificates python cac\_crypto.py -x test
- Working with certs (Referenced from
`here <http://www.devco.net/archives/2006/02/13/public_-_private_key_encryption_using_openssl.php>`__).
- Encrypt >$ openssl pkeyutl -encrypt -in -pubin -inkey [input public
key] -out [output file]
- Extract Public Key >$ openssl x509 -inform DER -pubkey -in [input
certificate] > output.key
- Example using certs:
$ echo "Hello World!" > input.txt
$ python cac\_crypto.py -E -k test/cac/cac\_pki\_enc.pub -i
input.txt -o input\_encrypted.ssl
$ python cac\_crypto.py -D -i input\_encrypted.ssl -c KEY\_PKI\_ENC
-o input\_decrypted.txt -p 77777777
Notes
=====
- Certificates are returned in gzipped form. > $ gunzip [cert.gz]
- Certificates are in DER form > $ openssl x509 -inform DER -in [cert]
> $ openssl x509 -issuer -email -startdate -enddate -inform DER -in
[cert] > $ openssl x509 -inform DER -noout -text -in [cert]
Disclaimer
==========
.. raw:: html
<p align="center">
This work is sponsored by the Defense Information Systems Agency under
Air Force Contract #FA8721-05-C-0002. Opinions, interpretations,
conclusions and recommendations are those of the author and are not
necessarily endorsed by the United States Government. © 2015
Massachusetts Institute of Technology
.. raw:: html
</p>
_ _ _____ _ _____ _
| | | | / ____| | | / ____| | |
| | | | _____| (___ _ __ ___ __ _ _ __| |_| | __ _ _ __ __| |
| | | | |______\___ \| '_ ` _ \ / _` | '__| __| | / _` | '__/ _` |
| |____| |____ ____) | | | | | | (_| | | | |_| |___| (_| | | | (_| |
|______|______| |_____/|_| |_| |_|\__,_|_| \__|\_____\__,_|_| \__,_|
Authors: Chad Spensky (chad.spensky@ll.mit.edu)
Hongyi Hu (hongyi.hu@ll.mit.edu)
Contents
========
- examples/ Some example scripts on how to use the library to interact
with various smartcards
- docs/ Contains some useful documents when working with smart cards
that define some of the APDUs and RIDs.
Install
=======
- Install `pyDes <https://pypi.python.org/pypi/pyDes/>`__ python
library
- Install `pyscard <http://pyscard.sourceforge.net/>`__ python library
- Install PC/SC >$ sudo apt-get install pcsc-tools pcscd
- To install all of these just run: >$ ./install\_dependencies.sh
Usage
=====
- For developing your own smart card application using llsmartcard, see
template.py
- See ``examples/``
Certificates
============
This section discusses how to work with the certificates on the CAC.
- Extract Certificates python cac\_crypto.py -x test
- Working with certs (Referenced from
`here <http://www.devco.net/archives/2006/02/13/public_-_private_key_encryption_using_openssl.php>`__).
- Encrypt >$ openssl pkeyutl -encrypt -in -pubin -inkey [input public
key] -out [output file]
- Extract Public Key >$ openssl x509 -inform DER -pubkey -in [input
certificate] > output.key
- Example using certs:
$ echo "Hello World!" > input.txt
$ python cac\_crypto.py -E -k test/cac/cac\_pki\_enc.pub -i
input.txt -o input\_encrypted.ssl
$ python cac\_crypto.py -D -i input\_encrypted.ssl -c KEY\_PKI\_ENC
-o input\_decrypted.txt -p 77777777
Notes
=====
- Certificates are returned in gzipped form. > $ gunzip [cert.gz]
- Certificates are in DER form > $ openssl x509 -inform DER -in [cert]
> $ openssl x509 -issuer -email -startdate -enddate -inform DER -in
[cert] > $ openssl x509 -inform DER -noout -text -in [cert]
Disclaimer
==========
.. raw:: html
<p align="center">
This work is sponsored by the Defense Information Systems Agency under
Air Force Contract #FA8721-05-C-0002. Opinions, interpretations,
conclusions and recommendations are those of the author and are not
necessarily endorsed by the United States Government. © 2015
Massachusetts Institute of Technology
.. raw:: html
</p>
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
llsmartcard-ph4-1.1.1.tar.gz
(22.5 kB
view hashes)