laforge submitted this change.

View Change

Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved
smdpp_Tests: simplify generation of smdpp_ConnHdlrPars (NIST vs. BRP)

When we call f_init_pars() it will return a record with default parameters.
However, those parameters are only a suitable default when the NIST curve
is used. For the brainpool curve we will have to modify returned result.

Let's simlify this by adding a parameter to f_init_pars() that allows us to
switch between the defaults for NIST and BRP as needed.

Realated: SYS#7339
Change-Id: Ied4ffa6ff4b3efbbcfc9204ce8f21ea7ca4becf5
---
M smdpp/smdpp_Tests.ttcn
1 file changed, 22 insertions(+), 40 deletions(-)

diff --git a/smdpp/smdpp_Tests.ttcn b/smdpp/smdpp_Tests.ttcn
index d40d6df..7a300a2 100644
--- a/smdpp/smdpp_Tests.ttcn
+++ b/smdpp/smdpp_Tests.ttcn
@@ -379,18 +379,14 @@
ES9EncodingMode es9_encoding_mode optional
};

-private function f_init_pars() runs on MTC_CT return smdpp_ConnHdlrPars {
+private function f_init_pars(boolean brainpool := false) runs on MTC_CT return smdpp_ConnHdlrPars {
var smdpp_ConnHdlrPars pars := {
/* Unfortunately the SMDP server FQDN cannot be made configurable via a module parameter since it always
* to match the FQDN in the test SSL certificates. To resolve the server FQDN to an IP address, an entry
* in /etc/hosts is sufficient. */
smdp_server_fqdn := "testsmdpplus1.example.com",
- smdp_es9p_server_port := mp_es9plus_server_port_nist,
smdp_es2p_server_port := mp_es2plus_server_port,
cert_path := "./sgp26/CertificateIssuer",
- cert_name_filter := "", // Load all certificates (both NIST and BRP) or "NIST" or "BRP"
- euicc_cert_path := "./sgp26/eUICC/CERT_EUICC_ECDSA_NIST.der",
- euicc_key_path := "./sgp26/eUICC/SK_EUICC_ECDSA_NIST.pem",
confirmation_code := omit, // No confirmation code by default
err_injection := omit,
test_name := omit,
@@ -402,6 +398,20 @@
metadata_segments := 1,
es9_encoding_mode := omit /* Default to JSON mode */
};
+
+ /* GSMA SGP.22 specifies two different certificate curves, which require different default parameters */
+ if (brainpool) {
+ pars.smdp_es9p_server_port := mp_es9plus_server_port_brp;
+ pars.cert_name_filter := "BRP";
+ pars.euicc_cert_path := "./sgp26/eUICC/CERT_EUICC_ECDSA_BRP.der";
+ pars.euicc_key_path := "./sgp26/eUICC/SK_EUICC_ECDSA_BRP.pem";
+ } else {
+ pars.smdp_es9p_server_port := mp_es9plus_server_port_nist;
+ pars.cert_name_filter := "NIST";
+ pars.euicc_cert_path := "./sgp26/eUICC/CERT_EUICC_ECDSA_NIST.der";
+ pars.euicc_key_path := "./sgp26/eUICC/SK_EUICC_ECDSA_NIST.pem";
+ }
+
return pars;
}

@@ -5570,11 +5580,7 @@


testcase TC_SM_DP_ES9_InitiateAuthenticationBRP_01_Nominal() runs on MTC_CT {
- var smdpp_ConnHdlrPars pars := f_init_pars();
- pars.smdp_es9p_server_port := mp_es9plus_server_port_brp; /* BRP server port */
- pars.cert_name_filter := "BRP"; /* Use Brainpool certificates */
- pars.euicc_cert_path := "./sgp26/eUICC/CERT_EUICC_ECDSA_BRP.der";
- pars.euicc_key_path := "./sgp26/eUICC/SK_EUICC_ECDSA_BRP.pem";
+ var smdpp_ConnHdlrPars pars := f_init_pars(brainpool := true);
var smdpp_ConnHdlr vc_conn;
f_init(testcasename());
vc_conn := f_start_handler(refers(f_TC_InitiateAuth_01_Nominal), pars);
@@ -5583,11 +5589,7 @@
}

testcase TC_SM_DP_ES9_AuthenticateClientBRP_01_Nominal() runs on MTC_CT {
- var smdpp_ConnHdlrPars pars := f_init_pars();
- pars.smdp_es9p_server_port := mp_es9plus_server_port_brp; /* BRP server port */
- pars.cert_name_filter := "BRP"; /* Use Brainpool certificates */
- pars.euicc_cert_path := "./sgp26/eUICC/CERT_EUICC_ECDSA_BRP.der";
- pars.euicc_key_path := "./sgp26/eUICC/SK_EUICC_ECDSA_BRP.pem";
+ var smdpp_ConnHdlrPars pars := f_init_pars(brainpool := true);
var smdpp_ConnHdlr vc_conn;
f_init(testcasename());
vc_conn := f_start_handler(refers(f_TC_AuthenticateClient_01_Nominal), pars);
@@ -5596,11 +5598,7 @@
}

testcase TC_SM_DP_ES9_GetBoundProfilePackageBRP_01_Nominal() runs on MTC_CT {
- var smdpp_ConnHdlrPars pars := f_init_pars();
- pars.smdp_es9p_server_port := mp_es9plus_server_port_brp; /* BRP server port */
- pars.cert_name_filter := "BRP"; /* Use Brainpool certificates */
- pars.euicc_cert_path := "./sgp26/eUICC/CERT_EUICC_ECDSA_BRP.der";
- pars.euicc_key_path := "./sgp26/eUICC/SK_EUICC_ECDSA_BRP.pem";
+ var smdpp_ConnHdlrPars pars := f_init_pars(brainpool := true);
var smdpp_ConnHdlr vc_conn;
f_init(testcasename());
vc_conn := f_start_handler(refers(f_TC_GetBoundProfilePackage_01_Nominal), pars);
@@ -5609,11 +5607,7 @@
}

testcase TC_rsp_complete_flow_BRP() runs on MTC_CT {
- var smdpp_ConnHdlrPars pars := f_init_pars();
- pars.smdp_es9p_server_port := mp_es9plus_server_port_brp; /* BRP server port */
- pars.cert_name_filter := "BRP"; /* Use Brainpool certificates */
- pars.euicc_cert_path := "./sgp26/eUICC/CERT_EUICC_ECDSA_BRP.der";
- pars.euicc_key_path := "./sgp26/eUICC/SK_EUICC_ECDSA_BRP.pem";
+ var smdpp_ConnHdlrPars pars := f_init_pars(brainpool := true);
var smdpp_ConnHdlr vc_conn;
f_init(testcasename());
vc_conn := f_start_handler(refers(f_TC_rsp_complete_flow), pars);
@@ -5622,11 +5616,7 @@
}

testcase TC_SM_DP_ES9_HandleNotificationBRP() runs on MTC_CT {
- var smdpp_ConnHdlrPars pars := f_init_pars();
- pars.smdp_es9p_server_port := mp_es9plus_server_port_brp; /* BRP server port */
- pars.cert_name_filter := "BRP"; /* Use Brainpool certificates */
- pars.euicc_cert_path := "./sgp26/eUICC/CERT_EUICC_ECDSA_BRP.der";
- pars.euicc_key_path := "./sgp26/eUICC/SK_EUICC_ECDSA_BRP.pem";
+ var smdpp_ConnHdlrPars pars := f_init_pars(brainpool := true);
var smdpp_ConnHdlr vc_conn;
f_init(testcasename());
vc_conn := f_start_handler(refers(f_TC_HandleNotification_01_Nominal), pars);
@@ -5635,11 +5625,7 @@
}

testcase TC_SM_DP_ES9_CancelSession_After_AuthenticateClientBRP() runs on MTC_CT {
- var smdpp_ConnHdlrPars pars := f_init_pars();
- pars.smdp_es9p_server_port := mp_es9plus_server_port_brp; /* BRP server port */
- pars.cert_name_filter := "BRP"; /* Use Brainpool certificates */
- pars.euicc_cert_path := "./sgp26/eUICC/CERT_EUICC_ECDSA_BRP.der";
- pars.euicc_key_path := "./sgp26/eUICC/SK_EUICC_ECDSA_BRP.pem";
+ var smdpp_ConnHdlrPars pars := f_init_pars(brainpool := true);
var smdpp_ConnHdlr vc_conn;
f_init(testcasename());
vc_conn := f_start_handler(refers(f_TC_CancelSession_After_AuthenticateClient_01_End_User_Rejection), pars);
@@ -5648,11 +5634,7 @@
}

testcase TC_SM_DP_ES9_CancelSession_After_GetBoundProfilePackageBRP() runs on MTC_CT {
- var smdpp_ConnHdlrPars pars := f_init_pars();
- pars.smdp_es9p_server_port := mp_es9plus_server_port_brp; /* BRP server port */
- pars.cert_name_filter := "BRP"; /* Use Brainpool certificates */
- pars.euicc_cert_path := "./sgp26/eUICC/CERT_EUICC_ECDSA_BRP.der";
- pars.euicc_key_path := "./sgp26/eUICC/SK_EUICC_ECDSA_BRP.pem";
+ var smdpp_ConnHdlrPars pars := f_init_pars(brainpool := true);
var smdpp_ConnHdlr vc_conn;
f_init(testcasename());
vc_conn := f_start_handler(refers(f_TC_CancelSession_After_GetBoundProfilePackage_01), pars);

To view, visit change 41235. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Ied4ffa6ff4b3efbbcfc9204ce8f21ea7ca4becf5
Gerrit-Change-Number: 41235
Gerrit-PatchSet: 2
Gerrit-Owner: dexter <pmaier@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-Reviewer: osmith <osmith@sysmocom.de>