lists.osmocom.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

gerrit-log

Thread Start a new thread
Download
Threads by month
  • ----- 2026 -----
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
gerrit-log@lists.osmocom.org

August 2026

  • 1 participants
  • 2269 discussions
[L] Change in osmo-ttcn3-hacks[master]: SGP32Definitions_Templates: rework templates, imrove flexibilty
by jolly 10 Aug '26

10 Aug '26
Attention is currently required from: dexter. jolly has posted comments on this change by dexter. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43181?usp=email ) Change subject: SGP32Definitions_Templates: rework templates, imrove flexibilty ...................................................................... Patch Set 2: (1 comment) File library/euicc/SGP32Definitions_Templates.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43181/comment/a9b78a1a_c695… : PS1, Line 342: tagList := '81BF20BF228384A5A6A8A9A0'O, Maybe add new 'A2' tag for completeness. (eUICC Package Results) -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43181?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I69a29b30578b0280006c2655b20c2a4eb62f5e75 Gerrit-Change-Number: 43181 Gerrit-PatchSet: 2 Gerrit-Owner: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: jolly <andreas(a)eversberg.eu> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: dexter <pmaier(a)sysmocom.de> Gerrit-Comment-Date: Mon, 10 Aug 2026 10:47:33 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No
1 0
0 0
[S] Change in libosmocore[master]: gsm0480: fix out-of-bounds read in parse_process_uss_req()
by fixeria 10 Aug '26

10 Aug '26
fixeria has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/43191?usp=email ) ( 1 is the latest approved patch-set. No files were changed between the latest approved patch-set and the submitted one. )Change subject: gsm0480: fix out-of-bounds read in parse_process_uss_req() ...................................................................... gsm0480: fix out-of-bounds read in parse_process_uss_req() The USSD-String octet count (uss_req_data[6]) was only checked against the 160-byte GSM0480_USSD_OCTET_STRING_LEN destination limit, never against the number of bytes actually remaining in the received message. A truncated ProcessUnstructuredSS-Request (as short as 8 bytes) with a length byte up to 160 caused the subsequent memcpy() (and, for the default alphabet, gsm_7bit_decode_n_ussd()) to read up to ~159 bytes past the end of the message buffer. uss_req_data/length come straight from a received L3 message via the public gsm0480_decode_ss_request() API, so this is reachable with network-supplied input. Add the missing length check, mirroring the one already present in the sibling parse_process_uss_data(), and add a regression test with an oversized length byte. Change-Id: I62a2ea539238d8c2dbab897ce2f80b9ab905a108 Fixes: OS#7045 --- M src/gsm/gsm0480.c M tests/ussd/ussd_test.c M tests/ussd/ussd_test.ok 3 files changed, 34 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gsm/gsm0480.c b/src/gsm/gsm0480.c index 7a7f71f..a8eac6b 100644 --- a/src/gsm/gsm0480.c +++ b/src/gsm/gsm0480.c @@ -704,6 +704,8 @@ dcs = uss_req_data[4]; /* Get the amount of bytes */ num_chars = uss_req_data[6]; + if (num_chars > length - 7) + return 0; /* Drop messages with incorrect length */ if (num_chars > GSM0480_USSD_OCTET_STRING_LEN) { diff --git a/tests/ussd/ussd_test.c b/tests/ussd/ussd_test.c index 2b8321d..b131a89 100644 --- a/tests/ussd/ussd_test.c +++ b/tests/ussd/ussd_test.c @@ -41,6 +41,16 @@ 0x05, 0x02, 0x01, 0x24 }; +/* Same REGISTER/ProcessUssReq message as ussd_request[], except the + * USSD-String octet count (index 18) claims 100 bytes while the message + * only ever carries 6. Must be rejected, not read past the buffer end. */ +static const uint8_t ussd_process_uss_req_overflow[] = { + 0x0b, 0x7b, 0x1c, 0x15, 0xa1, 0x13, 0x02, 0x01, + 0x03, 0x02, 0x01, 0x3b, 0x30, 0x0b, 0x04, 0x01, + 0x0f, 0x04, 0x64, 0x2a, 0xd5, 0x4c, 0x16, 0x1b, + 0x01, 0x7f, 0x01, 0x00 +}; + static const uint8_t interrogate_ss[] = { 0x0b, 0x7b, 0x1c, 0x0d, 0xa1, 0x0b, 0x02, 0x01, 0x03, 0x02, 0x01, 0x0e, 0x30, 0x03, 0x04, 0x01, @@ -221,6 +231,23 @@ printf("\n"); } +/* parse_process_uss_req() must reject a USSD-String octet count that + * exceeds the bytes actually remaining in the message, rather than only + * capping it against GSM0480_USSD_OCTET_STRING_LEN and reading past the + * end of the buffer. */ +static void test_process_uss_req_overflow(void) +{ + int rc; + + printf("[i] Testing parse_process_uss_req() against an oversized " + "USSD-String length\n"); + + rc = parse_ussd(ussd_process_uss_req_overflow, sizeof(ussd_process_uss_req_overflow)); + OSMO_ASSERT(rc == 0); + + printf("\n"); +} + int main(int argc, char **argv) { struct ss_request req; @@ -237,6 +264,9 @@ /* Test gsm0480_parse_facility_ie() */ test_parse_facility_ie(); + /* Test parse_process_uss_req() against an oversized length byte */ + test_process_uss_req_overflow(); + memset(&req, 0, sizeof(req)); gsm0480_decode_ss_request((struct gsm48_hdr *) ussd_request, sizeof(ussd_request), &req); diff --git a/tests/ussd/ussd_test.ok b/tests/ussd/ussd_test.ok index 1137080..6e23da3 100644 --- a/tests/ussd/ussd_test.ok +++ b/tests/ussd/ussd_test.ok @@ -12,6 +12,8 @@ [?] Data length: expected 0x01, decoded 0x01 [?] Data: expected 32, decoded 32 +[i] Testing parse_process_uss_req() against an oversized USSD-String length + Tested if it still works. Text was: **321# interrogateSS CFU text..'' code 33 Testing parsing a USSD request and truncated versions -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/43191?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I62a2ea539238d8c2dbab897ce2f80b9ab905a108 Gerrit-Change-Number: 43191 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
1 0
0 0
[S] Change in libosmocore[master]: RFC: sim/class_tables: add a size attribute
by dexter 10 Aug '26

10 Aug '26
Attention is currently required from: laforge, lynxis lazus, pespin. dexter has posted comments on this change by lynxis lazus. ( https://gerrit.osmocom.org/c/libosmocore/+/43178?usp=email ) Change subject: RFC: sim/class_tables: add a size attribute ...................................................................... Patch Set 2: (1 comment) Patchset: PS2: > Then maybe leave the public struct and API there as deprecated, and create a new API with "2" appene […] simtrace2/host/lib/apdu_dispatch.c seems to be an API user of this. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/43178?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iee50063399a0c3b29594e737f44aaa125fd06a2e Gerrit-Change-Number: 43178 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-CC: pespin <pespin(a)sysmocom.de> Gerrit-Attention: laforge <laforge(a)osmocom.org> Gerrit-Attention: pespin <pespin(a)sysmocom.de> Gerrit-Attention: lynxis lazus <lynxis(a)fe80.eu> Gerrit-Comment-Date: Mon, 10 Aug 2026 09:43:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
1 0
0 0
[M] Change in osmo-ttcn3-hacks[master]: eim_Tests: Add testcase to test ESipa/ES9+: CancelSession
by laforge 10 Aug '26

10 Aug '26
Attention is currently required from: dexter. laforge has posted comments on this change by dexter. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43182?usp=email ) Change subject: eim_Tests: Add testcase to test ESipa/ES9+: CancelSession ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43182?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: comment Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iadc9010fcf08de98f7d8c2a5c68bb5ff71bfb1f6 Gerrit-Change-Number: 43182 Gerrit-PatchSet: 1 Gerrit-Owner: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de> Gerrit-Attention: dexter <pmaier(a)sysmocom.de> Gerrit-Comment-Date: Mon, 10 Aug 2026 09:42:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes
1 0
0 0
[S] Change in osmo-ttcn3-hacks[master]: SGP32Definitions_Templates: rename tr/ts_getEimPackageResponse_eimPkg...
by laforge 10 Aug '26

