laforge has uploaded this change for review. (
https://gerrit.osmocom.org/c/pysim/+/38054?usp=email )
Change subject: pySim.transport: Add support for generic stdout apdu tracer
......................................................................
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(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/54/38054/1
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
https://gerrit.osmocom.org/c/pysim/+/38054?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I4bc3d2e023ba360f07f024d7b661a93322f87530
Gerrit-Change-Number: 38054
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge(a)osmocom.org>