Pau Espin Pedrol | 7a333b0 | 2018-09-18 12:39:14 +0200 | [diff] [blame] | 1 | #!/usr/bin/env python3 |
| 2 | from osmo_gsm_tester.testenv import * |
| 3 | |
| 4 | def encryption_test_setup_run(enable_auth, algo): |
Pau Espin Pedrol | 40c7bc7 | 2020-05-05 13:41:42 +0200 | [diff] [blame] | 5 | hlr = tenv.hlr() |
| 6 | bts = tenv.bts() |
| 7 | mgw_msc = tenv.mgw() |
| 8 | mgw_bsc = tenv.mgw() |
| 9 | stp = tenv.stp() |
| 10 | msc = tenv.msc(hlr, mgw_msc, stp) |
| 11 | bsc = tenv.bsc(msc, mgw_bsc, stp) |
| 12 | ms = tenv.modem() |
Pau Espin Pedrol | 7a333b0 | 2018-09-18 12:39:14 +0200 | [diff] [blame] | 13 | |
| 14 | print('start network...') |
| 15 | msc.set_authentication(enable_auth) |
| 16 | msc.set_encryption(algo) |
| 17 | bsc.set_encryption(algo) |
| 18 | hlr.start() |
| 19 | stp.start() |
| 20 | msc.start() |
| 21 | mgw_msc.start() |
| 22 | mgw_bsc.start() |
| 23 | bsc.bts_add(bts) |
| 24 | bsc.start() |
| 25 | bts.start() |
| 26 | wait(bsc.bts_is_connected, bts) |
| 27 | |
| 28 | ms.log_info() |
| 29 | good_ki = ms.ki() |
| 30 | bad_ki = ("%1X" % (int(good_ki[0], 16) ^ 0x01)) + good_ki[1:] |
| 31 | |
| 32 | print('KI changed: ' + good_ki + " => " + bad_ki) |
| 33 | ms.set_ki(bad_ki) |
| 34 | hlr.subscriber_add(ms) |
| 35 | if enable_auth: |
| 36 | print('Attempt connection with wrong KI...') |
| 37 | ms.connect(msc.mcc_mnc()) |
| 38 | |
| 39 | sleep(40) # TODO: read pcap or CTRL interface and look for Rejected? (gsm_a.dtap.msg_mm_type == 0x04) |
| 40 | print('Asserting modem did not register') |
| 41 | # FIXME: this can fail because ofono qmi signals registered before being accepted by network. See OS#2458 |
Pau Espin Pedrol | 3a81a7e | 2020-06-10 16:52:53 +0200 | [diff] [blame] | 42 | # assert not ms.is_registered(msc.mcc_mnc()) |
Pau Espin Pedrol | 7a333b0 | 2018-09-18 12:39:14 +0200 | [diff] [blame] | 43 | assert not msc.subscriber_attached(ms) |
| 44 | |
| 45 | hlr.subscriber_delete(ms) |
| 46 | print('KI changed: ' + bad_ki + " => " + good_ki) |
| 47 | ms.set_ki(good_ki) |
Pau Espin Pedrol | 4b7c585 | 2020-10-14 14:48:21 +0200 | [diff] [blame] | 48 | hlr.subscriber_add(ms, ms.msisdn()) |
Pau Espin Pedrol | 7a333b0 | 2018-09-18 12:39:14 +0200 | [diff] [blame] | 49 | print('Attempt connection with correct KI...') |
| 50 | else: |
| 51 | print('Attempt connection with wrong KI, should work as it is not used...') |
| 52 | ms.connect(msc.mcc_mnc()) |
Pau Espin Pedrol | 3a81a7e | 2020-06-10 16:52:53 +0200 | [diff] [blame] | 53 | wait(ms.is_registered, msc.mcc_mnc()) |
Pau Espin Pedrol | 7a333b0 | 2018-09-18 12:39:14 +0200 | [diff] [blame] | 54 | wait(msc.subscriber_attached, ms) |