mirror of https://gerrit.osmocom.org/pysim
pySim-prog, pySim-read, do not echo reader id
pySim-prog and pySim-read currently echo back the pcsc reader id (or baudrate/socket, depending on the interface used). This makes the output unecessarly undeterministic, which becomes a problem when verifying the putput in tests. Lets not echo those variable, user supplied parameters back. Also lets move the code that does the initalization to utils, so that it can be used from pySim-prog and from pySim-read (code dup). Change-Id: I243cc332f075d007b1c111292effcc610e874eb3 Related: OS#4503changes/21/18221/2
parent
b689754b49
commit
ff84c23839
|
@ -40,7 +40,7 @@ except ImportError:
|
|||
|
||||
from pySim.commands import SimCardCommands
|
||||
from pySim.cards import _cards_classes, card_detect
|
||||
from pySim.utils import h2b, swap_nibbles, rpad, derive_milenage_opc, calculate_luhn, dec_iccid
|
||||
from pySim.utils import h2b, swap_nibbles, rpad, derive_milenage_opc, calculate_luhn, dec_iccid, init_reader
|
||||
from pySim.ts_51_011 import EF
|
||||
from pySim.card_handler import *
|
||||
from pySim.utils import *
|
||||
|
@ -688,21 +688,7 @@ if __name__ == '__main__':
|
|||
opts = parse_options()
|
||||
|
||||
# Init card reader driver
|
||||
if opts.pcsc_dev is not None:
|
||||
print("Using PC/SC reader (dev=%d) interface"
|
||||
% opts.pcsc_dev)
|
||||
from pySim.transport.pcsc import PcscSimLink
|
||||
sl = PcscSimLink(opts.pcsc_dev)
|
||||
elif opts.osmocon_sock is not None:
|
||||
print("Using Calypso-based (OsmocomBB, sock=%s) reader interface"
|
||||
% opts.osmocon_sock)
|
||||
from pySim.transport.calypso import CalypsoSimLink
|
||||
sl = CalypsoSimLink(sock_path=opts.osmocon_sock)
|
||||
else: # Serial reader is default
|
||||
print("Using serial reader (port=%s, baudrate=%d) interface"
|
||||
% (opts.device, opts.baudrate))
|
||||
from pySim.transport.serial import SerialSimLink
|
||||
sl = SerialSimLink(device=opts.device, baudrate=opts.baudrate)
|
||||
sl = init_reader(opts)
|
||||
|
||||
# Create command layer
|
||||
scc = SimCardCommands(transport=sl)
|
||||
|
|
|
@ -34,8 +34,8 @@ from pySim.ts_31_103 import EF_IST_map
|
|||
|
||||
from pySim.commands import SimCardCommands
|
||||
from pySim.cards import card_detect, Card
|
||||
from pySim.utils import h2b, swap_nibbles, rpad, dec_imsi, dec_iccid, dec_msisdn, format_xplmn_w_act, dec_spn, dec_st
|
||||
|
||||
from pySim.utils import h2b, swap_nibbles, rpad, dec_imsi, dec_iccid, dec_msisdn
|
||||
from pySim.utils import format_xplmn_w_act, dec_spn, dec_st, init_reader
|
||||
|
||||
def parse_options():
|
||||
|
||||
|
@ -72,21 +72,7 @@ if __name__ == '__main__':
|
|||
opts = parse_options()
|
||||
|
||||
# Init card reader driver
|
||||
if opts.pcsc_dev is not None:
|
||||
print("Using PC/SC reader (dev=%d) interface"
|
||||
% opts.pcsc_dev)
|
||||
from pySim.transport.pcsc import PcscSimLink
|
||||
sl = PcscSimLink(opts.pcsc_dev)
|
||||
elif opts.osmocon_sock is not None:
|
||||
print("Using Calypso-based (OsmocomBB, sock=%s) reader interface"
|
||||
% opts.osmocon_sock)
|
||||
from pySim.transport.calypso import CalypsoSimLink
|
||||
sl = CalypsoSimLink(sock_path=opts.osmocon_sock)
|
||||
else: # Serial reader is default
|
||||
print("Using serial reader (port=%s, baudrate=%d) interface"
|
||||
% (opts.device, opts.baudrate))
|
||||
from pySim.transport.serial import SerialSimLink
|
||||
sl = SerialSimLink(device=opts.device, baudrate=opts.baudrate)
|
||||
sl = init_reader(opts)
|
||||
|
||||
# Create command layer
|
||||
scc = SimCardCommands(transport=sl)
|
||||
|
|
|
@ -436,3 +436,22 @@ def dec_epdgid(hexstr):
|
|||
s += "\t%s # %s\n" % (i2h(content), i2s(content))
|
||||
|
||||
return s
|
||||
|
||||
def init_reader(opts):
|
||||
"""
|
||||
Init card reader driver
|
||||
"""
|
||||
if opts.pcsc_dev is not None:
|
||||
print("Using PC/SC reader interface")
|
||||
from pySim.transport.pcsc import PcscSimLink
|
||||
sl = PcscSimLink(opts.pcsc_dev)
|
||||
elif opts.osmocon_sock is not None:
|
||||
print("Using Calypso-based (OsmocomBB) reader interface")
|
||||
from pySim.transport.calypso import CalypsoSimLink
|
||||
sl = CalypsoSimLink(sock_path=opts.osmocon_sock)
|
||||
else: # Serial reader is default
|
||||
print("Using serial reader interface")
|
||||
from pySim.transport.serial import SerialSimLink
|
||||
sl = SerialSimLink(device=opts.device, baudrate=opts.baudrate)
|
||||
|
||||
return sl
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Using PC/SC reader (dev=0) interface
|
||||
Using PC/SC reader interface
|
||||
Reading ...
|
||||
Autodetected card type: Fairwaves-SIM
|
||||
ICCID: 8988219000000117833
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Using PC/SC reader (dev=3) interface
|
||||
Using PC/SC reader interface
|
||||
Reading ...
|
||||
Autodetected card type: Wavemobile-SIM
|
||||
ICCID: 89445310150011013678
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Using PC/SC reader (dev=5) interface
|
||||
Using PC/SC reader interface
|
||||
Reading ...
|
||||
Autodetected card type: fakemagicsim
|
||||
Can't read AIDs from SIM -- SW match failed! Expected 9000 and got 9404.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Using PC/SC reader (dev=4) interface
|
||||
Using PC/SC reader interface
|
||||
Reading ...
|
||||
Autodetected card type: sysmoISIM-SJA2
|
||||
ICCID: 8988211900000000004
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Using PC/SC reader (dev=1) interface
|
||||
Using PC/SC reader interface
|
||||
Reading ...
|
||||
Autodetected card type: sysmoUSIM-SJS1
|
||||
ICCID: 1122334455667788990
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Using PC/SC reader (dev=0) interface
|
||||
Using PC/SC reader interface
|
||||
Reading ...
|
||||
Autodetected card type: sysmosim-gr1
|
||||
Can't read AIDs from SIM -- SW match failed! Expected 9000 and got 9404.
|
||||
|
|
|
@ -78,13 +78,7 @@ function check_card {
|
|||
stat ./$CARD_NAME.ok > /dev/null
|
||||
python $PYSIM_READ -p $TERMINAL > $TEMPFILE
|
||||
set +e
|
||||
# Note: We ignore the first line of output in the diff because here
|
||||
# pysim would print the device number of the reader and we do not
|
||||
# want the test to fail just because the card is put into a different
|
||||
# reader device.
|
||||
tail -n +2 $CARD_NAME.ok > $CARD_NAME.ok.tmp
|
||||
tail -n +2 $TEMPFILE > $CARD_NAME.chk.tmp
|
||||
CARD_DIFF=$(diff $CARD_NAME.chk.tmp $CARD_NAME.ok.tmp)
|
||||
CARD_DIFF=$(diff $TEMPFILE ./$CARD_NAME.ok)
|
||||
set -e
|
||||
|
||||
if [ "$CARD_DIFF" != "" ]; then
|
||||
|
@ -104,7 +98,7 @@ function check_card {
|
|||
inc_card_list $CARD_NAME
|
||||
|
||||
echo "Card contents match the test data -- success!"
|
||||
rm *.tmp
|
||||
rm $TEMPFILE
|
||||
}
|
||||
|
||||
# Read out the card using pysim-read and store the result as .ok file. This
|
||||
|
|
Loading…
Reference in New Issue