#! /usr/bin/env python

#   control_get_firmware.py: get firmware version of Gemalto readers
#   Copyright (C) 2009  Ludovic Rousseau
#
#   This program is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation; either version 2 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License along
#   with this program; if not, write to the Free Software Foundation, Inc.,
#   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

from smartcard.pcsc.PCSCReader import readers
from smartcard.pcsc.PCSCPart10 import *

for reader in readers():
    cardConnection = reader.createConnection()
    cardConnection.connect(mode=SCARD_SHARE_DIRECT, disposition=SCARD_LEAVE_CARD)

    get_firmware = [0x02]
    IOCTL_SMARTCARD_VENDOR_IFD_EXCHANGE = SCARD_CTL_CODE(1)
    res = cardConnection.control(IOCTL_SMARTCARD_VENDOR_IFD_EXCHANGE,
        get_firmware)
    print "Reader:", reader
    print "Firmware:", "".join([chr(x) for x in res])

@@ -17,16 +17,20 @@
 python%0A%0A
+%22%22%22%0A
 #   cont
@@ -112,16 +112,21 @@
 (C) 2009
+-2010
   Ludovi
@@ -136,17 +136,20 @@
 ousseau%0A
-#
+%22%22%22%0A
 %0A#   Thi
@@ -956,9 +956,66 @@
 ort 
-*
+(SCARD_SHARE_DIRECT,%0A    SCARD_LEAVE_CARD, SCARD_CTL_CODE)
 %0A%0Afo
@@ -1135,16 +1135,24 @@
 _DIRECT,
+%0A       
  disposi

make pylint happy