laforge submitted this change.

View Change

Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve laforge: Looks good to me, approved dexter: Looks good to me, but someone else must approve
pySim.transport: Add support for generic stdout apdu tracer

Any program using argparse_add_reader_args() will get a new
long-opt '--apdu-trace' which enables a raw APDU trace to the console.

Change-Id: I4bc3d2e023ba360f07f024d7b661a93322f87530
---
M pySim/transport/__init__.py
1 file changed, 11 insertions(+), 0 deletions(-)

diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py
index 97022ce..856e86e 100644
--- a/pySim/transport/__init__.py
+++ b/pySim/transport/__init__.py
@@ -40,6 +40,12 @@
def trace_response(self, cmd, sw, resp):
pass

+class StdoutApduTracer(ApduTracer):
+ """Minimalistic APDU tracer, printing commands to stdout."""
+ def trace_response(self, cmd, sw, resp):
+ print("-> %s %s" % (cmd[:10], cmd[10:]))
+ print("<- %s: %s" % (sw, resp))
+
class ProactiveHandler(abc.ABC):
"""Abstract base class representing the interface of some code that handles
the proactive commands, as returned by the card in responses to the FETCH
@@ -239,6 +245,8 @@
PcscSimLink.argparse_add_reader_args(arg_parser)
ModemATCommandLink.argparse_add_reader_args(arg_parser)
CalypsoSimLink.argparse_add_reader_args(arg_parser)
+ arg_parser.add_argument('--apdu-trace', action='store_true',
+ help='Trace the command/response APDUs exchanged with the card')

return arg_parser

@@ -247,6 +255,9 @@
"""
Init card reader driver
"""
+ if opts.apdu_trace and not 'apdu_tracer' in kwargs:
+ kwargs['apdu_tracer'] = StdoutApduTracer()
+
if opts.pcsc_dev is not None or opts.pcsc_regex is not None:
from pySim.transport.pcsc import PcscSimLink
sl = PcscSimLink(opts, **kwargs)

To view, visit change 38054. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I4bc3d2e023ba360f07f024d7b661a93322f87530
Gerrit-Change-Number: 38054
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge@osmocom.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier@sysmocom.de>
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: laforge <laforge@osmocom.org>