10 Aug '26
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43011?usp=email ) Change subject: SGP32Definitions_Templates: rename tr/ts_getEimPackageResponse_eimPkgErrUndef ...................................................................... SGP32Definitions_Templates: rename tr/ts_getEimPackageResponse_eimPkgErrUndef The template name suffix _eimPkgErrUndef is a bit unflexible. Let's change it to eimPkgErr and add a parameter erroCode with a default value. This allows us to use the template with any eimPackageError. Change-Id: I81b7c3b5ebc8c95d8ea8f1a6030b884ed2efcff3 Related: SYS#8100 --- M ipad/IPAd_Tests.ttcn M library/euicc/SGP32Definitions_Templates.ttcn 2 files changed, 5 insertions(+), 5 deletions(-) Approvals: jolly: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/ipad/IPAd_Tests.ttcn b/ipad/IPAd_Tests.ttcn index cf7ff5e..c999cfb 100644 --- a/ipad/IPAd_Tests.ttcn +++ b/ipad/IPAd_Tests.ttcn @@ -656,7 +656,7 @@ f_http_register(); /* IPAd requests a package, we respond with an eimPackageError code 127 (undefined error) */ - f_esipa_transceive(valueof(ts_getEimPackageResponse_eimPkgErrUndef), tr_getEimPackageRequest); + f_esipa_transceive(valueof(ts_getEimPackageResponse_eimPkgErr(127)), tr_getEimPackageRequest); /* Wait some time until the the last HTTP response is actually delivered */ f_sleep(2.0); diff --git a/library/euicc/SGP32Definitions_Templates.ttcn b/library/euicc/SGP32Definitions_Templates.ttcn index c83dc8e..13110ab 100644 --- a/library/euicc/SGP32Definitions_Templates.ttcn +++ b/library/euicc/SGP32Definitions_Templates.ttcn @@ -333,15 +333,15 @@ /* GSMA SGP.32, section 6.3.2.6 */ template (present) EsipaMessageFromEimToIpa -tr_getEimPackageResponse_eimPkgErrUndef := { +tr_getEimPackageResponse_eimPkgErr(template (present) integer errorCode := ?) := { getEimPackageResponse := { - eimPackageError := ? + eimPackageError := errorCode } } template (value) EsipaMessageFromEimToIpa -ts_getEimPackageResponse_eimPkgErrUndef := { +ts_getEimPackageResponse_eimPkgErr(template (value) integer errorCode := 127) := { getEimPackageResponse := { - eimPackageError := 127 + eimPackageError := errorCode } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43011?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I81b7c3b5ebc8c95d8ea8f1a6030b884ed2efcff3 Gerrit-Change-Number: 43011 Gerrit-PatchSet: 6 Gerrit-Owner: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: jolly <andreas(a)eversberg.eu> Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
1 0
0 0
[XS] Change in osmo-ttcn3-hacks[master]: eim/testenv: re-align path to restop.py
by laforge 10 Aug '26

10 Aug '26
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43147?usp=email ) ( 1 is the latest approved patch-set. No files were changed between the latest approved patch-set and the submitted one. )Change subject: eim/testenv: re-align path to restop.py ...................................................................... eim/testenv: re-align path to restop.py The location of restop.py in the onomondo-eim git repository has changed. This patch re-alignes the path. Related: SYS#8100 Depends: onomondo-eim.git I4e42ce85c84b47d3561011083da4a1e54958fd8e Change-Id: I23b3085b4af8ed51c24f4b50385617e81f17a434 --- M eim/testenv.cfg 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified jolly: Looks good to me, approved diff --git a/eim/testenv.cfg b/eim/testenv.cfg index fd578e9..bf404f5 100644 --- a/eim/testenv.cfg +++ b/eim/testenv.cfg @@ -1,7 +1,7 @@ [testsuite] program=eIM_Tests config=eIM_Tests.cfg -copy=../../onomondo-eim/contrib/restop.py ../ipad/example_ca/pki/private/alttest.key ../ipad/example_ca/pki/issued/alttest.crt +copy=../../onomondo-eim/contrib/rest_api_usage_example/restop.py ../ipad/example_ca/pki/private/alttest.key ../ipad/example_ca/pki/issued/alttest.crt [eim] program=onomondo-eim -c "$TESTENV_INSTALL_DIR"/etc/osmocom/onomondo-eim.config -r "$TESTENV_INSTALL_DIR"/usr/lib/onomondo-eim -m ./mnesia_db -l debug -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43147?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I23b3085b4af8ed51c24f4b50385617e81f17a434 Gerrit-Change-Number: 43147 Gerrit-PatchSet: 3 Gerrit-Owner: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: jolly <andreas(a)eversberg.eu> Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
1 0
0 0
[M] Change in osmo-ttcn3-hacks[master]: eIM_Tests: add testcase to test stateChangeCause/stateChangeCause
by laforge 10 Aug '26

