EMV Smartcard Protocol Library
EMV for Python
A Pythonic implementation of the EMV smartcard protocol, which is used worldwide for chip-and-PIN payments. This is intended to be readable, tested, and heavily cross-referenced with the appropriate sections of the EMV Specification.
This also includes an implementation of the
EMV CAP (aka Pinsentry)
standard which is known to work for Barclays cards.
You'll need the pcsc smartcard libraries on your system in order to build the smartcard bindings. On Ubuntu:
sudo apt-get install build-essential swig libpcsclite-dev python-pip python-devel
Then you can install emv from pip:
sudo pip install emv
To check if everything's working, plug in a smartcard reader, put a bank card in, and run:
If all goes well, you should see some data about your card.
This library ships with
emvtool - a simple command-line tool for testing
and CAP password generation. To fetch some card metadata, run:
To generate an EMV CAP one-time passcode:
emvtool -p <PIN> cap
You can also conduct CAP signing and challenge-response:
emvtool -p <PIN> cap -c <challenge> emvtool -p <PIN> cap -c <accountno> -a <amount>
EMV is a trademark of EMVCo and is used
purely for descriptive purposes. This library is not affiliated with
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size & hash SHA256 hash help||File type||Python version||Upload date|
|emv-1.0.6-py2-none-any.whl (21.3 kB) Copy SHA256 hash SHA256||Wheel||py2|
|emv-1.0.6-py3-none-any.whl (20.9 kB) Copy SHA256 hash SHA256||Wheel||py3|