Files
pysim/tests/pySim-shell_test/apdu/test.py
Philipp Maier 852eff54df pySim/transport add support for T=1 protocol and fix APDU/TPDU layer conflicts
ETSI TS 102 221, section 7.3 specifies that UICCs (and eUICCs) may support two
different transport protocols: T=0 or T=1 or both. The spec also says that the
terminal must support both protocols.

This patch adds the necessary functionality to support the T=1 protocol
alongside the T=0 protocol. However, this also means that we have to sharpen
the lines between APDUs and TPDUs.

As this patch also touches the low level interface to readers it was also
manually tested with a classic serial reader. Calypso and AT command readers
were not tested.

Change-Id: I8b56d7804a2b4c392f43f8540e0b6e70001a8970
Related: OS#6367
2024-11-19 10:56:26 +01:00

71 lines
2.8 KiB
Python

# Testsuite for pySim-shell.py
#
# (C) 2024 by sysmocom - s.f.m.c. GmbH
# All Rights Reserved
#
# Author: Philipp Maier
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import unittest
import os
from utils import *
class test_case(UnittestUtils):
def test_apdu_legacy(self):
cardname = 'sysmoISIM-SJA5-S17'
self.runPySimShell(cardname, "test_apdu_legacy.script", no_exceptions = True)
def test_apdu_legacy_scp02(self):
cardname = 'sysmoISIM-SJA5-S17'
self.equipTemplate("test_apdu_legacy_scp02.script", SEC_LEVEL = 3)
self.runPySimShell(cardname, "test_apdu_legacy_scp02.script", no_exceptions = True, add_csv = True)
self.equipTemplate("test_apdu_legacy_scp02.script", SEC_LEVEL = 1)
self.runPySimShell(cardname, "test_apdu_legacy_scp02.script", no_exceptions = True, add_csv = True)
def test_apdu_legacy_scp03(self):
cardname = 'sysmoEUICC1-C2T'
self.equipTemplate("test_apdu_legacy_scp03.script", SEC_LEVEL = 3)
self.runPySimShell(cardname, "test_apdu_legacy_scp03.script", no_exceptions = True, add_csv = True)
self.equipTemplate("test_apdu_legacy_scp03.script", SEC_LEVEL = 1)
self.runPySimShell(cardname, "test_apdu_legacy_scp03.script", no_exceptions = True, add_csv = True)
def test_apdu(self):
cardname = 'sysmoISIM-SJA5-S17'
self.runPySimShell(cardname, "test_apdu.script", no_exceptions = True)
def test_apdu_legacy_scp02(self):
cardname = 'sysmoISIM-SJA5-S17'
self.equipTemplate("test_apdu_scp02.script", SEC_LEVEL = 3)
self.runPySimShell(cardname, "test_apdu_scp02.script", no_exceptions = True, add_csv = True)
self.equipTemplate("test_apdu_scp02.script", SEC_LEVEL = 1)
self.runPySimShell(cardname, "test_apdu_scp02.script", no_exceptions = True, add_csv = True)
def test_apdu_legacy_scp03(self):
cardname = 'sysmoEUICC1-C2T'
self.equipTemplate("test_apdu_scp03.script", SEC_LEVEL = 3)
self.runPySimShell(cardname, "test_apdu_scp03.script", no_exceptions = True, add_csv = True)
self.equipTemplate("test_apdu_scp03.script", SEC_LEVEL = 1)
self.runPySimShell(cardname, "test_apdu_scp03.script", no_exceptions = True, add_csv = True)
if __name__ == "__main__":
unittest.main()