10 Aug '26
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43012?usp=email ) Change subject: eIM_Tests: add testcase to test stateChangeCause/stateChangeCause ...................................................................... eIM_Tests: add testcase to test stateChangeCause/stateChangeCause The IPAd may pass a stateChangeCause with the getEimPackageRequest. The stateChangeCause is then recorded by the eIM and can be queried via the REST API. This patch adds a testcase to verify that functionality. Related: SYS#8100 Change-Id: I6befc43f2dfd2178e352b9ab0a24a04d6e116fbb --- M eim/REST_Types_JSON.ttcn M eim/eIM_Tests.ttcn M library/euicc/SGP32Definitions.asn M library/euicc/SGP32Definitions_Templates.ttcn 4 files changed, 94 insertions(+), 11 deletions(-) Approvals: laforge: Looks good to me, approved jolly: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/eim/REST_Types_JSON.ttcn b/eim/REST_Types_JSON.ttcn index b82bea0..0a34939 100644 --- a/eim/REST_Types_JSON.ttcn +++ b/eim/REST_Types_JSON.ttcn @@ -74,14 +74,24 @@ octetstring tagList }; -type union JSON_REST_Euicc { + +type union JSON_REST_Euicc_State { integer counterValue, boolean consumerEuicc, integer associationToken, octetstring signAlgo, - octetstring signPubKey + octetstring signPubKey, + record of charstring stateChangeCauseList }; +type union JSON_REST_Euicc { + record of JSON_REST_Euicc_State set_, + record of charstring get +} with { + variant(set_) "JSON:name as set"; +}; + + type record JSON_REST_Resource { charstring eidValue, union { @@ -89,7 +99,7 @@ record of JSON_REST_Psmo psmo, record of JSON_REST_Eco eco, JSON_REST_Edr edr, - record of JSON_REST_Euicc euicc + JSON_REST_Euicc euicc } order }; @@ -160,7 +170,7 @@ charstring finalResult, charstring iccid optional } profileInstallationResult, - charstring euiccUpdateResult, + record of JSON_REST_Euicc_State euiccStateResult, record { charstring edrResult, record { @@ -178,11 +188,13 @@ } euiccDataResult } +type record of JSON_REST_Result JSON_REST_Results; + type record JSON_REST_Response_long { charstring status, charstring timestamp, JSON_REST_Resource resource, - record of JSON_REST_Result outcome, + JSON_REST_Results outcome, charstring debuginfo }; @@ -219,12 +231,12 @@ } -template (present) JSON_REST_Response tr_JSON_REST_success := { +template (present) JSON_REST_Response tr_JSON_REST_success(template JSON_REST_Results outcome := ?) := { long := { status := "done", timestamp := ?, resource := ?, - outcome := ?, + outcome := outcome, debuginfo := ? } } @@ -317,6 +329,16 @@ order := { edr := { tagList := tagList } } } +template (value) JSON_REST_Resource ts_JSON_REST_euicc_set_order(octetstring eidValue, JSON_REST_Euicc_State setValue) := { + eidValue := oct2str(eidValue), + order := { euicc := { set_ := { setValue } } } +} + +template (value) JSON_REST_Resource ts_JSON_REST_euicc_get_order(octetstring eidValue, charstring stateName) := { + eidValue := oct2str(eidValue), + order := { euicc := { get := { stateName } } } +} + } with { encode "JSON"; } diff --git a/eim/eIM_Tests.ttcn b/eim/eIM_Tests.ttcn index f84b406..ba3855a 100644 --- a/eim/eIM_Tests.ttcn +++ b/eim/eIM_Tests.ttcn @@ -297,7 +297,7 @@ } } - if (not istemplatekind(expected_rest_res, "omit") and not match(rest_res, tr_JSON_REST_success)) { + if (not istemplatekind(expected_rest_res, "omit") and not match(rest_res, expected_rest_res)) { setverdict(fail, "unexpected REST lookup result from eIM"); } @@ -894,6 +894,59 @@ setverdict(pass); } +/* (see also above) Test enable PSMO */ +private function f_TC_proc_notifyStateChange(charstring id) runs on eIM_ConnHdlr { + var charstring resource_id; + var HTTP_Adapter_Params http_adapter_pars; + var template EsipaMessageFromEimToIpa esipa_res; + var JSON_REST_Euicc_State euiccState; + var JSON_REST_Result outcome; + + f_http_register(); + + f_init_pipe(); + http_adapter_pars := { + http_host := mp_esipa_ip, + http_port := mp_esipa_port, + use_ssl := not mp_esipa_disable_ssl + }; + f_http_init(http_adapter_pars); + + /* Ensure that the stateChangeCauseList at the eIM is empty, for that we set the stateChangeCauseList to an + * empty list. */ + euiccState.stateChangeCauseList := {}; + outcome.euiccStateResult := { euiccState }; + resource_id := f_rest_create_order("euicc", ts_JSON_REST_euicc_set_order(eID, euiccState)); + f_sleep(1.5); + f_rest_lookup_resource(resource_id, "euicc", tr_JSON_REST_success({outcome})); + f_rest_delete_resource(resource_id, "euicc"); + + /* Check the eIM for new eIM packages and set notifyStateChange/stateChangeCause. Since we haven't issued any + * orders we expect an eimPackageError (noEimPackageAvailable) */ + esipa_res := f_esipa_transceive(valueof(ts_getEimPackageRequest(eID, notifyStateChange := NULL, stateChangeCause := 6)), + tr_getEimPackageResponse_eimPkgErr(1)); + + /* After the getEimPackageRequest, we expect to find the stateChangeCause in the stateChangeCauseList */ + euiccState.stateChangeCauseList := { "deviceChange" }; + outcome.euiccStateResult := { euiccState }; + resource_id := f_rest_create_order("euicc", ts_JSON_REST_euicc_get_order(eID, "stateChangeCauseList")); + f_sleep(1.5); + f_rest_lookup_resource(resource_id, "euicc", tr_JSON_REST_success({outcome})); + f_rest_delete_resource(resource_id, "euicc"); + + f_sleep(2.0); + setverdict(pass); +} +testcase TC_proc_notifyStateChange() runs on MTC_CT { + var charstring id := testcasename(); + var eIM_ConnHdlrPars pars := f_init_pars(); + var eIM_ConnHdlr vc_conn; + f_init(id); + vc_conn := f_start_handler(refers(f_TC_proc_notifyStateChange), pars); + vc_conn.done; + setverdict(pass); +} + control { execute ( TC_proc_indirect_prfle_dwnld() ); execute ( TC_proc_euicc_pkg_dwnld_exec_enable_psmo() ); @@ -912,6 +965,7 @@ execute ( TC_proc_euicc_pkg_dwnld_exec_listEim_eco() ); execute ( TC_proc_euicc_data_req() ); execute ( TC_proc_euicc_data_req_err() ); + execute ( TC_proc_notifyStateChange() ); } } diff --git a/library/euicc/SGP32Definitions.asn b/library/euicc/SGP32Definitions.asn index 69c3bf3..93b31b2 100644 --- a/library/euicc/SGP32Definitions.asn +++ b/library/euicc/SGP32Definitions.asn @@ -8,6 +8,11 @@ IMPORTS Certificate, SubjectPublicKeyInfo FROM PKIX1Explicit88 {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit(18)} SubjectKeyIdentifier FROM PKIX1Implicit88 {iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-implicit(19)} CancelSessionReason, ServerSigned1, RspCapability, Iccid, TransactionId, ProfileInfoListRequest, RulesAuthorisationTable, EUICCInfo1, DeviceInfo, VersionType, UICCCapability, PprIds, CertificationDataObject, Octet1, Octet16, Octet32, PrepareDownloadResponseOk, PrepareDownloadResponseError, AuthenticateResponseError, CtxParams1, ProfileInstallationResultData, OtherSignedNotification, EuiccSignPIR, ErrorResult, NotificationMetadata, CancelSessionResponseOk, SmdpSigned2, BoundProfilePackage, NotificationEvent, VendorSpecificExtension, DpProprietaryData, OperatorId, NotificationConfigurationInformation, ProfileClass, IconType, ProfileState, OctetTo16 FROM RSPDefinitions {joint-iso-itu-t(2) international-organizations(23) gsma(146) rsp(1) asn1modules(1) sgp22v2(2)}; + +-- workaround for TTCN3, define a usable "AsnNull" type since "NULL" cannot be used as a type when defining template +-- parameters. +AsnNull ::= NULL + EuiccPackageRequest ::= [81] SEQUENCE { -- Tag ' BF51', #SupportedForPsmoV1.0.0# euiccPackageSigned EuiccPackageSigned, eimSignature [APPLICATION 55] OCTET STRING -- Tag '5F37' diff --git a/library/euicc/SGP32Definitions_Templates.ttcn b/library/euicc/SGP32Definitions_Templates.ttcn index 13110ab..bdc5fba 100644 --- a/library/euicc/SGP32Definitions_Templates.ttcn +++ b/library/euicc/SGP32Definitions_Templates.ttcn @@ -272,11 +272,13 @@ } } template (value) EsipaMessageFromIpaToEim -ts_getEimPackageRequest(template (value) octetstring eidValue) := { +ts_getEimPackageRequest(template (value) octetstring eidValue, + template (omit) AsnNull notifyStateChange := omit, + template (omit) integer stateChangeCause := omit) := { getEimPackageRequest := { eidValue := eidValue, - notifyStateChange := omit, - stateChangeCause := omit, + notifyStateChange := notifyStateChange, + stateChangeCause := stateChangeCause, rPLMN := omit } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43012?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6befc43f2dfd2178e352b9ab0a24a04d6e116fbb Gerrit-Change-Number: 43012 Gerrit-PatchSet: 6 Gerrit-Owner: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: jolly <andreas(a)eversberg.eu> Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
1 0
0 0
[XS] Change in osmo-ttcn3-hacks[master]: SGP32Definitions: remove wrong comment about workaround
by laforge 10 Aug '26

10 Aug '26
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43179?usp=email ) Change subject: SGP32Definitions: remove wrong comment about workaround ...................................................................... SGP32Definitions: remove wrong comment about workaround This patch removes a misplaced workaround comment. The ASN.1 structures in questions are equal to the original spec and were not modified. Related: SYS#8100 Change-Id: Id54ba6a1541c8d667e0381239fa850175609ab85 --- M library/euicc/SGP32Definitions.asn 1 file changed, 0 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/library/euicc/SGP32Definitions.asn b/library/euicc/SGP32Definitions.asn index 93b31b2..dcfe1c5 100644 --- a/library/euicc/SGP32Definitions.asn +++ b/library/euicc/SGP32Definitions.asn @@ -608,11 +608,9 @@ parametersNotAvailable(1), undefinedError(127) } --- workaround for erlang asn1ct: remove already specified context-specific tag SGP32-SetDefaultDpAddressRequest ::= [101] SEQUENCE { -- Tag 'BF65' defaultDpAddress UTF8String -- Default SM-DP+ address as an FQDN } --- workaround for erlang asn1ct: remove already specified context-specific tag SGP32-SetDefaultDpAddressResponse ::= [101] SEQUENCE { -- Tag 'BF65' setDefaultDpAddressResult INTEGER { ok (0), undefinedError (127)} } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43179?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id54ba6a1541c8d667e0381239fa850175609ab85 Gerrit-Change-Number: 43179 Gerrit-PatchSet: 2 Gerrit-Owner: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
1 0
0 0
[XS] Change in osmo-ttcn3-hacks[master]: SGP32Definitions_Templates: fix template tr_smdpSigned2
by laforge 10 Aug '26

