fixed handling of missing le in sm apdu
This commit is contained in:
@@ -397,8 +397,6 @@ class Security_Environment(object):
|
||||
p1 = CAPDU.p1
|
||||
if p2 == None:
|
||||
p2 = CAPDU.p2
|
||||
if le == None:
|
||||
le = CAPDU.le
|
||||
# FIXME
|
||||
#if expected != "":
|
||||
#raise SwError(SW["ERR_SECMESSOBJECTSMISSING"])
|
||||
|
||||
@@ -242,7 +242,10 @@ class Iso7816OS(SmartcardOS):
|
||||
if le > len(data):
|
||||
sw = SW["WARN_EOFBEFORENEREAD"]
|
||||
|
||||
result = data[:le]
|
||||
if le != None:
|
||||
result = data[:le]
|
||||
else:
|
||||
result = data[:0]
|
||||
if sm:
|
||||
sw, result = self.SAM.protect_result(sw, result)
|
||||
|
||||
@@ -534,7 +537,10 @@ class NPAOS(Iso7816OS):
|
||||
if le > len(data) and le != MAX_EXTENDED_LE and le != MAX_SHORT_LE:
|
||||
sw = SW["WARN_EOFBEFORENEREAD"]
|
||||
|
||||
result = data[:le]
|
||||
if le != None:
|
||||
result = data[:le]
|
||||
else:
|
||||
result = data[:0]
|
||||
if sm:
|
||||
try:
|
||||
sw, result = self.SAM.protect_result(sw, result)
|
||||
|
||||
Reference in New Issue
Block a user