All Projects → russss → python-emv

russss / python-emv

Licence: MIT license
EMV Smartcard Protocol Tool and Library

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to python-emv

ccid-utils
A USB smartcard driver including GSM SIM and EMV credit/debit card development platforms
Stars: ✭ 37 (-48.61%)
Mutual labels:  smartcard, emv, chip-and-pin
terms-dictionary
Simple definitions of terms, acronyms, abbreviations, companies, and projects related to financial services and Moov.
Stars: ✭ 48 (-33.33%)
Mutual labels:  credit-card, banking
emv-bertlv-tools
Deciphering EMV data encoded in the not so basic "basic encoding rules".
Stars: ✭ 41 (-43.06%)
Mutual labels:  credit-card, emv
Australian-Open-Banking-Data-Database
This is an ongoing collection of Open Banking Data APIs for Australian deposit taking institutions.
Stars: ✭ 72 (+0%)
Mutual labels:  banking
fints-institute-db
Database of German Banks and their HBCI / FinTS endpoints
Stars: ✭ 28 (-61.11%)
Mutual labels:  banking
OBIS
A JavaScript framework for downloading bank statements in OFX, QIF, CSV, and JSON. Currently supports HSBC UK Personal Banking.
Stars: ✭ 37 (-48.61%)
Mutual labels:  banking
ebics-java-client
Java open source EBICS client - Support for French, German and Swiss banks
Stars: ✭ 30 (-58.33%)
Mutual labels:  banking
cie-cns-apache-docker
L'obiettivo di questo progetto è quello di fornire un template pronto all'uso che realizza un sistema di autenticazione tramite la Smart Card TS-CNS (o CNS) e la CIE (Carta d'Identità Elettronica) basato su Apache HTTP. Ognuno può poi modificare o specializzare questo progetto sulla base delle proprie esigenze Si tratta di un progetto docker per…
Stars: ✭ 48 (-33.33%)
Mutual labels:  smartcard
node-cba-netbank
Unofficial The Commonwealth Bank of Australia NetBank API wrap for Node.js
Stars: ✭ 68 (-5.56%)
Mutual labels:  banking
sbankenclient-ios
A small but enjoyable iOS framework to connect to the Sbanken API
Stars: ✭ 21 (-70.83%)
Mutual labels:  banking
APDUPlay
PC/SC inspection and manipulation tool
Stars: ✭ 41 (-43.06%)
Mutual labels:  smartcard
cerberus research
Research tools for analysing Cerberus banking trojan.
Stars: ✭ 110 (+52.78%)
Mutual labels:  banking
dockerbb
Protótipo de imagem Docker com Navegador Chromium e Warsaw instalados para acessar o Banco do Brasil
Stars: ✭ 29 (-59.72%)
Mutual labels:  banking
n26-api
Unofficial N26 Bank API documentation
Stars: ✭ 41 (-43.06%)
Mutual labels:  banking
checkdigit
🔒 An easy-to-use check digit library for data validation
Stars: ✭ 19 (-73.61%)
Mutual labels:  credit-card
Pkcs11Interop.X509Store
Easy to use PKCS#11 based X.509 certificate store
Stars: ✭ 24 (-66.67%)
Mutual labels:  smartcard
psd2
API client for banks supporting PSD2 APIs with OAuth2 authentication.
Stars: ✭ 26 (-63.89%)
Mutual labels:  banking
tbc-credit-card-payment-gateway-php-lib
PHP library for the TBC credit card payment gateway API.
Stars: ✭ 80 (+11.11%)
Mutual labels:  credit-card
awesome-open-finance
A curated list of open finance and open banking resources
Stars: ✭ 92 (+27.78%)
Mutual labels:  banking
doc
The bunq API documentation
Stars: ✭ 18 (-75%)
Mutual labels:  banking

EMV for Python

Tests

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.

Installation

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:

emvtool info

If all goes well, you should see some data about your card.

Warning

Although this tool has been relatively well tested, it's technically possible to block or even damage your card, as well as get in trouble with your card issuer, using this tool. Please make sure you understand the risks.

Commands marked in the --help output with [!] will initiate a transaction on the card, resulting in a permanent change to the card's internal state which could potentially be detected by your card issuer, particularly if you initiate many transactions.

Command Line

This library ships with emvtool - a simple command-line tool for testing and CAP password generation. To fetch some card metadata, run:

emvtool info

If you have more than one smartcard reader (or smartcard-like devices, such as a YubiKey) connected, you may have to select a specific reader. List all the readers with:

emvtool readers

Then use the -r option to select the specific reader ID, e.g.:

emvtool -r 1 info

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>

Legal Stuff

EMV is a trademark of EMVCo and is used purely for descriptive purposes. This library is not affiliated with EMVCo.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].