Change in pysim[master]: introduce SwMatchError exception

laforge gerrit-no-reply at lists.osmocom.org
Tue Mar 2 09:21:38 UTC 2021


laforge has submitted this change. ( 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(-)

Approvals:
  Jenkins Builder: Verified
  dexter: Looks good to me, but someone else must approve
  laforge: Looks good to me, approved



diff --git a/pySim/exceptions.py b/pySim/exceptions.py
index c0cf1e7..5d30f76 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 "SW match failed! Expected %s and got %s." % (self.sw_expected, self.sw_actual)
diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py
index 8e009ee..00c7bd9 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(rv[1], sw.lower())
 		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: 6
Gerrit-Owner: laforge <laforge at osmocom.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier at sysmocom.de>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210302/cba81e17/attachment.htm>


More information about the gerrit-log mailing list