laforge has submitted this change. ( 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 was a support request hinting that other applications concurrently accessed 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(-) Approvals: fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified laforge: Looks good to me, approved 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: 4 Gerrit-Owner: laforge <lafo...@osmocom.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter <pma...@sysmocom.de> Gerrit-Reviewer: fixeria <vyanits...@sysmocom.de> Gerrit-Reviewer: laforge <lafo...@osmocom.org> Gerrit-MessageType: merged