<p>neels has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/24760">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">msc: add vec_keep to lock the AuthVector<br><br>Next to AuthVector vec, add boolean vec_keep. When set to true,<br>as_GSUP_SAI() skips the vector regeneration.<br><br>An upcoming patch adds encryption to inter-BSC handover, which will use<br>vec_keep := true. (See I57e43c60d4389bd301d0195179321a34401bd1dc )<br><br>Rationale:<br><br>Usually, a random auth vector is generated during as_GSUP_SAI(). For<br>inter-BSC handover, there are two separate virt-BSC components running.<br>But to be able to verify that the correct key is passed on from the old<br>to the new BSS, both titan components need to have the same AuthVector<br>data. The easiest solution is to generate the AuthVector before<br>launching the components, and then prevent that it is changed by<br>as_GSUP_SAI().<br><br>Related: SYS#5324<br>Related: I57e43c60d4389bd301d0195179321a34401bd1dc<br>Change-Id: I4bca739c2aad8342915e00a218f90fc19be7eafe<br>---<br>M msc/BSC_ConnectionHandler.ttcn<br>M msc/MSC_Tests.ttcn<br>2 files changed, 10 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/60/24760/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn</span><br><span>index 68a370d..456b5f5 100644</span><br><span>--- a/msc/BSC_ConnectionHandler.ttcn</span><br><span>+++ b/msc/BSC_ConnectionHandler.ttcn</span><br><span>@@ -93,6 +93,9 @@</span><br><span>         BSSMAP_IE_ClassmarkInformationType2 cm2,</span><br><span>     BSSMAP_IE_ClassmarkInformationType3 cm3 optional,</span><br><span>    AuthVector vec optional,</span><br><span style="color: hsl(120, 100%, 40%);">+      /* BSC_ConnectionHandler generates an auth vector in as_GSUP_SAI(). For tests that want control over which</span><br><span style="color: hsl(120, 100%, 40%);">+     * vector is used, pass vec_keep := true to not regenerate a new auth vector in as_GSUP_SAI(). */</span><br><span style="color: hsl(120, 100%, 40%);">+     boolean vec_keep,</span><br><span>    BSC_ConnHdlrNetworkPars net,</span><br><span>         boolean send_early_cm,</span><br><span>       charstring ipa_ctrl_ip,</span><br><span>@@ -426,7 +429,9 @@</span><br><span> var GSUP_IE auth_tuple;</span><br><span> [] GSUP.receive(tr_GSUP_SAI_REQ(g_pars.imsi)) {</span><br><span>  if (g_pars.use_umts_aka) {</span><br><span style="color: hsl(0, 100%, 40%);">-              g_pars.vec := f_gen_auth_vec_3g();</span><br><span style="color: hsl(120, 100%, 40%);">+            if (not g_pars.vec_keep) {</span><br><span style="color: hsl(120, 100%, 40%);">+                    g_pars.vec := f_gen_auth_vec_3g();</span><br><span style="color: hsl(120, 100%, 40%);">+            }</span><br><span>            auth_tuple := valueof(ts_GSUP_IE_AuthTuple2G3G(g_pars.vec.rand,</span><br><span>                                                              g_pars.vec.sres,</span><br><span>                                                             g_pars.vec.kc,</span><br><span>@@ -436,7 +441,9 @@</span><br><span>                                                                 g_pars.vec.res));</span><br><span>            GSUP.send(ts_GSUP_SAI_RES(g_pars.imsi, auth_tuple));</span><br><span>         } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                g_pars.vec := f_gen_auth_vec_2g();</span><br><span style="color: hsl(120, 100%, 40%);">+            if (not g_pars.vec_keep) {</span><br><span style="color: hsl(120, 100%, 40%);">+                    g_pars.vec := f_gen_auth_vec_2g();</span><br><span style="color: hsl(120, 100%, 40%);">+            }</span><br><span>            auth_tuple := valueof(ts_GSUP_IE_AuthTuple2G(g_pars.vec.rand,</span><br><span>                                                                g_pars.vec.sres,</span><br><span>                                                             g_pars.vec.kc));</span><br><span>diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn</span><br><span>index e37bc52..46a368e 100644</span><br><span>--- a/msc/MSC_Tests.ttcn</span><br><span>+++ b/msc/MSC_Tests.ttcn</span><br><span>@@ -387,6 +387,7 @@</span><br><span>          cm2 := valueof(ts_CM2_default),</span><br><span>              cm3 := omit,</span><br><span>                 vec := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+          vec_keep := false,</span><br><span>           net := net_pars,</span><br><span>             send_early_cm := true,</span><br><span>               ipa_ctrl_ip := mp_msc_ip,</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/24760">change 24760</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/24760"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I4bca739c2aad8342915e00a218f90fc19be7eafe </div>
<div style="display:none"> Gerrit-Change-Number: 24760 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>