VirtualSmartcard Module

Inheritance diagram of virtualsmartcard.VirtualSmartcard
class virtualsmartcard.VirtualSmartcard.Iso7816OS(mf, sam, ins2handler=None, extended_length=False)

Bases: virtualsmartcard.VirtualSmartcard.SmartcardOS

property SAM

secure access module

execute(msg)

Returns response to the given APDU as string of characters

Parameters

msg – the APDU as string of characters

formatResult(seekable, le, data, sw, sm)
getATR()

Returns the ATR of the card as string of characters

getResponse(p1, p2, data)
static makeATR(**args)

Calculate Answer to Reset (ATR) and returns the bitstring.

  • directConvention (bool): Whether to use direct convention or

    inverse convention.

  • TAi, TBi, TCi (optional): Value between 0 and 0xff. Interface

    Characters (for meaning see ISO 7816-3). Note that if no transmission protocol is given, it is automatically selected with T=max{j-1|TAj in args OR TBj in args OR TCj in args}.

  • T (optional): Value between 0 and 15. Transmission Protocol.

    Note that if T is set, TAi/TBi/TCi for i>T are omitted.

  • histChars (optional): Bitstring with 0 <= len(histChars) <= 15.

    Historical Characters T1 to T15 (for meaning see ISO 7816-4).

T0, TDi and TCK are automatically calculated.

static makeThirdSoftwareFunctionTable(commandChainging=False, extendedLe=False, assignLogicalChannel=0, maximumChannels=0)

Returns a byte according to the third software function table from the historical bytes of the card capabilities.

property mf

master file

powerDown()

Powers down the card

powerUp()

Powers up the card

reset()

Performs a warm reset of the card (no power down)

static seekable(ins)
class virtualsmartcard.VirtualSmartcard.SmartcardOS

Bases: object

Base class for a smart card OS

execute(msg)

Returns response to the given APDU as string of characters

Parameters

msg – the APDU as string of characters

getATR()

Returns the ATR of the card as string of characters

powerDown()

Powers down the card

powerUp()

Powers up the card

reset()

Performs a warm reset of the card (no power down)

class virtualsmartcard.VirtualSmartcard.VirtualICC(datasetfile, card_type, host, port, readernum=None, mitmPath=None, ef_cardsecurity=None, ef_cardaccess=None, ca_key=None, cvca=None, disable_checks=False, esign_key=None, esign_ca_cert=None, esign_cert=None, logginglevel=20)

Bases: object

This class is responsible for maintaining the communication of the virtual PCD and the emulated smartcard. vpicc and vpcd communicate via a socket. The vpcd sends command APDUs (which it receives from an application) to the vicc. The vicc passes these CAPDUs on to an emulated smartcard, which produces a response APDU. This RAPDU is then passed back by the vicc to the vpcd, which forwards it to the application.

__recvFromVPICC()

Receive a message from the vpcd

__sendToVPICC(msg)

Send a message to the vpcd

static connectToPort(host, port)

Open a connection to a given host on a given port.

static openPort(port)
run()

Main loop of the vpicc. Receives command APDUs via a socket from the vpcd, dispatches them to the emulated smartcard and sends the resulting respsonse APDU back to the vpcd.

stop()
virtualsmartcard.VirtualSmartcard.loadMitMFromPath(path)