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 <laforge(a)osmocom.org>
Gerrit-MessageType: newchange