- exception handling on power up and power down
- added workaround for pyscard bugs #3083586 and #3083254 git-svn-id: https://vsmartcard.svn.sourceforge.net/svnroot/vsmartcard@306 96b47cad-a561-4643-ad3b-153ac7d7599c
This commit is contained in:
@@ -348,7 +348,9 @@ class RelayOS(object): # {{{
|
|||||||
import smartcard
|
import smartcard
|
||||||
|
|
||||||
if readernum:
|
if readernum:
|
||||||
#self.reader = smartcard.System.readers()[readernum]
|
# XXX this is a workaround, see on sourceforge bug #3083254
|
||||||
|
# should better use
|
||||||
|
# self.reader = smartcard.System.readers()[readernum]
|
||||||
self.reader = smartcard.System.listReaders()[readernum]
|
self.reader = smartcard.System.listReaders()[readernum]
|
||||||
else:
|
else:
|
||||||
self.reader = None
|
self.reader = None
|
||||||
@@ -361,10 +363,18 @@ class RelayOS(object): # {{{
|
|||||||
return "".join([chr(b) for b in self.session.getATR()])
|
return "".join([chr(b) for b in self.session.getATR()])
|
||||||
|
|
||||||
def powerUp(self):
|
def powerUp(self):
|
||||||
pass
|
import smartcard
|
||||||
|
try:
|
||||||
|
self.session.getATR()
|
||||||
|
except smartcard.Exceptions.CardConnectionException:
|
||||||
|
self.session = smartcard.Session(self.reader)
|
||||||
|
|
||||||
def powerDown(self):
|
def powerDown(self):
|
||||||
self.session.close()
|
import smartcard
|
||||||
|
try:
|
||||||
|
self.session.close()
|
||||||
|
except smartcard.Exceptions.CardConnectionException:
|
||||||
|
pass
|
||||||
|
|
||||||
def reset(self):
|
def reset(self):
|
||||||
pass
|
pass
|
||||||
@@ -376,7 +386,14 @@ class RelayOS(object): # {{{
|
|||||||
apdu.append(ord(b))
|
apdu.append(ord(b))
|
||||||
|
|
||||||
rapdu, sw1, sw2 = self.session.sendCommandAPDU(apdu)
|
rapdu, sw1, sw2 = self.session.sendCommandAPDU(apdu)
|
||||||
rapdu = rapdu + [sw1, sw2]
|
|
||||||
|
# XXX this is a workaround, see on sourceforge bug #3083586
|
||||||
|
# should better use
|
||||||
|
# rapdu = rapdu + [sw1, sw2]
|
||||||
|
if rapdu[-2:] == [sw1, sw2]:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
rapdu = rapdu + [sw1, sw2]
|
||||||
|
|
||||||
return "".join([chr(b) for b in rapdu])
|
return "".join([chr(b) for b in rapdu])
|
||||||
# }}}
|
# }}}
|
||||||
|
|||||||
Reference in New Issue
Block a user