From 8e5d044ab5078ebd63e2769c10fb1fb0e8ff6a00 Mon Sep 17 00:00:00 2001 From: Frank Morgner Date: Tue, 9 Jul 2013 07:24:15 +0200 Subject: [PATCH] catch SwErrors in formatResult --- .../src/vpicc/virtualsmartcard/VirtualSmartcard.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/virtualsmartcard/src/vpicc/virtualsmartcard/VirtualSmartcard.py b/virtualsmartcard/src/vpicc/virtualsmartcard/VirtualSmartcard.py index c884ef0..05e8d7f 100644 --- a/virtualsmartcard/src/vpicc/virtualsmartcard/VirtualSmartcard.py +++ b/virtualsmartcard/src/vpicc/virtualsmartcard/VirtualSmartcard.py @@ -529,7 +529,15 @@ class NPAOS(Iso7816OS): result = data[:le] if sm: - sw, result = self.SAM.protect_result(sw, result) + try: + sw, result = self.SAM.protect_result(sw, result) + except SwError as e: + logging.info(e.message) + import traceback + traceback.print_exception(*sys.exc_info()) + sw = e.sw + result = "" + answer = self.formatResult(False, 0, result, sw, False) return R_APDU(result, inttostring(sw)).render()