bsc: Unify encryption related test cases

Rather than having copy+pate code, parameterize it.

Change-Id: Ifc554245f80b09309f2da60c9d17c289c331b22e
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 8ab77cf..b3c7c61 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -1434,54 +1434,45 @@
 	fn.apply(id);
 }
 
-private function f_tc_assignment_fr_a5_0(charstring id) runs on MSC_ConnHdlr {
-	g_pars := valueof(t_def_TestHdlrPars);
+private function f_tc_assignment_fr_a5(charstring id) runs on MSC_ConnHdlr {
 	var template PDU_BSSAP exp_compl := tr_BSSMAP_AssignmentComplete(omit, ?);
 	var BSSMAP_IE_AoIP_TransportLayerAddress tla := valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342));
 	var PDU_BSSAP ass_cmd := valueof(ts_BSSMAP_AssignmentReq(omit, tla));
-	const OCT8 kc := '0001020304050607'O;
 
 	ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType);
 	ass_cmd.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
 
 	f_establish_fully(ass_cmd, exp_compl);
-	f_cipher_mode('01'O, kc);
+	f_cipher_mode(g_pars.encr.enc_alg, g_pars.encr.enc_key);
 }
-
 testcase TC_assignment_fr_a5_0() runs on test_CT {
 	var MSC_ConnHdlr vc_conn;
+	var TestHdlrParams pars := valueof(t_def_TestHdlrPars);
+	pars.encr := valueof(t_EncrParams('01'O, f_rnd_octstring(8)));
 
 	f_init(1, true);
 	f_sleep(1.0);
-
-	vc_conn := f_start_handler(refers(f_tc_assignment_fr_a5_0));
+	vc_conn := f_start_handler(refers(f_tc_assignment_fr_a5), pars);
 	vc_conn.done;
 }
-
-
-
-private function f_tc_assignment_fr_a5_1(charstring id) runs on MSC_ConnHdlr {
-	g_pars := valueof(t_def_TestHdlrPars);
-
-	var template PDU_BSSAP exp_compl := tr_BSSMAP_AssignmentComplete(omit, ?);
-	var BSSMAP_IE_AoIP_TransportLayerAddress tla := valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342));
-	var PDU_BSSAP ass_cmd := valueof(ts_BSSMAP_AssignmentReq(omit, tla));
-	const OCT8 kc := '0001020304050607'O;
-
-	ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType);
-	ass_cmd.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
-
-	f_establish_fully(ass_cmd, exp_compl);
-	f_cipher_mode('02'O, kc);
-}
-
 testcase TC_assignment_fr_a5_1() runs on test_CT {
 	var MSC_ConnHdlr vc_conn;
+	var TestHdlrParams pars := valueof(t_def_TestHdlrPars);
+	pars.encr := valueof(t_EncrParams('02'O, f_rnd_octstring(8)));
 
 	f_init(1, true);
 	f_sleep(1.0);
+	vc_conn := f_start_handler(refers(f_tc_assignment_fr_a5), pars);
+	vc_conn.done;
+}
+testcase TC_assignment_fr_a5_3() runs on test_CT {
+	var MSC_ConnHdlr vc_conn;
+	var TestHdlrParams pars := valueof(t_def_TestHdlrPars);
+	pars.encr := valueof(t_EncrParams('08'O, f_rnd_octstring(8)));
 
-	vc_conn := f_start_handler(refers(f_tc_assignment_fr_a5_1));
+	f_init(1, true);
+	f_sleep(1.0);
+	vc_conn := f_start_handler(refers(f_tc_assignment_fr_a5), pars);
 	vc_conn.done;
 }
 
@@ -1496,7 +1487,6 @@
 	ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType);
 	f_establish_fully(ass_cmd, exp_fail);
 }
-
 testcase TC_assignment_fr_a5_1_codec_missing() runs on test_CT {
 	var MSC_ConnHdlr vc_conn;
 
@@ -1507,32 +1497,6 @@
 	vc_conn.done;
 }
 
-
-private function f_tc_assignment_fr_a5_3(charstring id ) runs on MSC_ConnHdlr {
-	g_pars := valueof(t_def_TestHdlrPars);
-	var template PDU_BSSAP exp_compl := tr_BSSMAP_AssignmentComplete(omit, ?);
-	var BSSMAP_IE_AoIP_TransportLayerAddress tla := valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342));
-	var PDU_BSSAP ass_cmd := valueof(ts_BSSMAP_AssignmentReq(omit, tla));
-	const OCT8 kc := '0001020304050607'O;
-
-	ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType);
-	ass_cmd.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR}));
-
-	f_establish_fully(ass_cmd, exp_compl);
-	f_cipher_mode('08'O, kc);
-}
-
-testcase TC_assignment_fr_a5_3() runs on test_CT {
-	var MSC_ConnHdlr vc_conn;
-
-	f_init(1, true);
-	f_sleep(1.0);
-
-	vc_conn := f_start_handler(refers(f_tc_assignment_fr_a5_3));
-	vc_conn.done;
-}
-
-
 private function f_tc_assignment_fr_a5_4(charstring id) runs on MSC_ConnHdlr {
 	g_pars := valueof(t_def_TestHdlrPars);
 	var template PDU_BSSAP exp_compl := tr_BSSMAP_AssignmentComplete(omit, ?);
@@ -1547,7 +1511,6 @@
 	f_cipher_mode('10'O, kc, kc128, true);
 	/* TODO: expect GSM0808_CAUSE_CIPHERING_ALGORITHM_NOT_SUPPORTED cause value */
 }
-
 testcase TC_assignment_fr_a5_4() runs on test_CT {
 	var MSC_ConnHdlr vc_conn;