Change in pysim[master]: introduce SwMatchError exception

laforge gerrit-no-reply at lists.osmocom.org
Tue Mar 2 06:36:04 UTC 2021


laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/23170 )


Change subject: introduce SwMatchError exception
......................................................................

introduce SwMatchError exception

This allows callers further up the stack to catch the exception and
interpret it in some way (like decoding the number of remaining tries
in case of authentication errors)

Change-Id: Ia59962978745aef7038f750fa23f8dfc820645f4
---
M pySim/exceptions.py
M pySim/transport/__init__.py
2 files changed, 13 insertions(+), 1 deletion(-)



  git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/70/23170/1

diff --git a/pySim/exceptions.py b/pySim/exceptions.py
index c0cf1e7..fdf07aa 100644
--- a/pySim/exceptions.py
+++ b/pySim/exceptions.py
@@ -5,6 +5,7 @@
 
 #
 # Copyright (C) 2009-2010  Sylvain Munaut <tnt at 246tNt.com>
+# Copyright (C) 2021 Harald Welte <laforge at osmocom.org>
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -36,3 +37,12 @@
 
 class ReaderError(Exception):
 	pass
+
+class SwMatchError(Exception):
+	"""Raised when an operation specifies an expected SW but the actual SW from
+	   the card doesn't match."""
+	def __init__(self, sw_actual, sw_expected):
+		self.sw_actual = sw_actual
+		self.sw_expected = sw_expected
+	def __str__(self):
+		return "Received %s but expected %s from card" % (self.sw_actual, self.sw_expected)
diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py
index 8e009ee..27901d7 100644
--- a/pySim/transport/__init__.py
+++ b/pySim/transport/__init__.py
@@ -3,6 +3,8 @@
 """ pySim: PCSC reader transport link base
 """
 
+from pySim.exceptions import *
+
 #
 # Copyright (C) 2009-2010  Sylvain Munaut <tnt at 246tNt.com>
 #
@@ -100,5 +102,5 @@
 				sw_masked = sw_masked + rv[1][i].lower()
 
 		if sw.lower() != sw_masked:
-			raise RuntimeError("SW match failed! Expected %s and got %s." % (sw.lower(), rv[1]))
+			raise SwMatchError(sw.lower(), rv[1])
 		return rv

-- 
To view, visit https://gerrit.osmocom.org/c/pysim/+/23170
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: Ia59962978745aef7038f750fa23f8dfc820645f4
Gerrit-Change-Number: 23170
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge at osmocom.org>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210302/e0a6448f/attachment.htm>


More information about the gerrit-log mailing list