pyemv

A Python package for EMV cryptography in payment systems


Keywords
emv, arqc, arpc, tc, aac, smi, smc, cvc3, tlv, authorization-request-cryptogram, authorization-response-cryptogram, banking, emv-pin-change, key-derivation, library, python, secure-messaging-confidentiality, secure-messaging-integrity, tlv-decoder, tlv-encoder
License
MIT
Install
pip install pyemv==1.5.0

Documentation

PyEMV

PyPI Test coverage

PyEMV package provides methods to generate

  • Application Cryptograms (TC, ARQC, or AAC) that's used to verify ICC.
  • Authorization Response Cryptogram (ARPC) that's used to verify card issuer.
  • Secure Messaging Integrity and Confidentiality that's used by the issuer to update values on the ICC.
  • Dynamic Card Verification Values.

Installation

PyEMV is published on PyPI and can be installed from there:

pip install pyemv

Modules

  • kd - Key Derivation support for ICC master keys and session keys.
  • ac - Application Cryptogram support for ARQC, AAC, TC, and ARPC.
  • sm - Secure Messaging support for script command integrity and confidentiality.
  • cvn - Putting it all together for various Cryptogram Version Numbers.
  • cvv - Support for dynamic card verification, such as CVC3.
  • tlv - TLV encoder and decoder.