From 5163624c24ae31518a41753daead2cef43d27214 Mon Sep 17 00:00:00 2001 From: Christina Quast Date: Mon, 6 Apr 2015 00:44:50 +0200 Subject: [PATCH] ccid_raw.py: ATR function --- usb_application/ccid_raw.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/usb_application/ccid_raw.py b/usb_application/ccid_raw.py index b12ba35b..9ac15d85 100755 --- a/usb_application/ccid_raw.py +++ b/usb_application/ccid_raw.py @@ -15,6 +15,15 @@ class SmartcardConnection: self.establish_context() self.connect_card() + def getATR(self): + hresult, reader, state, protocol, atr = SCardStatus(self.hcard) + if hresult != SCARD_S_SUCCESS: + print 'failed to get status: ' + SCardGetErrorMessage(hresult) + print 'Reader:', reader + print 'State:', state + print 'Protocol:', protocol + print 'ATR:', smartcard.util.toHexString(atr, smartcard.util.HEX) + def connect_card(self): hresult, self.hcard, self.dwActiveProtocol = SCardConnect(self.hcontext, self.reader, SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1) @@ -77,6 +86,7 @@ if __name__ == '__main__': import constants sm_con = SmartcardConnection() + sm_con.getATR() print(sm_con.send_receive_cmd(constants.CMD_SEL_ROOT)) print(sm_con.send_receive_cmd(constants.CMD_SEL_FILE)) print(sm_con.send_receive_cmd(constants.CMD_GET_DATA))