10 Aug '26
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43180?usp=email ) Change subject: SGP32Definitions_Templates: fix template tr_smdpSigned2 ...................................................................... SGP32Definitions_Templates: fix template tr_smdpSigned2 The member bppEuiccOtpk is currently expected to be always present with any value (?), which is not correct since it is an optional parameter (*). Change-Id: I660838e47334a9dc9eb12b967e7f92b465e86eb2 Related: SYS#8100 --- M library/euicc/RSPDefinitions_Templates.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/library/euicc/RSPDefinitions_Templates.ttcn b/library/euicc/RSPDefinitions_Templates.ttcn index 8c3886e..b7ea50c 100644 --- a/library/euicc/RSPDefinitions_Templates.ttcn +++ b/library/euicc/RSPDefinitions_Templates.ttcn @@ -200,7 +200,7 @@ template (present) boolean ccRequiredFlag := ?) := { transactionId := transactionId, ccRequiredFlag := ccRequiredFlag, - bppEuiccOtpk := ? + bppEuiccOtpk := * } template (value) SmdpSigned2 ts_smdpSigned2(template (value) octetstring transactionId := 'ABCDEF'O, template (value) boolean ccRequiredFlag := false) := { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43180?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I660838e47334a9dc9eb12b967e7f92b465e86eb2 Gerrit-Change-Number: 43180 Gerrit-PatchSet: 2 Gerrit-Owner: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
1 0
0 0
[L] Change in osmo-ttcn3-hacks[master]: SGP32Definitions_Templates: rework templates, imrove flexibilty
by laforge 10 Aug '26

