laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/41235?usp=email )
Change subject: smdpp_Tests: simplify generation of smdpp_ConnHdlrPars (NIST vs. BRP) ......................................................................
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(-)
Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved
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);