From fa0e0c888cffe3c0edb85d9cde42c1e8528b15b1 Mon Sep 17 00:00:00 2001 From: hploetz Date: Sat, 16 Jun 2007 07:25:42 +0000 Subject: [PATCH] fix get_atr git-svn-id: svn+ssh://localhost/home/henryk/svn/cyberflex-shell/trunk@248 f711b948-2313-0410-aaa9-d29f33439f0b --- cards/generic_card.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/cards/generic_card.py b/cards/generic_card.py index f54d0d6..cdd39c2 100644 --- a/cards/generic_card.py +++ b/cards/generic_card.py @@ -250,15 +250,20 @@ class Card: if purpose is None: purpose = Card.PURPOSE_SUCCESS return self.match_statusword(self.STATUS_MAP[purpose], sw) - def get_atr(self): - return self.card.status().get("ATR","") - - def can_handle(cls, card): - """Determine whether this class can handle a given card/connection object.""" + def _get_atr(card): if hasattr(card, "connection"): ATR = smartcard.util.toASCIIString(card.connection.getATR()) else: ATR = smartcard.util.toASCIIString(card.getATR()) + return ATR + _get_atr = staticmethod(_get_atr) + + def get_atr(self): + return self._get_atr(self.card) + + def can_handle(cls, card): + """Determine whether this class can handle a given card/connection object.""" + ATR = cls._get_atr(card) def match_list(atr, list): for (knownatr, mask) in list: if mask is None: