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 details)
File details
Details for the file llsmartcard-ph4-1.1.1.tar.gz
.
File metadata
- Download URL: llsmartcard-ph4-1.1.1.tar.gz
- Upload date:
- Size: 22.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2141e2a428f9df9e45b15beeaad2bc8b87fbe2e1e965d69ddf5105e7f5a7ba7c |
|
MD5 | 023d030ff27b4b9048255005fd441d1a |
|
BLAKE2b-256 | 774173e1f4227a3de95fc10d95848716917b9985ebc0cdcbe24f5d9db227a47b |