Send poweroff in ccid.py
diff --git a/usb_application/ccid.py b/usb_application/ccid.py
new file mode 100755
index 0000000..48178ae
--- /dev/null
+++ b/usb_application/ccid.py
@@ -0,0 +1,52 @@
+#!/usr/bin/env python3
+
+import usb.core
+import usb.util
+import sys
+
+class find_class(object):
+ def __init__(self, class_):
+ self._class = class_
+ def __call__(self, device):
+ # first, let's check the device
+ if device.bDeviceClass == self._class:
+ return True
+ # ok, transverse all devices to find an
+ # interface that matches our class
+ for cfg in device:
+ # find_descriptor: what's it?
+ intf = usb.util.find_descriptor(
+ cfg,
+ bInterfaceClass=self._class
+ )
+ if intf is not None:
+ return True
+
+ return False
+
+# main code
+def main():
+ devs = usb.core.find(find_all=1, custom_match=find_class(0xb)) # 0xb = Smartcard
+ for dev in devs:
+ dev.set_configuration(2)
+ dev.reset()
+ dev.write(0x1, {0x63, 0x63}) # PC_TO_RDR_ICCPOWEROFF
+ ret = dev.read(0x82, 64)
+ print(ret)
+ #dev.write(0x1, {0x62, 0x62}) # PC_TO_RDR_ICCPOWERON
+ return
+
+# (epi, epo) = find_eps(dev)
+ while True:
+ #ep_out.write("Hello")
+ try:
+ ans = dev.read(0x82, 64, 1000)
+ print("".join("%02x " % b for b in ans))
+ except KeyboardInterrupt:
+ print("Bye")
+ sys.exit()
+ except:
+ print("Timeout")
+ # print(ep_in.read(1, 5000));
+
+main()