def testcase_addreadertogroup(self):
     """Test for adding readers to group"""
     groups = PCSCReaderGroups()
     newgroup = 'Pinpad$Readers'
     groups.insert(0, newgroup)
     for r in PCSCReader.readers('SCard$DefaultReaders'):
         r.addtoreadergroup(newgroup)
     self.assertEquals(PCSCReader.readers('SCard$DefaultReaders'), PCSCReader.readers(newgroup))
     groups.pop(0)
     self.assertEquals([], PCSCReader.readers(newgroup))
 def testcase_removereaderfromgroup(self):
     """Test for removing readers from group"""
     groups = PCSCReaderGroups().instance
     newgroup = 'Pinpad$Readers'
     groups.insert(0, newgroup)
     for r in PCSCReader.readers('SCard$DefaultReaders'):
         r.addtoreadergroup(newgroup)
     self.assertEqual(PCSCReader.readers('SCard$DefaultReaders'),
                      PCSCReader.readers(newgroup))
     for r in PCSCReader.readers('SCard$DefaultReaders'):
         r.removefromreadergroup(newgroup)
     self.assertEqual([], PCSCReader.readers(newgroup))
     groups.pop(0)
     self.assertEqual([], PCSCReader.readers(newgroup))
 def testcase_removereaderfromgroup(self):
     """Test for removing readers from group"""
     groups = PCSCReaderGroups().instance
     newgroup = 'Pinpad$Readers'
     groups.insert(0, newgroup)
     for r in PCSCReader.readers('SCard$DefaultReaders'):
         r.addtoreadergroup(newgroup)
     self.assertEquals(
         PCSCReader.readers(
             'SCard$DefaultReaders'),
         PCSCReader.readers(newgroup))
     for r in PCSCReader.readers('SCard$DefaultReaders'):
         r.removefromreadergroup(newgroup)
     self.assertEquals([], PCSCReader.readers(newgroup))
     groups.pop(0)
     self.assertEquals([], PCSCReader.readers(newgroup))
Beispiel #4
0
        # store the value in the dictionnary
        try:
            d[Properties[tag]] = data
        except KeyError:
            d["UNKNOWN"] = data

        del tmp[0:2 + len]

    return d


if __name__ == '__main__':
    """Small sample illustrating the use of PCSCPart10."""
    from smartcard.pcsc.PCSCReader import PCSCReader
    cc = PCSCReader.readers()[0].createConnection()
    cc.connect(mode=SCARD_SHARE_DIRECT)

    # print(cc.control(CM_IOCTL_GET_FEATURE_REQUEST))
    features = getFeatureRequest(cc)
    print(features)

    print(hasFeature(features, FEATURE_VERIFY_PIN_START))
    print(hasFeature(features, FEATURE_VERIFY_PIN_DIRECT))

    properties = getPinProperties(cc)
    print("\nPinProperties:")
    for k, v in list(properties.items()):
        print(" %s: %s" % (k, v))

    print("\nTlvProperties:")
        data = [(x + 256) % 256 for x in response]
        return list(data)

    def doGetAttrib(self, attribId):
        """get an attribute

        attribId: Identifier for the attribute to get

        return:   response are the attribute byte array
        """
        CardConnection.doGetAttrib(self, attribId)
        hresult, response = SCardGetAttrib(self.hcard, attribId)
        if hresult != 0:
            raise SmartcardException('Failed to getAttrib ' +
                                     SCardGetErrorMessage(hresult))
        return response


if __name__ == '__main__':
    """Small sample illustrating the use of CardConnection."""
    SELECT = [0xA0, 0xA4, 0x00, 0x00, 0x02]
    DF_TELECOM = [0x7F, 0x10]
    from smartcard.pcsc.PCSCReader import PCSCReader
    from smartcard.pcsc.PCSCPart10 import CM_IOCTL_GET_FEATURE_REQUEST
    cc = PCSCReader.readers()[0].createConnection()
    cc.connect()
    print("%r %x %x" % cc.transmit(SELECT + DF_TELECOM))

    print(cc.control(CM_IOCTL_GET_FEATURE_REQUEST, []))