using if/else instead of a dedicated handler for eac steps

git-svn-id: https://vsmartcard.svn.sourceforge.net/svnroot/vsmartcard@672 96b47cad-a561-4643-ad3b-153ac7d7599c
This commit is contained in:
frankmorgner
2011-12-17 16:00:20 +00:00
parent bcd0155238
commit 97fe61ae69

View File

@@ -65,12 +65,6 @@ class nPA_SAM(SAM):
self.eac_step = 0
self.eac_ctx = None
self.sec = None
self.step2handler = {
0: self.__eac_pace_step1,
1: self.__eac_pace_step2,
2: self.__eac_pace_step3,
3: self.__eac_pace_step4,
}
self.pin = pin
self.can = can
self.mrz = mrz
@@ -83,7 +77,16 @@ class nPA_SAM(SAM):
if (p1, p2) != (0x00, 0x00):
raise SwError(SW["ERR_INCORRECTPARAMETERS"])
return self.step2handler.get(self.eac_step, notImplemented)(data)
if (self.eac_step == 0):
return self.__eac_pace_step1(data)
elif (self.eac_step == 1):
return self.__eac_pace_step2(data)
elif (self.eac_step == 2):
return self.__eac_pace_step3(data)
elif (self.eac_step == 3):
return self.__eac_pace_step4(data)
raise SwError(SW["ERR_INCORRECTPARAMETERS"])
def __eac_abort(self):
pace.EAC_CTX_clear_free(self.eac_ctx)
@@ -188,4 +191,6 @@ class nPA_SAM(SAM):
self.eac_step += 1
# TODO activate SM
return 0x9000, nPA_SAM.__pack_general_authenticate([[0x86, len(my_token), my_token]])