laforge has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/pysim/+/36273?usp=email )


Change subject: pcsc: open reader/card in EXCLUSIVE mode by default
......................................................................

pcsc: open reader/card in EXCLUSIVE mode by default

There were some support request hinting that other applications
concurrently accesse the SIM and were messing up the card state while
pySim-shell was running.

Let's avoid such situations by opening the card/reader in EXCLUSIVE mode
by default.  If somebody really has a special use case, they can now add
the --pcsc-shared flag to restore the legacy behavior (SHARED mode).

Change-Id: I90d887714b559a4604708d3c6dd23b5e05f40576
---
M pySim/transport/pcsc.py
1 file changed, 22 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/73/36273/1

diff --git a/pySim/transport/pcsc.py b/pySim/transport/pcsc.py
index 47976ae..9198816 100644
--- a/pySim/transport/pcsc.py
+++ b/pySim/transport/pcsc.py
@@ -25,6 +25,7 @@
 from smartcard.CardRequest import CardRequest
 from smartcard.Exceptions import NoCardException, CardRequestTimeoutException, 
CardConnectionException
 from smartcard.System import readers
+from smartcard.ExclusiveConnectCardConnection import 
ExclusiveConnectCardConnection

 from pySim.exceptions import NoCardError, ProtocolError, ReaderError
 from pySim.transport import LinkBase
@@ -56,6 +57,8 @@
                 raise ReaderError('No matching reader found for regex %s' % 
opts.pcsc_regex)

         self._con = self._reader.createConnection()
+        if not opts.pcsc_shared:
+            self._con = ExclusiveConnectCardConnection(self._con)

     def __del__(self):
         try:
@@ -119,6 +122,8 @@
 Windows, MacOS X and Linux.  Most vendors of smart card readers provide 
drivers that offer a PC/SC
 interface, if not even a generic USB CCID driver is used.  You can use a tool 
like ``pcsc_scan -r``
 to obtain a list of readers available on your system. """)
+        pcsc_group.add_argument('--pcsc-shared', action='store_true',
+                                help='Open PC/SC reaer in SHARED access 
(default: EXCLUSIVE)')
         dev_group = pcsc_group.add_mutually_exclusive_group()
         dev_group.add_argument('-p', '--pcsc-device', type=int, 
dest='pcsc_dev', metavar='PCSC', default=None,
                                help='Number of PC/SC reader to use for SIM 
access')

--
To view, visit https://gerrit.osmocom.org/c/pysim/+/36273?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: I90d887714b559a4604708d3c6dd23b5e05f40576
Gerrit-Change-Number: 36273
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <lafo...@osmocom.org>
Gerrit-MessageType: newchange

Reply via email to