From 09f3f6dbbdb6d09b82ea592cb75ed69c04a3bdf8 Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Wed, 17 Feb 2021 00:02:42 +0000
Subject: [PATCH] Detect ControlVault devices without NFC reader and show error
---
cvcomm.py | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/cvcomm.py b/cvcomm.py
index c2e9823..4a2d45a 100644
--- a/cvcomm.py
+++ b/cvcomm.py
@@ -59,11 +59,20 @@
self.logger.debug('Enumerating interfaces...')
configuration = self.device.get_active_configuration()
bcm_interface = None
+ has_contacted = False
+ has_contactless = False
for interface in configuration:
if interface.bInterfaceClass == 0xff:
if bcm_interface is not None:
raise Exception('More than one vendor-specific interface found!')
bcm_interface = interface
+ if interface.bInterfaceClass == 0xb:
+ if interface.iInterface == 0x5:
+ has_contacted = True
+ if interface.iInterface == 0x6:
+ has_contactless = True
+ if not has_contactless:
+ raise Exception('No contactless reader on this device!')
if bcm_interface is None:
raise Exception('Cannot find vendor-specific interface')
self.logger.debug('Interface found: {}'.format(bcm_interface._str()))
--
Gitblit v1.9.1