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 <[email protected]>

Reply via email to