10 Aug '26
laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43181?usp=email ) Change subject: SGP32Definitions_Templates: rework templates, imrove flexibilty ...................................................................... SGP32Definitions_Templates: rework templates, imrove flexibilty The templates in their current form where originally developed to generate and match messages for the ASN.1 ESipa interface. This interface uses a top-level envelope structure for sending and receiving messages (EsipaMessageFromIpaToEim and EsipaMessageFromEimToIpa). The JSON ESipa interface is different. Here the top level envelope is a JSON formatted body whith Base64 encoded ASN.1 mebers. Those members have to be encoded and decoded by accessing ASN.1 structures below the top-level envelope structure directly. Unfortunately the current templates do not provide the required flexibility for that. With this patch we rework the templates to be more flexible and open, so that we can integrate JSON ESipa bindings into the eIM testsuite with a follow-up patch. Related: SYS#8100 Change-Id: I69a29b30578b0280006c2655b20c2a4eb62f5e75 --- M eim/eIM_Tests.ttcn M ipad/IPAd_Tests.ttcn M library/euicc/SGP32Definitions_Templates.ttcn 3 files changed, 309 insertions(+), 260 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/eim/eIM_Tests.ttcn b/eim/eIM_Tests.ttcn index ba3855a..26fe2bf 100644 --- a/eim/eIM_Tests.ttcn +++ b/eim/eIM_Tests.ttcn @@ -490,7 +490,7 @@ /* Check the eIM for new eIM packages, we expect to get a profileDownloadTriggerRequest that contains the * activationCode that we have created the download with (see above) */ esipa_res := f_esipa_transceive(valueof(ts_getEimPackageRequest(eID)), - tr_getEimPackageResponse_dnlTrigReq(activationCode)); + tr_getEimPackageResponse_dnlTrigReq(tr_profileDownloadTriggerRequest(activationCode))); eimTransactionId := valueof(esipa_res.getEimPackageResponse.profileDownloadTriggerRequest.eimTransactionId); /* Perform common mutial authentication procedure */ @@ -502,7 +502,7 @@ f_esipa_receive(tr_getBoundProfilePackageResponseEsipa); /* Handle notification */ - f_esipa_send(valueof(ts_handleNotificationEsipa_prfleInstRslt(notificationAddress := smdpp_add))); + f_esipa_send(valueof(ts_handleNotificationEsipa_pendingNotif(ts_SGP32_pendingNotification_prfleInstRslt(notificationAddress := smdpp_add)))); f_es9p_transceive_empty_response(tr_handleNotification); f_rest_lookup_resource(resource_id, "download", tr_JSON_REST_success); @@ -548,7 +548,7 @@ /* Check the eIM for new eIM packages, we expect to get an euiccPackageRequest that contains the PSMO * that we have created (see above) */ esipa_res := f_esipa_transceive(valueof(ts_getEimPackageRequest(str2oct(order.eidValue))), - tr_getEimPackageResponse_euiccPkgReq(euiccPackage)); + tr_getEimPackageResponse_euiccPkgReq(tr_euiccPackageRequest(euiccPackage))); /* The eIM will generate a counterValue and an eimTransactionId, both must be echoed in the response. */ euiccPackageResult.euiccPackageResultSigned.euiccPackageResultDataSigned.counterValue := @@ -557,7 +557,7 @@ esipa_res.getEimPackageResponse.euiccPackageRequest.euiccPackageSigned.eimTransactionId; /* Respond with a plausible EimPackage result */ - f_esipa_transceive(valueof(ts_provideEimPackageResult_ePRAndNotif(eID, euiccPackageResult)), + f_esipa_transceive(valueof(ts_provideEimPackageResult(eID, ts_eimPackageResult_ePRAndNotif(euiccPackageResult))), tr_provideEimPackageResultResponse_empty); f_rest_lookup_resource(resource_id, facility, tr_JSON_REST_success); @@ -833,7 +833,7 @@ eimTransactionId := valueof(esipa_res.getEimPackageResponse.ipaEuiccDataRequest.eimTransactionId); /* Provide a plausible ipaEuiccDataResponse to the eIM */ - f_esipa_transceive(valueof(ts_provideEimPackageResult_euiccDataResp(eID, eimTransactionId)), + f_esipa_transceive(valueof(ts_provideEimPackageResult(eID, ts_eimPackageResult_euiccDataResp(eimTransactionId))), tr_provideEimPackageResultResponse_empty); f_rest_lookup_resource(resource_id, "edr", tr_JSON_REST_success); @@ -878,7 +878,7 @@ eimTransactionId := valueof(esipa_res.getEimPackageResponse.ipaEuiccDataRequest.eimTransactionId); /* Provide a plausible ipaEuiccDataResponse to the eIM */ - f_esipa_transceive(valueof(ts_provideEimPackageResult_euiccDataResp_err(eID, eimTransactionId)), + f_esipa_transceive(valueof(ts_provideEimPackageResult(eID, ts_eimPackageResult_euiccDataResp_err(eimTransactionId))), tr_provideEimPackageResultResponse_empty); f_rest_lookup_resource(resource_id, "edr", tr_JSON_REST_success(outcome := expected_outcome) ); diff --git a/ipad/IPAd_Tests.ttcn b/ipad/IPAd_Tests.ttcn index c999cfb..ce744d0 100644 --- a/ipad/IPAd_Tests.ttcn +++ b/ipad/IPAd_Tests.ttcn @@ -409,7 +409,7 @@ /* Step #5-#10 */ esipa_req := f_esipa_receive(tr_initiateAuthenticationRequestEsipa); - esipa_res := valueof(ts_initiateAuthenticationResponseEsipa(euiccChallenge := esipa_req.initiateAuthenticationRequestEsipa.euiccChallenge)); + esipa_res := valueof(ts_initiateAuthenticationResponseEsipa(serverSigned1 := ts_serverSigned1(euiccChallenge := esipa_req.initiateAuthenticationRequestEsipa.euiccChallenge))); f_esipa_send(esipa_res); /* Step #11-#14 */ @@ -482,7 +482,7 @@ f_vpcd_transceive(enc_ImmediateEnableResponse(valueof(ts_immediateEnableResponse))); /* Receive ProfileInstallationResult from iPAD->eIM */ - f_esipa_transceive_empty_response(tr_handleNotificationEsipa_prfleInstRslt); + f_esipa_transceive_empty_response(tr_handleNotificationEsipa_pendingNotif(tr_SGP32_pendingNotification_prfleInstRslt)); /* Receive RemoveNotificationFromList from iPAD->eUICC */ f_vpcd_transceive(enc_NotificationSentResponse(valueof(ts_notificationSentResponse))); @@ -522,7 +522,7 @@ /* Step #10-14 */ f_esipa_transceive(valueof(ts_provideEimPackageResultResponse_eimAck(eimAcknowledgements := {1,2,3,4})), - tr_provideEimPackageResult_ePRAndNotif); + tr_provideEimPackageResult(*, tr_eimPackageResult_ePRAndNotif)); /* Step #15-17 */ f_vpcd_transceive(enc_NotificationSentResponse(valueof(ts_notificationSentResponse))); @@ -580,7 +580,7 @@ /* Step #10-14 */ f_esipa_transceive(valueof(ts_provideEimPackageResultResponse_eimAck(eimAcknowledgements := {1,2,3,4})), - tr_provideEimPackageResult_ePRAndNotif(euiccPackageResult := ?)); + tr_provideEimPackageResult(*, tr_eimPackageResult_ePRAndNotif(euiccPackageResult := ?))); /* Step #15-17 */ f_vpcd_transceive(enc_NotificationSentResponse(valueof(ts_notificationSentResponse))); @@ -628,7 +628,7 @@ /* IPAd will return the data to us */ f_esipa_transceive(valueof(ts_provideEimPackageResultResponse_eimAck(eimAcknowledgements := {1,2,3,4})), - tr_provideEimPackageResult_euiccDataResp); + tr_provideEimPackageResult(*, tr_eimPackageResult_euiccDataResp)); /* Wait some time until the the last HTTP response is actually delivered */ f_sleep(2.0); diff --git a/library/euicc/SGP32Definitions_Templates.ttcn b/library/euicc/SGP32Definitions_Templates.ttcn index bdc5fba..6722e11 100644 --- a/library/euicc/SGP32Definitions_Templates.ttcn +++ b/library/euicc/SGP32Definitions_Templates.ttcn @@ -83,37 +83,43 @@ /* GSMA SGP.32, section 6.3.2.1 */ template (present) EsipaMessageFromEimToIpa -tr_initiateAuthenticationResponseEsipa(template (present) octetstring euiccChallenge := ?, - template (present) universal charstring serverAddress := ?) := { +tr_initiateAuthenticationResponseEsipa(template octetstring transactionId := *, + template (present) ServerSigned1 serverSigned1 := tr_serverSigned1, + template (present) octetstring serverSignature1 := ?, + template (present) octetstring euiccCiPKIdentifierToBeUsed := ?, + template (present) Certificate serverCertificate := ?, + template charstring matchingId := *, + template CtxParams1 ctxParams1 := *) := { initiateAuthenticationResponseEsipa := { initiateAuthenticationOkEsipa := { - transactionId := *, - serverSigned1 := tr_serverSigned1(euiccChallenge := euiccChallenge, serverAddress := serverAddress), - serverSignature1 := ?, - euiccCiPKIdentifierToBeUsed := ?, + transactionId := transactionId, + serverSigned1 := serverSigned1, + serverSignature1 := serverSignature1, + euiccCiPKIdentifierToBeUsed := euiccCiPKIdentifierToBeUsed, serverCertificate := ?, - matchingId := *, - ctxParams1 := * + matchingId := matchingId, + ctxParams1 := ctxParams1 } } } - template (value) EsipaMessageFromEimToIpa -ts_initiateAuthenticationResponseEsipa(template (value) octetstring euiccChallenge := '00112233445566778899AABBCCDDEEFF'O, - template (value) universal charstring serverAddress := "smdp.example.com") := { +ts_initiateAuthenticationResponseEsipa(template (omit) octetstring transactionId := omit, + template (value) ServerSigned1 serverSigned1 := ts_serverSigned1, + template (value) octetstring serverSignature1 := '5252525252525252525252525252525252525252525252525252525252525252 + 5353535353535353535353535353535353535353535353535353535353535353'O, + template (value) octetstring euiccCiPKIdentifierToBeUsed := 'F54172BDF98A95D65CBEB88A38A1C11D800A85C3'O /* NIST */, + template (value) Certificate serverCertificate := ts_cert_s_sm_dpauth_nist, + template (omit) universal charstring matchingId := omit, + template (omit) CtxParams1 ctxParams1 := omit) := { initiateAuthenticationResponseEsipa := { initiateAuthenticationOkEsipa := { - transactionId := omit, - serverSigned1 := ts_serverSigned1(euiccChallenge := euiccChallenge, serverAddress := serverAddress), - serverSignature1 := '5252525252525252525252525252525252525252525252525252525252525252 - 5353535353535353535353535353535353535353535353535353535353535353'O, - euiccCiPKIdentifierToBeUsed := 'F54172BDF98A95D65CBEB88A38A1C11D800A85C3'O, /* NIST */ - serverCertificate := ts_cert_s_sm_dpauth_nist, -// serverCertificate := ts_cert_s_sm_dpauth_brp, -// serverCertificate := ts_cert_s_sm_dp2auth_nist, -// serverCertificate := ts_cert_s_sm_dp2auth_brp, - matchingId := omit, - ctxParams1 := omit + transactionId := transactionId, + serverSigned1 := serverSigned1, + serverSignature1 := serverSignature1, + euiccCiPKIdentifierToBeUsed := euiccCiPKIdentifierToBeUsed, + serverCertificate := serverCertificate, + matchingId := matchingId, + ctxParams1 := ctxParams1 } } } @@ -164,28 +170,39 @@ euiccInfo2 := euiccInfo2, ctxParams1 := ctxParams1 } +template (present) SGP32_AuthenticateServerResponse +tr_SGP32_authenticateServerResponse := { + authenticateResponseOk := { + euiccSigned1 := tr_euiccSigned1, + euiccSignature1 := ?, + euiccCertificate := ?, + eumCertificate := ? + } +} +template (value) SGP32_AuthenticateServerResponse +ts_SGP32_authenticateServerResponse := { + authenticateResponseOk := { + euiccSigned1 := ts_euiccSigned1, + euiccSignature1 := '5252525252525252525252525252525252525252525252525252525252525252 + 5353535353535353535353535353535353535353535353535353535353535353'O, + euiccCertificate := ts_cert_euicc_nist, + eumCertificate := ts_cert_eum_nist + } +} template (present) EsipaMessageFromIpaToEim -tr_authenticateClientRequestEsipa := { +tr_authenticateClientRequestEsipa(template (present) octetstring transactionId := ?, + template (present) SGP32_AuthenticateServerResponse authenticateServerResponse := tr_SGP32_authenticateServerResponse) := { authenticateClientRequestEsipa := { - transactionId := ?, - authenticateServerResponse := { - authenticateResponseOk := ? - } + transactionId := transactionId, + authenticateServerResponse := authenticateServerResponse } } template (value) EsipaMessageFromIpaToEim -ts_authenticateClientRequestEsipa(template (value) octetstring transactionId := 'ABCDEF'O) := { +ts_authenticateClientRequestEsipa(template (value) octetstring transactionId := 'ABCDEF'O, + template (value) SGP32_AuthenticateServerResponse authenticateServerResponse := ts_SGP32_authenticateServerResponse) := { authenticateClientRequestEsipa := { transactionId := transactionId, - authenticateServerResponse := { - authenticateResponseOk := { - euiccSigned1 := ts_euiccSigned1, - euiccSignature1 := '5252525252525252525252525252525252525252525252525252525252525252 - 5353535353535353535353535353535353535353535353535353535353535353'O, - euiccCertificate := ts_cert_euicc_nist, - eumCertificate := ts_cert_eum_nist - } - } + authenticateServerResponse := authenticateServerResponse } } @@ -223,40 +240,39 @@ /* GSMA SGP.32, section 6.3.2.2 */ template (present) EsipaMessageFromEimToIpa -tr_authenticateClientResponseEsipa_dpe(template (present) octetstring transactionId := ?) := { +tr_authenticateClientResponseEsipa_dpe(template octetstring transactionId := *, + template SGP32_StoreMetadataRequest profileMetaData := *, + template (present) SmdpSigned2 smdpSigned2 := tr_smdpSigned2, + template (present) octetstring smdpSignature2 := ?, + template (present) Certificate smdpCertificate := ?, + template octetstring hashCc := *) := { authenticateClientResponseEsipa := { authenticateClientOkDPEsipa := { transactionId := transactionId, - profileMetaData := *, - smdpSigned2 := { - transactionId := ?, - ccRequiredFlag := ?, - bppEuiccOtpk := * - }, - smdpSignature2 := ?, - smdpCertificate := ?, - hashCc := * + profileMetaData := profileMetaData, + smdpSigned2 := smdpSigned2, + smdpSignature2 := smdpSignature2, + smdpCertificate := smdpCertificate, + hashCc := hashCc } } } template (value) EsipaMessageFromEimToIpa -ts_authenticateClientResponseEsipa_dpe(template (value) octetstring transactionId := 'ABCDEF'O) := { +ts_authenticateClientResponseEsipa_dpe(template (omit) octetstring transactionId := omit, + template (omit) SGP32_StoreMetadataRequest profileMetaData := omit, + template (value) SmdpSigned2 smdpSigned2 := ts_smdpSigned2, + template (value) octetstring smdpSignature2 := '5252525252525252525252525252525252525252525252525252525252525252 + 5353535353535353535353535353535353535353535353535353535353535353'O, + template (value) Certificate smdpCertificate := ts_cert_s_sm_dpauth_nist, + template (omit) octetstring hashCc := omit) := { authenticateClientResponseEsipa := { authenticateClientOkDPEsipa := { transactionId := transactionId, - profileMetaData := omit, - smdpSigned2 := { - transactionId := transactionId, - ccRequiredFlag := false, - bppEuiccOtpk := omit - }, - smdpSignature2 := '5252525252525252525252525252525252525252525252525252525252525252 - 5353535353535353535353535353535353535353535353535353535353535353'O, - smdpCertificate := ts_cert_s_sm_dpauth_nist, -// smdpCertificate := ts_cert_s_sm_dpauth_brp, -// smdpCertificate := ts_cert_s_sm_dp2auth_nist, -// smdpCertificate := ts_cert_s_sm_dp2auth_brp, - hashCc := omit + profileMetaData := profileMetaData, + smdpSigned2 := smdpSigned2, + smdpSignature2 := smdpSignature2, + smdpCertificate := smdpCertificate, + hashCc := hashCc } } } @@ -274,62 +290,71 @@ template (value) EsipaMessageFromIpaToEim ts_getEimPackageRequest(template (value) octetstring eidValue, template (omit) AsnNull notifyStateChange := omit, - template (omit) integer stateChangeCause := omit) := { + template (omit) integer stateChangeCause := omit, + template (omit) octetstring rPLMN := omit) := { getEimPackageRequest := { eidValue := eidValue, notifyStateChange := notifyStateChange, stateChangeCause := stateChangeCause, - rPLMN := omit + rPLMN := rPLMN } } /* GSMA SGP.32, section 6.3.2.6 and 2.11.1.3 */ +template (present) ProfileDownloadTriggerRequest +tr_profileDownloadTriggerRequest(template (present) charstring activationCode := ?) := { + profileDownloadData := { + activationCode := activationCode + }, + eimTransactionId := * +} +template (value) ProfileDownloadTriggerRequest +ts_profileDownloadTriggerRequest(template (value) charstring activationCode := "1$SMDP.EXAMPLE.COM$$1.3.6.1.4.1.31746") := { + profileDownloadData := { + activationCode := activationCode + }, + eimTransactionId := omit +} template (present) EsipaMessageFromEimToIpa -tr_getEimPackageResponse_dnlTrigReq(template (present) charstring activationCode := ?) := { +tr_getEimPackageResponse_dnlTrigReq(template (present) ProfileDownloadTriggerRequest profileDownloadTriggerRequest := tr_profileDownloadTriggerRequest) := { getEimPackageResponse := { - profileDownloadTriggerRequest := { - profileDownloadData := { - activationCode := activationCode - }, - eimTransactionId := * - } + profileDownloadTriggerRequest := profileDownloadTriggerRequest } } template (value) EsipaMessageFromEimToIpa -ts_getEimPackageResponse_dnlTrigReq(template (value) charstring activationCode := "1$SMDP.EXAMPLE.COM$$1.3.6.1.4.1.31746") := { +ts_getEimPackageResponse_dnlTrigReq(template (value) ProfileDownloadTriggerRequest profileDownloadTriggerRequest := ts_profileDownloadTriggerRequest) := { getEimPackageResponse := { - profileDownloadTriggerRequest := { - profileDownloadData := { - activationCode := activationCode - }, - eimTransactionId := omit - } + profileDownloadTriggerRequest := profileDownloadTriggerRequest } } /* GSMA SGP.32, section 6.3.2.6 and 2.11.1.2 */ +template (present) IpaEuiccDataRequest +tr_ipaEuiccDataRequest := { + tagList := ?, + euiccCiPKIdentifierToBeUsed := *, + searchCriteriaNotification := *, + searchCriteriaEuiccPackageResult := *, + eimTransactionId := * +} +template (value) IpaEuiccDataRequest +ts_ipaEuiccDataRequest := { + tagList := '81BF20BF228384A5A6A8A9A0'O, + euiccCiPKIdentifierToBeUsed := omit, + searchCriteriaNotification := omit, + searchCriteriaEuiccPackageResult := omit, + eimTransactionId := omit +} template (present) EsipaMessageFromEimToIpa -tr_getEimPackageResponse_euiccDataReq := { +tr_getEimPackageResponse_euiccDataReq(template (present) IpaEuiccDataRequest ipaEuiccDataRequest := tr_ipaEuiccDataRequest) := { getEimPackageResponse := { - ipaEuiccDataRequest := { - tagList := ?, - euiccCiPKIdentifierToBeUsed := *, - searchCriteriaNotification := *, - searchCriteriaEuiccPackageResult := *, - eimTransactionId := * - } + ipaEuiccDataRequest := ipaEuiccDataRequest } } template (value) EsipaMessageFromEimToIpa -ts_getEimPackageResponse_euiccDataReq := { +ts_getEimPackageResponse_euiccDataReq(template (value) IpaEuiccDataRequest ipaEuiccDataRequest := ts_ipaEuiccDataRequest) := { getEimPackageResponse := { - ipaEuiccDataRequest := { - tagList := '81BF20BF228384A5A6A8A9A0'O, - euiccCiPKIdentifierToBeUsed := omit, - searchCriteriaNotification := omit, - searchCriteriaEuiccPackageResult := omit, - eimTransactionId := omit - } + ipaEuiccDataRequest := ipaEuiccDataRequest } } @@ -629,55 +654,65 @@ } /* GSMA SGP.32, section 6.3.2.6 */ +template (present) EuiccPackageRequest +tr_euiccPackageRequest(template (present) EuiccPackage euiccPackage := tr_euiccPackage_enablePsmo) := { + euiccPackageSigned := { + eimId := ?, + eidValue := ?, + counterValue := ?, + eimTransactionId := *, + euiccPackage := euiccPackage + }, + eimSignature := ? +} +template (value) EuiccPackageRequest +ts_euiccPackageRequest(template (value) EuiccPackage euiccPackage := ts_euiccPackage_enablePsmo) := { + euiccPackageSigned := { + eimId := "myEim", + eidValue := '00112233445566778899AABBCCDDEEFF'O, + counterValue := 123, + eimTransactionId := omit, + euiccPackage := euiccPackage + }, + eimSignature := '5252525252525252525252525252525252525252525252525252525252525252 + 5353535353535353535353535353535353535353535353535353535353535353'O +} template (present) EsipaMessageFromEimToIpa -tr_getEimPackageResponse_euiccPkgReq(template (present) EuiccPackage euiccPackage := tr_euiccPackage_enablePsmo) := { +tr_getEimPackageResponse_euiccPkgReq(template (present) EuiccPackageRequest euiccPackageRequest := tr_euiccPackageRequest) := { getEimPackageResponse := { - euiccPackageRequest := { - euiccPackageSigned := { - eimId := ?, - eidValue := ?, - counterValue := ?, - eimTransactionId := *, - euiccPackage := euiccPackage - }, - eimSignature := ? - } + euiccPackageRequest := euiccPackageRequest } } template (value) EsipaMessageFromEimToIpa -ts_getEimPackageResponse_euiccPkgReq(template (value) EuiccPackage euiccPackage := ts_euiccPackage_enablePsmo) := { +ts_getEimPackageResponse_euiccPkgReq(template (value) EuiccPackageRequest euiccPackageRequest := ts_euiccPackageRequest) := { getEimPackageResponse := { - euiccPackageRequest := { - euiccPackageSigned := { - eimId := "myEim", - eidValue := '00112233445566778899AABBCCDDEEFF'O, - counterValue := 123, - eimTransactionId := omit, - euiccPackage := euiccPackage - }, - eimSignature := '5252525252525252525252525252525252525252525252525252525252525252 - 5353535353535353535353535353535353535353535353535353535353535353'O - } + euiccPackageRequest := euiccPackageRequest } } /* GSMA SGP.32, section 6.3.2.5 */ +template (present) SGP32_CancelSessionResponse +tr_SGP32_cancelSessionResponse := { + cancelSessionResponseOk := tr_cancelSessionResponseOk +} +template (value) SGP32_CancelSessionResponse +ts_SGP32_cancelSessionResponse := { + cancelSessionResponseOk := ts_cancelSessionResponseOk +} template (present) EsipaMessageFromIpaToEim -tr_cancelSessionRequestEsipa := { +tr_cancelSessionRequestEsipa(template (present) octetstring transactionId := ?, + template (present) SGP32_CancelSessionResponse cancelSessionResponse := tr_SGP32_cancelSessionResponse) := { cancelSessionRequestEsipa := { - transactionId := ?, - cancelSessionResponse := { - cancelSessionResponseOk := tr_cancelSessionResponseOk - } + transactionId := transactionId, + cancelSessionResponse := cancelSessionResponse } } template (value) EsipaMessageFromIpaToEim -ts_cancelSessionRequestEsipa := { +ts_cancelSessionRequestEsipa(template (value) octetstring transactionId := 'ABCDEF'O, + template (value) SGP32_CancelSessionResponse cancelSessionResponse := ts_SGP32_cancelSessionResponse) := { cancelSessionRequestEsipa := { - transactionId := 'AABBCC'O, - cancelSessionResponse := { - cancelSessionResponseOk := ts_cancelSessionResponseOk - } + transactionId := transactionId, + cancelSessionResponse := cancelSessionResponse } } @@ -700,40 +735,48 @@ } /* GSMA SGP.32, section 6.3.2.3 */ +template (present) SGP32_PrepareDownloadResponse +tr_SGP32_prepareDownloadResponse := { + downloadResponseOk := tr_prepareDownloadResponseOk +} +template (value) SGP32_PrepareDownloadResponse +ts_SGP32_prepareDownloadResponse := { + downloadResponseOk := ts_prepareDownloadResponseOk +} template (present) EsipaMessageFromIpaToEim -tr_getBoundProfilePackageRequestEsipa := { +tr_getBoundProfilePackageRequestEsipa(template (present) octetstring transactionId := 'ABCDEF'O, + template (present) SGP32_PrepareDownloadResponse prepareDownloadResponse := tr_SGP32_prepareDownloadResponse) := { getBoundProfilePackageRequestEsipa := { transactionId := ?, - prepareDownloadResponse := { - downloadResponseOk := tr_prepareDownloadResponseOk - } + prepareDownloadResponse := prepareDownloadResponse } } template (value) EsipaMessageFromIpaToEim -ts_getBoundProfilePackageRequestEsipa := { +ts_getBoundProfilePackageRequestEsipa(template (value) octetstring transactionId := 'ABCDEF'O, + template (value) SGP32_PrepareDownloadResponse prepareDownloadResponse := ts_SGP32_prepareDownloadResponse) := { getBoundProfilePackageRequestEsipa := { transactionId := 'ABCDEF'O, - prepareDownloadResponse := { - downloadResponseOk := ts_prepareDownloadResponseOk - } + prepareDownloadResponse := prepareDownloadResponse } } /* GSMA SGP.32, section 6.3.2.3 */ template (present) EsipaMessageFromEimToIpa -tr_getBoundProfilePackageResponseEsipa := { +tr_getBoundProfilePackageResponseEsipa(template octetstring transactionId := *, + template (present) BoundProfilePackage boundProfilePackage := ?) := { getBoundProfilePackageResponseEsipa := { getBoundProfilePackageOkEsipa := { - transactionId := *, + transactionId := transactionId, boundProfilePackage := tr_boundProfilePackage } } } template (value) EsipaMessageFromEimToIpa -ts_getBoundProfilePackageResponseEsipa := { +ts_getBoundProfilePackageResponseEsipa(template (omit) octetstring transactionId := omit, + template (value) BoundProfilePackage boundProfilePackage := ts_boundProfilePackage) := { getBoundProfilePackageResponseEsipa := { getBoundProfilePackageOkEsipa := { - transactionId := omit, + transactionId := transactionId, boundProfilePackage := ts_boundProfilePackage } } @@ -773,27 +816,53 @@ } /* GSMA SGP.32, section 6.3.2.4 */ +template (present) SGP32_PendingNotification tr_SGP32_pendingNotification_prfleInstRslt := { + profileInstallationResult := { + profileInstallationResultData := tr_profileInstallationResultData, + euiccSignPIR := ? + } +} +template (value) SGP32_PendingNotification ts_SGP32_pendingNotification_prfleInstRslt(template (value) charstring notificationAddress := "smdp.example.com") := { + profileInstallationResult := { + profileInstallationResultData := ts_profileInstallationResultData(notificationAddress), + euiccSignPIR := '5252525252525252525252525252525252525252525252525252525252525252 + 5353535353535353535353535353535353535353535353535353535353535353'O + } +} template (present) EsipaMessageFromIpaToEim -tr_handleNotificationEsipa_prfleInstRslt(template (present) charstring notificationAddress := ?) := { +tr_handleNotificationEsipa_pendingNotif(template (present) SGP32_PendingNotification pendingNotification := tr_SGP32_pendingNotification_prfleInstRslt) := { handleNotificationEsipa := { - pendingNotification := { - profileInstallationResult := { - profileInstallationResultData := tr_profileInstallationResultData, - euiccSignPIR := ? - } - } + pendingNotification := pendingNotification } } template (value) EsipaMessageFromIpaToEim -ts_handleNotificationEsipa_prfleInstRslt(template (value) charstring notificationAddress := "smdp.example.com") := { +ts_handleNotificationEsipa_pendingNotif(template (value) SGP32_PendingNotification pendingNotification := ts_SGP32_pendingNotification_prfleInstRslt) := { handleNotificationEsipa := { - pendingNotification := { - profileInstallationResult := { - profileInstallationResultData := ts_profileInstallationResultData(notificationAddress), - euiccSignPIR := '5252525252525252525252525252525252525252525252525252525252525252 - 5353535353535353535353535353535353535353535353535353535353535353'O - } - } + pendingNotification := pendingNotification + } +} +template (present) ProvideEimPackageResult +tr_handleNotif_provideEimPackageResult(template octetstring eidValue := *, + template (present) EimPackageResult eimPackageResult := tr_eimPackageResult_ePRAndNotif) := { + eidValue := eidValue, + eimPackageResult := eimPackageResult +} +template (value) ProvideEimPackageResult +ts_handleNotif_provideEimPackageResult(template (omit) octetstring eidValue := omit, + template (value) EimPackageResult eimPackageResult := ts_eimPackageResult_ePRAndNotif) := { + eidValue := eidValue, + eimPackageResult := eimPackageResult +} +template (present) EsipaMessageFromIpaToEim +tr_handleNotificationEsipa_prvdeEimPkgRslt(template (present) ProvideEimPackageResult provideEimPackageResult := tr_handleNotif_provideEimPackageResult) := { + handleNotificationEsipa := { + provideEimPackageResult := provideEimPackageResult + } +} +template (value) EsipaMessageFromIpaToEim +ts_handleNotificationEsipa_prvdeEimPkgRslt(template (value) ProvideEimPackageResult provideEimPackageResult := ts_handleNotif_provideEimPackageResult) := { + handleNotificationEsipa := { + provideEimPackageResult := provideEimPackageResult } } @@ -1377,110 +1446,90 @@ } } +template (present) EimPackageResult +tr_eimPackageResult_ePRAndNotif(template (present) EuiccPackageResult euiccPackageResult := tr_euiccPackageResultSigned_enablePsmo) := { + ePRAndNotifications := { + euiccPackageResult := euiccPackageResult, + notificationList := ? + } +} +template (value) EimPackageResult +ts_eimPackageResult_ePRAndNotif(template (value) EuiccPackageResult euiccPackageResult := ts_euiccPackageResultSigned_enablePsmo) := { + ePRAndNotifications := { + euiccPackageResult := euiccPackageResult, + notificationList := { } + } +} +template (present) EimPackageResult +tr_eimPackageResult_euiccDataResp := { + ipaEuiccDataResponse := { + ipaEuiccData := { + notificationsList := *, + defaultSmdpAddress := *, + euiccPackageResultList := *, + euiccInfo1 := *, + euiccInfo2 := *, + rootSmdsAddress := *, + associationToken := *, + eumCertificate := *, + euiccCertificate := *, + eimTransactionId := *, + ipaCapabilities := *, + deviceInfo := * + } + } +} +template (value) EimPackageResult +ts_eimPackageResult_euiccDataResp(template (omit) octetstring eimTransactionId := omit) := { + ipaEuiccDataResponse := { + ipaEuiccData := { + notificationsList := omit, + defaultSmdpAddress := "smdp.example.com", + euiccPackageResultList := omit, + euiccInfo1 := ts_EUICCInfo1, + euiccInfo2 := ts_SGP32_EUICCInfo2, + rootSmdsAddress := "smds.example.com", + associationToken := 1, + eumCertificate := ts_cert_eum_nist, + euiccCertificate := ts_cert_euicc_nist, + eimTransactionId := eimTransactionId, + ipaCapabilities := omit, + deviceInfo := omit + } + } +} +template (present) EimPackageResult +tr_eimPackageResult_euiccDataResp_err := { + ipaEuiccDataResponse := { + ipaEuiccDataResponseError := { + eimTransactionId := *, + ipaEuiccDataErrorCode := ? + } + } +} +template (value) EimPackageResult +ts_eimPackageResult_euiccDataResp_err(template (omit) octetstring eimTransactionId := omit) := { + ipaEuiccDataResponse := { + ipaEuiccDataResponseError := { + eimTransactionId := eimTransactionId, + ipaEuiccDataErrorCode := 127 + } + } +} template (present) EsipaMessageFromIpaToEim -tr_provideEimPackageResult_ePRAndNotif(template octetstring eidValue := *, - template (present) EuiccPackageResult euiccPackageResult := tr_euiccPackageResultSigned_enablePsmo) := { +tr_provideEimPackageResult(template octetstring eidValue := *, + template (present) EimPackageResult eimPackageResult := ?) := { provideEimPackageResult := { eidValue := eidValue, - eimPackageResult := { - ePRAndNotifications := { - euiccPackageResult := euiccPackageResult, - notificationList := ? - } - } + eimPackageResult := eimPackageResult } } template (value) EsipaMessageFromIpaToEim -ts_provideEimPackageResult_ePRAndNotif(template (omit) octetstring eidValue := omit, - template (value) EuiccPackageResult euiccPackageResult := ts_euiccPackageResultSigned_enablePsmo) := { +ts_provideEimPackageResult(template (omit) octetstring eidValue := omit, + template (value) EimPackageResult eimPackageResult := ts_eimPackageResult_ePRAndNotif) := { provideEimPackageResult := { eidValue := eidValue, - eimPackageResult := { - ePRAndNotifications := { - euiccPackageResult := euiccPackageResult, - notificationList := { } - } - } - } -} - -template (present) EsipaMessageFromIpaToEim -tr_provideEimPackageResult_euiccDataResp(template octetstring eidValue := *) := { - provideEimPackageResult := { - eidValue := eidValue, - eimPackageResult := { - ipaEuiccDataResponse := { - ipaEuiccData := { - notificationsList := *, - defaultSmdpAddress := *, - euiccPackageResultList := *, - euiccInfo1 := *, - euiccInfo2 := *, - rootSmdsAddress := *, - associationToken := *, - eumCertificate := *, - euiccCertificate := *, - eimTransactionId := *, - ipaCapabilities := *, - deviceInfo := * - } - } - } - } -} -template (value) EsipaMessageFromIpaToEim -ts_provideEimPackageResult_euiccDataResp(template (omit) octetstring eidValue := omit, - template (omit) octetstring eimTransactionId := omit) := { - provideEimPackageResult := { - eidValue := eidValue, - eimPackageResult := { - ipaEuiccDataResponse := { - ipaEuiccData := { - notificationsList := omit, - defaultSmdpAddress := "smdp.example.com", - euiccPackageResultList := omit, - euiccInfo1 := ts_EUICCInfo1, - euiccInfo2 := ts_SGP32_EUICCInfo2, - rootSmdsAddress := "smds.example.com", - associationToken := 1, - eumCertificate := ts_cert_eum_nist, - euiccCertificate := ts_cert_euicc_nist, - eimTransactionId := eimTransactionId, - ipaCapabilities := omit, - deviceInfo := omit - } - } - } - } -} - -template (present) EsipaMessageFromIpaToEim -tr_provideEimPackageResult_euiccDataResp_err(template octetstring eidValue := *) := { - provideEimPackageResult := { - eidValue := eidValue, - eimPackageResult := { - ipaEuiccDataResponse := { - ipaEuiccDataResponseError := { - eimTransactionId := *, - ipaEuiccDataErrorCode := ? - } - } - } - } -} -template (value) EsipaMessageFromIpaToEim -ts_provideEimPackageResult_euiccDataResp_err(template (omit) octetstring eidValue := omit, - template (omit) octetstring eimTransactionId := omit) := { - provideEimPackageResult := { - eidValue := eidValue, - eimPackageResult := { - ipaEuiccDataResponse := { - ipaEuiccDataResponseError := { - eimTransactionId := eimTransactionId, - ipaEuiccDataErrorCode := 127 - } - } - } + eimPackageResult := eimPackageResult } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43181?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I69a29b30578b0280006c2655b20c2a4eb62f5e75 Gerrit-Change-Number: 43181 Gerrit-PatchSet: 2 Gerrit-Owner: dexter <pmaier(a)sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: jolly <andreas(a)eversberg.eu> Gerrit-Reviewer: laforge <laforge(a)osmocom.org> Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • ...
  • 227
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.