lists.osmocom.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2026
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
List overview
Download
gerrit-log
July 2026
----- 2026 -----
September 2026
August 2026
July 2026
June 2026
May 2026
April 2026
March 2026
February 2026
January 2026
----- 2025 -----
December 2025
November 2025
October 2025
September 2025
August 2025
July 2025
June 2025
May 2025
April 2025
March 2025
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
gerrit-log@lists.osmocom.org
1 participants
869 discussions
Start a n
N
ew thread
[L] Change in onomondo-ipa[master]: V1.2: Add AuthenticateResponseOk and EuiccSigned1
by jolly
16 Jul '26
16 Jul '26
jolly has uploaded this change for review. (
https://gerrit.osmocom.org/c/onomondo-ipa/+/43061?usp=email
) Change subject: V1.2: Add AuthenticateResponseOk and EuiccSigned1 ...................................................................... V1.2: Add AuthenticateResponseOk and EuiccSigned1 Both structures are taken from SGP.22 but do not change. The IPA process uses these new structures, because the may be expanded in the future. Reference: SGP.23 Section 5.14.3 Related: SYS#8101 Change-Id: I501247132de30618a2b1ace44c7c3772ab42eb09 --- M asn1/SGP32Definitions.asn M src/ipa/libasn/CMakeLists.txt A src/ipa/libasn/SGP32-AuthenticateResponseOk.c A src/ipa/libasn/SGP32-AuthenticateResponseOk.h M src/ipa/libasn/SGP32-AuthenticateServerResponse.c M src/ipa/libasn/SGP32-AuthenticateServerResponse.h A src/ipa/libasn/SGP32-EuiccSigned1.c A src/ipa/libasn/SGP32-EuiccSigned1.h M src/ipa/libipa/es10b_auth_serv.c M src/ipa/libipa/es10b_auth_serv.h 10 files changed, 301 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/onomondo-ipa refs/changes/61/43061/1 diff --git a/asn1/SGP32Definitions.asn b/asn1/SGP32Definitions.asn index 83fcf91..0e210f0 100644 --- a/asn1/SGP32Definitions.asn +++ b/asn1/SGP32Definitions.asn @@ -771,8 +771,21 @@ -- Section 5.14.3 -- ASN1START +SGP32-EuiccSigned1 ::= SEQUENCE { + transactionId [0] TransactionId, + serverAddress [3] UTF8String, + serverChallenge [4] Octet16, + euiccInfo2 [34] EUICCInfo2, + ctxParams1 CtxParams1 -- The RSP Server Challenge +} +SGP32-AuthenticateResponseOk ::= SEQUENCE { + euiccSigned1 SGP32-EuiccSigned1, -- Signed information + euiccSignature1 [APPLICATION 55] OCTET STRING, --EUICC_Sign1, tag 5F37 + euiccCertificate Certificate, -- eUICC Certificate (CERT.EUICC.ECDSA) signed by the EUM + eumCertificate Certificate -- EUM Certificate (CERT.EUM.ECDSA) signed by the requested CI +} SGP32-AuthenticateServerResponse ::= [56] CHOICE { -- Tag 'BF38' - authenticateResponseOk AuthenticateResponseOk, + authenticateResponseOk SGP32-AuthenticateResponseOk, authenticateResponseError AuthenticateResponseError, compactAuthenticateResponseOk CompactAuthenticateResponseOk } diff --git a/src/ipa/libasn/CMakeLists.txt b/src/ipa/libasn/CMakeLists.txt index 3ab0559..a767352 100644 --- a/src/ipa/libasn/CMakeLists.txt +++ b/src/ipa/libasn/CMakeLists.txt @@ -840,6 +840,8 @@ SetNicknameResponse.h SGP32-AuthenticateClientRequest.c SGP32-AuthenticateClientRequest.h +SGP32-AuthenticateResponseOk.c +SGP32-AuthenticateResponseOk.h SGP32-AuthenticateServerResponse.c SGP32-AuthenticateServerResponse.h SGP32-CancelSessionOk.c @@ -852,6 +854,8 @@ SGP32-EuiccMemoryResetRequest.h SGP32-EuiccMemoryResetResponse.c SGP32-EuiccMemoryResetResponse.h +SGP32-EuiccSigned1.c +SGP32-EuiccSigned1.h SGP32-PendingNotification.c SGP32-PendingNotification.h SGP32-PrepareDownloadResponse.c diff --git a/src/ipa/libasn/SGP32-AuthenticateResponseOk.c b/src/ipa/libasn/SGP32-AuthenticateResponseOk.c new file mode 100644 index 0000000..abc2eeb --- /dev/null +++ b/src/ipa/libasn/SGP32-AuthenticateResponseOk.c @@ -0,0 +1,80 @@ +/* + * Generated by asn1c-0.9.29 (
http://lionet.info/asn1c
) + * From ASN.1 module "SGP32Definitions" + * found in "../../../asn1/SGP32Definitions.asn" + * `asn1c -fcompound-names -no-gen-example` + */ + +#include "SGP32-AuthenticateResponseOk.h" + +asn_TYPE_member_t asn_MBR_SGP32_AuthenticateResponseOk_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SGP32_AuthenticateResponseOk, euiccSigned1), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_SGP32_EuiccSigned1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euiccSigned1" + }, + { ATF_NOFLAGS, 0, offsetof(struct SGP32_AuthenticateResponseOk, euiccSignature1), + (ASN_TAG_CLASS_APPLICATION | (55 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euiccSignature1" + }, + { ATF_NOFLAGS, 0, offsetof(struct SGP32_AuthenticateResponseOk, euiccCertificate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Certificate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euiccCertificate" + }, + { ATF_NOFLAGS, 0, offsetof(struct SGP32_AuthenticateResponseOk, eumCertificate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_Certificate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eumCertificate" + }, +}; +static const ber_tlv_tag_t asn_DEF_SGP32_AuthenticateResponseOk_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SGP32_AuthenticateResponseOk_tag2el_1[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* euiccSigned1 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* euiccCertificate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 }, /* eumCertificate */ + { (ASN_TAG_CLASS_APPLICATION | (55 << 2)), 1, 0, 0 } /* euiccSignature1 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SGP32_AuthenticateResponseOk_specs_1 = { + sizeof(struct SGP32_AuthenticateResponseOk), + offsetof(struct SGP32_AuthenticateResponseOk, _asn_ctx), + asn_MAP_SGP32_AuthenticateResponseOk_tag2el_1, + 4, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 4, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SGP32_AuthenticateResponseOk = { + "SGP32-AuthenticateResponseOk", + "SGP32-AuthenticateResponseOk", + &asn_OP_SEQUENCE, + asn_DEF_SGP32_AuthenticateResponseOk_tags_1, + sizeof(asn_DEF_SGP32_AuthenticateResponseOk_tags_1) + /sizeof(asn_DEF_SGP32_AuthenticateResponseOk_tags_1[0]), /* 1 */ + asn_DEF_SGP32_AuthenticateResponseOk_tags_1, /* Same as above */ + sizeof(asn_DEF_SGP32_AuthenticateResponseOk_tags_1) + /sizeof(asn_DEF_SGP32_AuthenticateResponseOk_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SGP32_AuthenticateResponseOk_1, + 4, /* Elements count */ + &asn_SPC_SGP32_AuthenticateResponseOk_specs_1 /* Additional specs */ +}; + diff --git a/src/ipa/libasn/SGP32-AuthenticateResponseOk.h b/src/ipa/libasn/SGP32-AuthenticateResponseOk.h new file mode 100644 index 0000000..a8a4d41 --- /dev/null +++ b/src/ipa/libasn/SGP32-AuthenticateResponseOk.h @@ -0,0 +1,49 @@ +/* + * Generated by asn1c-0.9.29 (
http://lionet.info/asn1c
) + * From ASN.1 module "SGP32Definitions" + * found in "../../../asn1/SGP32Definitions.asn" + * `asn1c -fcompound-names -no-gen-example` + */ + +#ifndef _SGP32_AuthenticateResponseOk_H_ +#define _SGP32_AuthenticateResponseOk_H_ + + +#include <asn_application.h> + +/* Including external dependencies */ +#include "SGP32-EuiccSigned1.h" +#include <OCTET_STRING.h> +#include "Certificate.h" +#include <constr_SEQUENCE.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/* SGP32-AuthenticateResponseOk */ +typedef struct SGP32_AuthenticateResponseOk { + SGP32_EuiccSigned1_t euiccSigned1; + OCTET_STRING_t euiccSignature1; + Certificate_t euiccCertificate; + Certificate_t eumCertificate; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SGP32_AuthenticateResponseOk_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SGP32_AuthenticateResponseOk; +extern asn_SEQUENCE_specifics_t asn_SPC_SGP32_AuthenticateResponseOk_specs_1; +extern asn_TYPE_member_t asn_MBR_SGP32_AuthenticateResponseOk_1[4]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SGP32_AuthenticateResponseOk_H_ */ +#include <asn_internal.h> diff --git a/src/ipa/libasn/SGP32-AuthenticateServerResponse.c b/src/ipa/libasn/SGP32-AuthenticateServerResponse.c index 2162c0c..0dccd91 100644 --- a/src/ipa/libasn/SGP32-AuthenticateServerResponse.c +++ b/src/ipa/libasn/SGP32-AuthenticateServerResponse.c @@ -19,7 +19,7 @@ { ATF_NOFLAGS, 0, offsetof(struct SGP32_AuthenticateServerResponse, choice.authenticateResponseOk), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_AuthenticateResponseOk, + &asn_DEF_SGP32_AuthenticateResponseOk, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/ipa/libasn/SGP32-AuthenticateServerResponse.h b/src/ipa/libasn/SGP32-AuthenticateServerResponse.h index 7fef589..ffd0ba3 100644 --- a/src/ipa/libasn/SGP32-AuthenticateServerResponse.h +++ b/src/ipa/libasn/SGP32-AuthenticateServerResponse.h @@ -12,7 +12,7 @@ #include <asn_application.h> /* Including external dependencies */ -#include "AuthenticateResponseOk.h" +#include "SGP32-AuthenticateResponseOk.h" #include "AuthenticateResponseError.h" #include "CompactAuthenticateResponseOk.h" #include <constr_CHOICE.h> @@ -35,7 +35,7 @@ typedef struct SGP32_AuthenticateServerResponse { SGP32_AuthenticateServerResponse_PR present; union SGP32_AuthenticateServerResponse_u { - AuthenticateResponseOk_t authenticateResponseOk; + SGP32_AuthenticateResponseOk_t authenticateResponseOk; AuthenticateResponseError_t authenticateResponseError; CompactAuthenticateResponseOk_t compactAuthenticateResponseOk; /* diff --git a/src/ipa/libasn/SGP32-EuiccSigned1.c b/src/ipa/libasn/SGP32-EuiccSigned1.c new file mode 100644 index 0000000..1f47d61 --- /dev/null +++ b/src/ipa/libasn/SGP32-EuiccSigned1.c @@ -0,0 +1,90 @@ +/* + * Generated by asn1c-0.9.29 (
http://lionet.info/asn1c
) + * From ASN.1 module "SGP32Definitions" + * found in "../../../asn1/SGP32Definitions.asn" + * `asn1c -fcompound-names -no-gen-example` + */ + +#include "SGP32-EuiccSigned1.h" + +asn_TYPE_member_t asn_MBR_SGP32_EuiccSigned1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct SGP32_EuiccSigned1, transactionId), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransactionId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "transactionId" + }, + { ATF_NOFLAGS, 0, offsetof(struct SGP32_EuiccSigned1, serverAddress), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_UTF8String, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serverAddress" + }, + { ATF_NOFLAGS, 0, offsetof(struct SGP32_EuiccSigned1, serverChallenge), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_Octet16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "serverChallenge" + }, + { ATF_NOFLAGS, 0, offsetof(struct SGP32_EuiccSigned1, euiccInfo2), + (ASN_TAG_CLASS_CONTEXT | (34 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_EUICCInfo2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "euiccInfo2" + }, + { ATF_NOFLAGS, 0, offsetof(struct SGP32_EuiccSigned1, ctxParams1), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_CtxParams1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ctxParams1" + }, +}; +static const ber_tlv_tag_t asn_DEF_SGP32_EuiccSigned1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_SGP32_EuiccSigned1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 1 }, /* transactionId */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 4, -1, 0 }, /* ctxParamsForCommonAuthentication */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* serverAddress */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* serverChallenge */ + { (ASN_TAG_CLASS_CONTEXT | (34 << 2)), 3, 0, 0 } /* euiccInfo2 */ +}; +asn_SEQUENCE_specifics_t asn_SPC_SGP32_EuiccSigned1_specs_1 = { + sizeof(struct SGP32_EuiccSigned1), + offsetof(struct SGP32_EuiccSigned1, _asn_ctx), + asn_MAP_SGP32_EuiccSigned1_tag2el_1, + 5, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 5, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_SGP32_EuiccSigned1 = { + "SGP32-EuiccSigned1", + "SGP32-EuiccSigned1", + &asn_OP_SEQUENCE, + asn_DEF_SGP32_EuiccSigned1_tags_1, + sizeof(asn_DEF_SGP32_EuiccSigned1_tags_1) + /sizeof(asn_DEF_SGP32_EuiccSigned1_tags_1[0]), /* 1 */ + asn_DEF_SGP32_EuiccSigned1_tags_1, /* Same as above */ + sizeof(asn_DEF_SGP32_EuiccSigned1_tags_1) + /sizeof(asn_DEF_SGP32_EuiccSigned1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_SGP32_EuiccSigned1_1, + 5, /* Elements count */ + &asn_SPC_SGP32_EuiccSigned1_specs_1 /* Additional specs */ +}; + diff --git a/src/ipa/libasn/SGP32-EuiccSigned1.h b/src/ipa/libasn/SGP32-EuiccSigned1.h new file mode 100644 index 0000000..0d8f7cb --- /dev/null +++ b/src/ipa/libasn/SGP32-EuiccSigned1.h @@ -0,0 +1,52 @@ +/* + * Generated by asn1c-0.9.29 (
http://lionet.info/asn1c
) + * From ASN.1 module "SGP32Definitions" + * found in "../../../asn1/SGP32Definitions.asn" + * `asn1c -fcompound-names -no-gen-example` + */ + +#ifndef _SGP32_EuiccSigned1_H_ +#define _SGP32_EuiccSigned1_H_ + + +#include <asn_application.h> + +/* Including external dependencies */ +#include "TransactionId.h" +#include <UTF8String.h> +#include "Octet16.h" +#include "EUICCInfo2.h" +#include "CtxParams1.h" +#include <constr_SEQUENCE.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/* SGP32-EuiccSigned1 */ +typedef struct SGP32_EuiccSigned1 { + TransactionId_t transactionId; + UTF8String_t serverAddress; + Octet16_t serverChallenge; + EUICCInfo2_t euiccInfo2; + CtxParams1_t ctxParams1; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} SGP32_EuiccSigned1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_SGP32_EuiccSigned1; +extern asn_SEQUENCE_specifics_t asn_SPC_SGP32_EuiccSigned1_specs_1; +extern asn_TYPE_member_t asn_MBR_SGP32_EuiccSigned1_1[5]; + +#ifdef __cplusplus +} +#endif + +#endif /* _SGP32_EuiccSigned1_H_ */ +#include <asn_internal.h> diff --git a/src/ipa/libipa/es10b_auth_serv.c b/src/ipa/libipa/es10b_auth_serv.c index a6d7c77..681f158 100644 --- a/src/ipa/libipa/es10b_auth_serv.c +++ b/src/ipa/libipa/es10b_auth_serv.c @@ -36,17 +36,17 @@ static int dec_auth_serv_res(struct ipa_es10b_auth_serv_res *res, const struct ipa_buf *es10b_res) { - struct AuthenticateServerResponse *asn = NULL; + struct SGP32_AuthenticateServerResponse *asn = NULL; - asn = ipa_es10x_res_dec(&asn_DEF_AuthenticateServerResponse, es10b_res, "AuthenticateServer"); + asn = ipa_es10x_res_dec(&asn_DEF_SGP32_AuthenticateServerResponse, es10b_res, "AuthenticateServer"); if (!asn) return -EINVAL; switch (asn->present) { - case AuthenticateServerResponse_PR_authenticateResponseOk: + case SGP32_AuthenticateServerResponse_PR_authenticateResponseOk: res->auth_serv_ok = &asn->choice.authenticateResponseOk; break; - case AuthenticateServerResponse_PR_authenticateResponseError: + case SGP32_AuthenticateServerResponse_PR_authenticateResponseError: res->auth_serv_err = asn->choice.authenticateResponseError.authenticateErrorCode; IPA_LOGP_ES10X("AuthenticateServer", LERROR, "function failed with error code %ld=%s!\n", res->auth_serv_err, ipa_str_from_num(error_code_strings, res->auth_serv_err, @@ -102,5 +102,5 @@ * \param[in] res pointer to function result. */ void ipa_es10b_auth_serv_res_free(struct ipa_es10b_auth_serv_res *res) { - IPA_ES10X_RES_FREE(asn_DEF_AuthenticateServerResponse, res); + IPA_ES10X_RES_FREE(asn_DEF_SGP32_AuthenticateServerResponse, res); } diff --git a/src/ipa/libipa/es10b_auth_serv.h b/src/ipa/libipa/es10b_auth_serv.h index 9e8eef1..2f005e3 100644 --- a/src/ipa/libipa/es10b_auth_serv.h +++ b/src/ipa/libipa/es10b_auth_serv.h @@ -7,8 +7,8 @@ #pragma once #include <AuthenticateServerRequest.h> -#include <AuthenticateServerResponse.h> -#include <AuthenticateResponseOk.h> +#include <SGP32-AuthenticateServerResponse.h> +#include <SGP32-AuthenticateResponseOk.h> struct ipa_context; /* GSMA SGP.22, section 5.7.13 */ @@ -17,8 +17,8 @@ }; struct ipa_es10b_auth_serv_res { - struct AuthenticateServerResponse *res; - struct AuthenticateResponseOk *auth_serv_ok; + struct SGP32_AuthenticateServerResponse *res; + struct SGP32_AuthenticateResponseOk *auth_serv_ok; long auth_serv_err; }; -- To view, visit
https://gerrit.osmocom.org/c/onomondo-ipa/+/43061?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange Gerrit-Project: onomondo-ipa Gerrit-Branch: master Gerrit-Change-Id: I501247132de30618a2b1ace44c7c3772ab42eb09 Gerrit-Change-Number: 43061 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas(a)eversberg.eu>
1
0
0
0
[L] Change in onomondo-ipa[master]: WIP: Change of IpaEuiccDataRequest
by jolly
16 Jul '26
16 Jul '26
jolly has uploaded this change for review. (
https://gerrit.osmocom.org/c/onomondo-ipa/+/43062?usp=email
) Change subject: WIP: Change of IpaEuiccDataRequest ...................................................................... WIP: Change of IpaEuiccDataRequest Section 2.11.1.2 * Changed tags * Two search criteria: searchCriteriaNotification, searchCriteriaEuiccPackageResult This patch is totally wrong. The filter cannot work, because it reads from the wrong choice. If eIM asks for eUICC Package Results, we need to return that result. We have to generade the list in convert_notification_list() with the correct choice. Do we have all the required information? Change-Id: I411111c71787ce27615b6b66fc8b19488883d15b --- M asn1/SGP32Definitions.asn M src/ipa/libasn/IpaEuiccDataRequest.c M src/ipa/libasn/IpaEuiccDataRequest.h M src/ipa/libipa/es10b_retr_notif_from_lst.c M src/ipa/libipa/es10b_retr_notif_from_lst.h M src/ipa/libipa/proc_euicc_data_req.c 6 files changed, 205 insertions(+), 85 deletions(-) git pull ssh://gerrit.osmocom.org:29418/onomondo-ipa refs/changes/62/43062/1 diff --git a/asn1/SGP32Definitions.asn b/asn1/SGP32Definitions.asn index 0e210f0..b6cd8a5 100644 --- a/asn1/SGP32Definitions.asn +++ b/asn1/SGP32Definitions.asn @@ -117,8 +117,10 @@ euiccCiPKIdentifierToBeUsed OCTET STRING OPTIONAL, -- CI Public Key Identifier (possibly truncated) supported on the eUICC for signature creation searchCriteriaNotification [1] CHOICE { seqNumber [0] INTEGER, - profileManagementOperation [1] NotificationEvent, - euiccPackageResults [2] NULL + profileManagementOperation [1] NotificationEvent + } OPTIONAL, + searchCriteriaEuiccPackageResult [2] CHOICE { + seqNumber [0] INTEGER } OPTIONAL, eimTransactionId [3] TransactionId OPTIONAL -- Tag '83' } diff --git a/src/ipa/libasn/IpaEuiccDataRequest.c b/src/ipa/libasn/IpaEuiccDataRequest.c index fa1924d..9e2852d 100644 --- a/src/ipa/libasn/IpaEuiccDataRequest.c +++ b/src/ipa/libasn/IpaEuiccDataRequest.c @@ -11,7 +11,15 @@ { 0, 0 }, -1}; static asn_per_constraints_t asn_PER_type_searchCriteriaNotification_constr_4 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_searchCriteriaEuiccPackageResult_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_searchCriteriaEuiccPackageResult_constr_8 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; @@ -34,20 +42,10 @@ 0, 0, /* No default value */ "profileManagementOperation" }, - { ATF_NOFLAGS, 0, offsetof(struct IpaEuiccDataRequest__searchCriteriaNotification, choice.euiccPackageResults), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), - -1, /* IMPLICIT tag at current level */ - &asn_DEF_NULL, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "euiccPackageResults" - }, }; static const asn_TYPE_tag2member_t asn_MAP_searchCriteriaNotification_tag2el_4[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* seqNumber */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* profileManagementOperation */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* euiccPackageResults */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* profileManagementOperation */ }; static asn_CHOICE_specifics_t asn_SPC_searchCriteriaNotification_specs_4 = { sizeof(struct IpaEuiccDataRequest__searchCriteriaNotification), @@ -55,9 +53,9 @@ offsetof(struct IpaEuiccDataRequest__searchCriteriaNotification, present), sizeof(((struct IpaEuiccDataRequest__searchCriteriaNotification *)0)->present), asn_MAP_searchCriteriaNotification_tag2el_4, - 3, /* Count of tags in the map */ + 2, /* Count of tags in the map */ 0, 0, - 3 /* Extensions start */ + 2 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ asn_TYPE_descriptor_t asn_DEF_searchCriteriaNotification_4 = { @@ -70,10 +68,49 @@ 0, /* No tags (count) */ { &asn_OER_type_searchCriteriaNotification_constr_4, &asn_PER_type_searchCriteriaNotification_constr_4, CHOICE_constraint }, asn_MBR_searchCriteriaNotification_4, - 3, /* Elements count */ + 2, /* Elements count */ &asn_SPC_searchCriteriaNotification_specs_4 /* Additional specs */ }; +static asn_TYPE_member_t asn_MBR_searchCriteriaEuiccPackageResult_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct IpaEuiccDataRequest__searchCriteriaEuiccPackageResult, choice.seqNumber), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NativeInteger, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "seqNumber" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_searchCriteriaEuiccPackageResult_tag2el_8[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* seqNumber */ +}; +static asn_CHOICE_specifics_t asn_SPC_searchCriteriaEuiccPackageResult_specs_8 = { + sizeof(struct IpaEuiccDataRequest__searchCriteriaEuiccPackageResult), + offsetof(struct IpaEuiccDataRequest__searchCriteriaEuiccPackageResult, _asn_ctx), + offsetof(struct IpaEuiccDataRequest__searchCriteriaEuiccPackageResult, present), + sizeof(((struct IpaEuiccDataRequest__searchCriteriaEuiccPackageResult *)0)->present), + asn_MAP_searchCriteriaEuiccPackageResult_tag2el_8, + 1, /* Count of tags in the map */ + 0, 0, + 1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_searchCriteriaEuiccPackageResult_8 = { + "searchCriteriaEuiccPackageResult", + "searchCriteriaEuiccPackageResult", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_searchCriteriaEuiccPackageResult_constr_8, &asn_PER_type_searchCriteriaEuiccPackageResult_constr_8, CHOICE_constraint }, + asn_MBR_searchCriteriaEuiccPackageResult_8, + 1, /* Elements count */ + &asn_SPC_searchCriteriaEuiccPackageResult_specs_8 /* Additional specs */ +}; + asn_TYPE_member_t asn_MBR_IpaEuiccDataRequest_1[] = { { ATF_NOFLAGS, 0, offsetof(struct IpaEuiccDataRequest, tagList), (ASN_TAG_CLASS_APPLICATION | (28 << 2)), @@ -84,7 +121,7 @@ 0, 0, /* No default value */ "tagList" }, - { ATF_POINTER, 3, offsetof(struct IpaEuiccDataRequest, euiccCiPKIdentifierToBeUsed), + { ATF_POINTER, 4, offsetof(struct IpaEuiccDataRequest, euiccCiPKIdentifierToBeUsed), (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, &asn_DEF_OCTET_STRING, @@ -93,7 +130,7 @@ 0, 0, /* No default value */ "euiccCiPKIdentifierToBeUsed" }, - { ATF_POINTER, 2, offsetof(struct IpaEuiccDataRequest, searchCriteriaNotification), + { ATF_POINTER, 3, offsetof(struct IpaEuiccDataRequest, searchCriteriaNotification), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), +1, /* EXPLICIT tag at current level */ &asn_DEF_searchCriteriaNotification_4, @@ -102,6 +139,15 @@ 0, 0, /* No default value */ "searchCriteriaNotification" }, + { ATF_POINTER, 2, offsetof(struct IpaEuiccDataRequest, searchCriteriaEuiccPackageResult), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_searchCriteriaEuiccPackageResult_8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "searchCriteriaEuiccPackageResult" + }, { ATF_POINTER, 1, offsetof(struct IpaEuiccDataRequest, eimTransactionId), (ASN_TAG_CLASS_CONTEXT | (3 << 2)), -1, /* IMPLICIT tag at current level */ @@ -112,7 +158,7 @@ "eimTransactionId" }, }; -static const int asn_MAP_IpaEuiccDataRequest_oms_1[] = { 1, 2, 3 }; +static const int asn_MAP_IpaEuiccDataRequest_oms_1[] = { 1, 2, 3, 4 }; static const ber_tlv_tag_t asn_DEF_IpaEuiccDataRequest_tags_1[] = { (ASN_TAG_CLASS_CONTEXT | (82 << 2)), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) @@ -121,16 +167,17 @@ { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 1, 0, 0 }, /* euiccCiPKIdentifierToBeUsed */ { (ASN_TAG_CLASS_APPLICATION | (28 << 2)), 0, 0, 0 }, /* tagList */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* searchCriteriaNotification */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eimTransactionId */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* searchCriteriaEuiccPackageResult */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 4, 0, 0 } /* eimTransactionId */ }; asn_SEQUENCE_specifics_t asn_SPC_IpaEuiccDataRequest_specs_1 = { sizeof(struct IpaEuiccDataRequest), offsetof(struct IpaEuiccDataRequest, _asn_ctx), asn_MAP_IpaEuiccDataRequest_tag2el_1, - 4, /* Count of tags in the map */ + 5, /* Count of tags in the map */ asn_MAP_IpaEuiccDataRequest_oms_1, /* Optional members */ - 3, 0, /* Root/Additions */ - 4, /* First extension addition */ + 4, 0, /* Root/Additions */ + 5, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_IpaEuiccDataRequest = { "IpaEuiccDataRequest", @@ -144,7 +191,7 @@ /sizeof(asn_DEF_IpaEuiccDataRequest_tags_1[0]), /* 2 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_IpaEuiccDataRequest_1, - 4, /* Elements count */ + 5, /* Elements count */ &asn_SPC_IpaEuiccDataRequest_specs_1 /* Additional specs */ }; diff --git a/src/ipa/libasn/IpaEuiccDataRequest.h b/src/ipa/libasn/IpaEuiccDataRequest.h index c4f0a87..b3f0347 100644 --- a/src/ipa/libasn/IpaEuiccDataRequest.h +++ b/src/ipa/libasn/IpaEuiccDataRequest.h @@ -16,7 +16,6 @@ #include "TransactionId.h" #include <NativeInteger.h> #include "NotificationEvent.h" -#include <NULL.h> #include <constr_CHOICE.h> #include <constr_SEQUENCE.h> @@ -28,11 +27,16 @@ typedef enum IpaEuiccDataRequest__searchCriteriaNotification_PR { IpaEuiccDataRequest__searchCriteriaNotification_PR_NOTHING, /* No components present */ IpaEuiccDataRequest__searchCriteriaNotification_PR_seqNumber, - IpaEuiccDataRequest__searchCriteriaNotification_PR_profileManagementOperation, - IpaEuiccDataRequest__searchCriteriaNotification_PR_euiccPackageResults + IpaEuiccDataRequest__searchCriteriaNotification_PR_profileManagementOperation /* Extensions may appear below */ } IpaEuiccDataRequest__searchCriteriaNotification_PR; +typedef enum IpaEuiccDataRequest__searchCriteriaEuiccPackageResult_PR { + IpaEuiccDataRequest__searchCriteriaEuiccPackageResult_PR_NOTHING, /* No components present */ + IpaEuiccDataRequest__searchCriteriaEuiccPackageResult_PR_seqNumber + /* Extensions may appear below */ + +} IpaEuiccDataRequest__searchCriteriaEuiccPackageResult_PR; /* IpaEuiccDataRequest */ typedef struct IpaEuiccDataRequest { @@ -43,7 +47,6 @@ union IpaEuiccDataRequest__searchCriteriaNotification_u { long seqNumber; NotificationEvent_t profileManagementOperation; - NULL_t euiccPackageResults; /* * This type is extensible, * possible extensions are below. @@ -53,6 +56,19 @@ /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } *searchCriteriaNotification; + struct IpaEuiccDataRequest__searchCriteriaEuiccPackageResult { + IpaEuiccDataRequest__searchCriteriaEuiccPackageResult_PR present; + union IpaEuiccDataRequest__searchCriteriaEuiccPackageResult_u { + long seqNumber; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } *searchCriteriaEuiccPackageResult; TransactionId_t *eimTransactionId /* OPTIONAL */; /* * This type is extensible, @@ -66,7 +82,7 @@ /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_IpaEuiccDataRequest; extern asn_SEQUENCE_specifics_t asn_SPC_IpaEuiccDataRequest_specs_1; -extern asn_TYPE_member_t asn_MBR_IpaEuiccDataRequest_1[4]; +extern asn_TYPE_member_t asn_MBR_IpaEuiccDataRequest_1[5]; #ifdef __cplusplus } diff --git a/src/ipa/libipa/es10b_retr_notif_from_lst.c b/src/ipa/libipa/es10b_retr_notif_from_lst.c index bd90b3a..9096884 100644 --- a/src/ipa/libipa/es10b_retr_notif_from_lst.c +++ b/src/ipa/libipa/es10b_retr_notif_from_lst.c @@ -155,31 +155,34 @@ struct RetrieveNotificationsListRequest__searchCriteria search_criteria = { 0 }; struct ipa_buf *es10b_req = NULL; - if (req->dr_search_criteria) { - /* Convert from foreigen searchCriteria (see comment in header file) */ - switch (req->dr_search_criteria->present) { - case IpaEuiccDataRequest__searchCriteriaNotification_PR_seqNumber: - search_criteria.present = RetrieveNotificationsListRequest__searchCriteria_PR_seqNumber; - search_criteria.choice.seqNumber = req->dr_search_criteria->choice.seqNumber; - break; - case IpaEuiccDataRequest__searchCriteriaNotification_PR_profileManagementOperation: - search_criteria.present = - RetrieveNotificationsListRequest__searchCriteria_PR_profileManagementOperation; - search_criteria.choice.profileManagementOperation = - req->dr_search_criteria->choice.profileManagementOperation; - break; - case IpaEuiccDataRequest__searchCriteriaNotification_PR_euiccPackageResults: - IPA_LOGP_ES10X("RetrieveNotificationsList", LERROR, - "unsupported euiccPackageResults searchCriteria in IpaEuiccDataRequest!\n"); + switch (req->dr_tag) { + case 0xA0: + if (req->dr_search_criteria_notification) { + switch (req->dr_search_criteria_notification->present) { + case IpaEuiccDataRequest__searchCriteriaNotification_PR_seqNumber: + search_criteria.choice.seqNumber = req->search_criteria.choice.seqNumber; + break; + case IpaEuiccDataRequest__searchCriteriaNotification_PR_profileManagementOperation: + search_criteria.choice.profileManagementOperation = + req->search_criteria.choice.profileManagementOperation; + break; + default: + IPA_LOGP_ES10X("RetrieveNotificationsList", LERROR, + "unsupported euiccPackageResults searchCriteria!\n"); + search_criteria.present = RetrieveNotificationsListRequest__searchCriteria_PR_NOTHING; + break; + } + } else { search_criteria.present = RetrieveNotificationsListRequest__searchCriteria_PR_NOTHING; - break; - default: - IPA_LOGP_ES10X("RetrieveNotificationsList", LERROR, - "empty searchCriteria in IpaEuiccDataRequest!\n"); - search_criteria.present = RetrieveNotificationsListRequest__searchCriteria_PR_NOTHING; - break; } - } else { + break; + case 0xA2: + /* There is not support for searchCriteria in IpaEuiccDataRequest. + * We emulate it by filtering the response. + */ + search_criteria.present = RetrieveNotificationsListRequest__searchCriteria_PR_NOTHING; + break; + default: /* Use native search_criteria as provided by caller */ search_criteria.present = req->search_criteria.present; switch (req->search_criteria.present) { @@ -215,32 +218,36 @@ struct SGP32_RetrieveNotificationsListRequest__searchCriteria search_criteria = { 0 }; struct ipa_buf *es10b_req = NULL; - if (req->dr_search_criteria) { - /* Convert from foreigen searchCriteria (see comment in header file) */ - switch (req->dr_search_criteria->present) { - case IpaEuiccDataRequest__searchCriteriaNotification_PR_seqNumber: - search_criteria.present = SGP32_RetrieveNotificationsListRequest__searchCriteria_PR_seqNumber; - search_criteria.choice.seqNumber = req->dr_search_criteria->choice.seqNumber; - break; - case IpaEuiccDataRequest__searchCriteriaNotification_PR_profileManagementOperation: - search_criteria.present = - SGP32_RetrieveNotificationsListRequest__searchCriteria_PR_profileManagementOperation; - search_criteria.choice.profileManagementOperation = - req->dr_search_criteria->choice.profileManagementOperation; - break; - case IpaEuiccDataRequest__searchCriteriaNotification_PR_euiccPackageResults: - search_criteria.present = - SGP32_RetrieveNotificationsListRequest__searchCriteria_PR_euiccPackageResults; - search_criteria.choice.euiccPackageResults = - req->dr_search_criteria->choice.euiccPackageResults; - break; - default: - IPA_LOGP_ES10X("RetrieveNotificationsList", LERROR, - "empty searchCriteria in IpaEuiccDataRequest!\n"); - search_criteria.present = RetrieveNotificationsListRequest__searchCriteria_PR_NOTHING; - break; + switch (req->dr_tag) { + case 0xA0: + if (req->dr_search_criteria_notification) { + switch (req->dr_search_criteria_notification->present) { + case IpaEuiccDataRequest__searchCriteriaNotification_PR_seqNumber: + search_criteria.present = + SGP32_RetrieveNotificationsListRequest__searchCriteria_PR_seqNumber; + search_criteria.choice.seqNumber = + req->dr_search_criteria_notification->choice.seqNumber; + break; + case IpaEuiccDataRequest__searchCriteriaNotification_PR_profileManagementOperation: + search_criteria.present = + SGP32_RetrieveNotificationsListRequest__searchCriteria_PR_profileManagementOperation; + search_criteria.choice.profileManagementOperation = + req->dr_search_criteria_notification->choice.profileManagementOperation; + break; + default: + IPA_LOGP_ES10X("RetrieveNotificationsList", LERROR, + "empty searchCriteria in IpaEuiccDataRequest!\n"); + search_criteria.present = RetrieveNotificationsListRequest__searchCriteria_PR_NOTHING; + break; + } + } else { + search_criteria.present = RetrieveNotificationsListRequest__searchCriteria_PR_NOTHING; } - } else { + break; + case 0xA2: + search_criteria.present = SGP32_RetrieveNotificationsListRequest__searchCriteria_PR_euiccPackageResults; + break; + default: /* Use native search_criteria as provided by caller */ search_criteria = req->search_criteria; } @@ -253,6 +260,35 @@ return es10b_req; } +void ipa_es10b_retr_notif_from_lst_filter(struct SGP32_RetrieveNotificationsListResponse *sgp32_res, + const struct ipa_es10b_retr_notif_from_lst_req *req) +{ + long seq_number; + struct EuiccPackageResult *euicc_package_result_item; + int i; + + /* No list to filter. */ + if (sgp32_res->present != SGP32_RetrieveNotificationsListResponse_PR_euiccPackageResultList) + return; + + /* No search criteria with sequence number given. */ + if (!req->dr_search_criteria_epr || + req->dr_search_criteria_epr->present != IpaEuiccDataRequest__searchCriteriaEuiccPackageResult_PR_seqNumber) + return; + + seq_number = req->dr_search_criteria_epr->choice.seqNumber; + + /* Remove all items that do not have the requested sequence number. */ + for (i = 0; i < sgp32_res->choice.euiccPackageResultList.list.count;) { + euicc_package_result_item = sgp32_res->choice.euiccPackageResultList.list.array[i]; + if (euicc_package_result_item->present == EuiccPackageResult_PR_euiccPackageResultSigned && + euicc_package_result_item->choice.euiccPackageResultSigned.euiccPackageResultDataSigned.seqNumber == seq_number) + i++; + else + asn_sequence_del(&sgp32_res->choice.euiccPackageResultList.list, i, 1); + } +} + /*! Function (ES10b): RetrieveNotificationsList. * \param[inout] ctx pointer to ipa_context. * \param[in] req pointer to struct that holds the function parameters. @@ -290,6 +326,9 @@ if (rc < 0) goto error; + if (req->dr_tag == 0xA2) + ipa_es10b_retr_notif_from_lst_filter(res->sgp32_res, req); + IPA_FREE(es10b_req); IPA_FREE(es10b_res); return res; diff --git a/src/ipa/libipa/es10b_retr_notif_from_lst.h b/src/ipa/libipa/es10b_retr_notif_from_lst.h index 2773356..33aaf5d 100644 --- a/src/ipa/libipa/es10b_retr_notif_from_lst.h +++ b/src/ipa/libipa/es10b_retr_notif_from_lst.h @@ -19,7 +19,9 @@ /* When the caller has access to a search searchCriteria that originates from an IpaEuiccDataRequest, the * pointer to it may be passed here. The function will then atomatically convert the searchCriteria into * the native RetrieveNotificationsListRequest format. */ - const struct IpaEuiccDataRequest__searchCriteriaNotification *dr_search_criteria; + const struct IpaEuiccDataRequest__searchCriteriaNotification *dr_search_criteria_notification; + const struct IpaEuiccDataRequest__searchCriteriaEuiccPackageResult *dr_search_criteria_epr; + uint16_t dr_tag; }; struct ipa_es10b_retr_notif_from_lst_res { diff --git a/src/ipa/libipa/proc_euicc_data_req.c b/src/ipa/libipa/proc_euicc_data_req.c index 0fa8ad0..2a9417d 100644 --- a/src/ipa/libipa/proc_euicc_data_req.c +++ b/src/ipa/libipa/proc_euicc_data_req.c @@ -114,7 +114,7 @@ /* Collect requested data */ tag_list = IPA_BUF_FROM_ASN(&pars->ipa_euicc_data_request->tagList); - if (ipa_tag_in_taglist(0x80, tag_list)) { + if (ipa_tag_in_taglist(0x81, tag_list)) { IPA_LOGP(SIPA, LINFO, "eIM asks for Default SM-DP+ address\n"); euicc_cfg_addr = ipa_es10a_get_euicc_cfg_addr(ctx); if (euicc_cfg_addr && euicc_cfg_addr->res->defaultDpAddress) @@ -180,7 +180,7 @@ } } - if (ipa_tag_in_taglist(0x88, tag_list)) { + if (ipa_tag_in_taglist(0xA8, tag_list)) { IPA_LOGP(SIPA, LINFO, "eIM asks for IPA Capabilities\n"); ipa_euicc_data_response.choice.ipaEuiccData.ipaCapabilities = make_ipa_capabilties(); } else { @@ -194,15 +194,29 @@ ipa_euicc_data_response.choice.ipaEuiccData.deviceInfo = NULL; } - if (ipa_tag_in_taglist(0xBF2B, tag_list)) { - IPA_LOGP(SIPA, LINFO, "eIM asks for List of Notifications and/or eUICC Package Results\n"); + if (ipa_tag_in_taglist(0xA0, tag_list)) { + IPA_LOGP(SIPA, LINFO, "eIM asks for List of Notifications\n"); - retr_notif_from_lst_req.dr_search_criteria = pars->ipa_euicc_data_request->searchCriteriaNotification; + retr_notif_from_lst_req.dr_search_criteria_notification = pars->ipa_euicc_data_request->searchCriteriaNotification; + retr_notif_from_lst_req.dr_tag = 0xA0; retr_notif_from_lst_res = ipa_es10b_retr_notif_from_lst(ctx, &retr_notif_from_lst_req); if (retr_notif_from_lst_res && retr_notif_from_lst_res->sgp32_res && retr_notif_from_lst_res->sgp32_res->present == SGP32_RetrieveNotificationsListResponse_PR_notificationList) { ipa_euicc_data_response.choice.ipaEuiccData.notificationsList = - (struct PendingNotificationList *)&retr_notif_from_lst_res->sgp32_res->choice.notificationList; + &retr_notif_from_lst_res->sgp32_res->choice.notificationList; + } + } + + if (ipa_tag_in_taglist(0xA2, tag_list)) { + IPA_LOGP(SIPA, LINFO, "eIM asks for eUICC Package Results\n"); + + retr_notif_from_lst_req.dr_search_criteria_epr = pars->ipa_euicc_data_request->searchCriteriaEuiccPackageResult; + retr_notif_from_lst_req.dr_tag = 0xA2; + retr_notif_from_lst_res = ipa_es10b_retr_notif_from_lst(ctx, &retr_notif_from_lst_req); + if (retr_notif_from_lst_res && retr_notif_from_lst_res->sgp32_res && + retr_notif_from_lst_res->sgp32_res->present == SGP32_RetrieveNotificationsListResponse_PR_euiccPackageResultList) { + ipa_euicc_data_response.choice.ipaEuiccData.euiccPackageResultList = + &retr_notif_from_lst_res->sgp32_res->choice.euiccPackageResultList; } } -- To view, visit
https://gerrit.osmocom.org/c/onomondo-ipa/+/43062?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange Gerrit-Project: onomondo-ipa Gerrit-Branch: master Gerrit-Change-Id: I411111c71787ce27615b6b66fc8b19488883d15b Gerrit-Change-Number: 43062 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas(a)eversberg.eu>
1
0
0
0
[S] Change in onomondo-ipa[master]: V1.2: Add eimTransactionId to EuiccPackageErrorUnsigned
by jolly
16 Jul '26
16 Jul '26
jolly has uploaded this change for review. (
https://gerrit.osmocom.org/c/onomondo-ipa/+/43063?usp=email
) Change subject: V1.2: Add eimTransactionId to EuiccPackageErrorUnsigned ...................................................................... V1.2: Add eimTransactionId to EuiccPackageErrorUnsigned Add new field eimTransactionId to EuiccPackageErrorUnsigned. The IoT eUICC emulation set this field, if found in EuiccPackageSigned of EuiccPackageRequest. Reference: SGP.23 Section 2.11.2.1 Related: SYS#8101 Change-Id: Idfd596c56ef8cfe745f96cbaa6b8a5537927a919 --- M asn1/SGP32Definitions.asn M src/ipa/libasn/EuiccPackageErrorUnsigned.c M src/ipa/libasn/EuiccPackageErrorUnsigned.h M src/ipa/libipa/es10b_load_euicc_pkg.c 4 files changed, 24 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/onomondo-ipa refs/changes/63/43063/1 diff --git a/asn1/SGP32Definitions.asn b/asn1/SGP32Definitions.asn index b6cd8a5..ef3bc90 100644 --- a/asn1/SGP32Definitions.asn +++ b/asn1/SGP32Definitions.asn @@ -201,6 +201,7 @@ EuiccPackageErrorCode ::= INTEGER { invalidEid(3), replayError(4), counterValueOutOfRange(6), sizeOverflow(15), undefinedError(127)} EuiccPackageErrorUnsigned ::= SEQUENCE { eimId [0] UTF8String (SIZE(1..128)), + eimTransactionId [2] TransactionId OPTIONAL, associationToken [4] INTEGER OPTIONAL } ConfigureImmediateEnableResult ::= INTEGER { diff --git a/src/ipa/libasn/EuiccPackageErrorUnsigned.c b/src/ipa/libasn/EuiccPackageErrorUnsigned.c index bf168e3..e3c5131 100644 --- a/src/ipa/libasn/EuiccPackageErrorUnsigned.c +++ b/src/ipa/libasn/EuiccPackageErrorUnsigned.c @@ -57,6 +57,15 @@ 0, 0, /* No default value */ "eimId" }, + { ATF_POINTER, 2, offsetof(struct EuiccPackageErrorUnsigned, eimTransactionId), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TransactionId, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "eimTransactionId" + }, { ATF_POINTER, 1, offsetof(struct EuiccPackageErrorUnsigned, associationToken), (ASN_TAG_CLASS_CONTEXT | (4 << 2)), -1, /* IMPLICIT tag at current level */ @@ -67,22 +76,23 @@ "associationToken" }, }; -static const int asn_MAP_EuiccPackageErrorUnsigned_oms_1[] = { 1 }; +static const int asn_MAP_EuiccPackageErrorUnsigned_oms_1[] = { 1, 2 }; static const ber_tlv_tag_t asn_DEF_EuiccPackageErrorUnsigned_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_EuiccPackageErrorUnsigned_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eimId */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 } /* associationToken */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* eimTransactionId */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* associationToken */ }; asn_SEQUENCE_specifics_t asn_SPC_EuiccPackageErrorUnsigned_specs_1 = { sizeof(struct EuiccPackageErrorUnsigned), offsetof(struct EuiccPackageErrorUnsigned, _asn_ctx), asn_MAP_EuiccPackageErrorUnsigned_tag2el_1, - 2, /* Count of tags in the map */ + 3, /* Count of tags in the map */ asn_MAP_EuiccPackageErrorUnsigned_oms_1, /* Optional members */ - 1, 0, /* Root/Additions */ - 2, /* First extension addition */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_EuiccPackageErrorUnsigned = { "EuiccPackageErrorUnsigned", @@ -96,7 +106,7 @@ /sizeof(asn_DEF_EuiccPackageErrorUnsigned_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_EuiccPackageErrorUnsigned_1, - 2, /* Elements count */ + 3, /* Elements count */ &asn_SPC_EuiccPackageErrorUnsigned_specs_1 /* Additional specs */ }; diff --git a/src/ipa/libasn/EuiccPackageErrorUnsigned.h b/src/ipa/libasn/EuiccPackageErrorUnsigned.h index 5ec7d7b..f25e9cc 100644 --- a/src/ipa/libasn/EuiccPackageErrorUnsigned.h +++ b/src/ipa/libasn/EuiccPackageErrorUnsigned.h @@ -13,6 +13,7 @@ /* Including external dependencies */ #include <UTF8String.h> +#include "TransactionId.h" #include <NativeInteger.h> #include <constr_SEQUENCE.h> @@ -23,6 +24,7 @@ /* EuiccPackageErrorUnsigned */ typedef struct EuiccPackageErrorUnsigned { UTF8String_t eimId; + TransactionId_t *eimTransactionId /* OPTIONAL */; long *associationToken /* OPTIONAL */; /* * This type is extensible, @@ -36,7 +38,7 @@ /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_EuiccPackageErrorUnsigned; extern asn_SEQUENCE_specifics_t asn_SPC_EuiccPackageErrorUnsigned_specs_1; -extern asn_TYPE_member_t asn_MBR_EuiccPackageErrorUnsigned_1[2]; +extern asn_TYPE_member_t asn_MBR_EuiccPackageErrorUnsigned_1[3]; #ifdef __cplusplus } diff --git a/src/ipa/libipa/es10b_load_euicc_pkg.c b/src/ipa/libipa/es10b_load_euicc_pkg.c index abed9f6..6f3e91c 100644 --- a/src/ipa/libipa/es10b_load_euicc_pkg.c +++ b/src/ipa/libipa/es10b_load_euicc_pkg.c @@ -710,6 +710,10 @@ asn->present = EuiccPackageResult_PR_euiccPackageErrorUnsigned; ipa_buf_assign(&eim_id, (uint8_t *) ctx->eim_id, strlen(ctx->eim_id)); IPA_COPY_IPA_BUF_TO_ASN(&asn->choice.euiccPackageErrorUnsigned.eimId, &eim_id); + if (req->req.euiccPackageSigned.eimTransactionId) { + asn->choice.euiccPackageErrorUnsigned.eimTransactionId = + ipa_asn1c_dup(&asn_DEF_TransactionId, req->req.euiccPackageSigned.eimTransactionId); + } return res; } -- To view, visit
https://gerrit.osmocom.org/c/onomondo-ipa/+/43063?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange Gerrit-Project: onomondo-ipa Gerrit-Branch: master Gerrit-Change-Id: Idfd596c56ef8cfe745f96cbaa6b8a5537927a919 Gerrit-Change-Number: 43063 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas(a)eversberg.eu>
1
0
0
0
[XS] Change in onomondo-ipa[master]: V1.2: Remove error code from ListEimResult
by jolly
16 Jul '26
16 Jul '26
jolly has uploaded this change for review. (
https://gerrit.osmocom.org/c/onomondo-ipa/+/43064?usp=email
) Change subject: V1.2: Remove error code from ListEimResult ...................................................................... V1.2: Remove error code from ListEimResult Remove the commandError code from listEimError in ListEimResult. The IPA process must use undefinedError instead. Reference: SGP.23 Section 2.11.2.1 Related: SYS#8101 Change-Id: I8acb868970a589e70c1688427994854f9393a01b --- M asn1/SGP32Definitions.asn M src/ipa/libasn/ListEimResult.h M src/ipa/libipa/es10b_load_euicc_pkg.c 3 files changed, 1 insertion(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/onomondo-ipa refs/changes/64/43064/1 diff --git a/asn1/SGP32Definitions.asn b/asn1/SGP32Definitions.asn index ef3bc90..cb01e11 100644 --- a/asn1/SGP32Definitions.asn +++ b/asn1/SGP32Definitions.asn @@ -294,7 +294,6 @@ ListEimResult ::= CHOICE { eimIdList SEQUENCE OF EimIdInfo, listEimError INTEGER { - commandError(7), undefinedError(127) } } diff --git a/src/ipa/libasn/ListEimResult.h b/src/ipa/libasn/ListEimResult.h index 546a7c3..6dbf3ee 100644 --- a/src/ipa/libasn/ListEimResult.h +++ b/src/ipa/libasn/ListEimResult.h @@ -30,7 +30,6 @@ } ListEimResult_PR; typedef enum ListEimResult__listEimError { - ListEimResult__listEimError_commandError = 7, ListEimResult__listEimError_undefinedError = 127 } e_ListEimResult__listEimError; diff --git a/src/ipa/libipa/es10b_load_euicc_pkg.c b/src/ipa/libipa/es10b_load_euicc_pkg.c index 6f3e91c..d250440 100644 --- a/src/ipa/libipa/es10b_load_euicc_pkg.c +++ b/src/ipa/libipa/es10b_load_euicc_pkg.c @@ -558,7 +558,7 @@ eim_cfg_data = ipa_es10b_get_eim_cfg_data(ctx); if (!eim_cfg_data) { euicc_result_data->choice.listEimResult.present = ListEimResult_PR_listEimError; - euicc_result_data->choice.listEimResult.choice.listEimError = ListEimResult__listEimError_commandError; + euicc_result_data->choice.listEimResult.choice.listEimError = ListEimResult__listEimError_undefinedError; } else { euicc_result_data->choice.listEimResult.present = ListEimResult_PR_eimIdList; -- To view, visit
https://gerrit.osmocom.org/c/onomondo-ipa/+/43064?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange Gerrit-Project: onomondo-ipa Gerrit-Branch: master Gerrit-Change-Id: I8acb868970a589e70c1688427994854f9393a01b Gerrit-Change-Number: 43064 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas(a)eversberg.eu>
1
0
0
0
[XS] Change in onomondo-ipa[master]: V1.2: Add error codes to GetEimPackageResponse
by jolly
16 Jul '26
16 Jul '26
jolly has uploaded this change for review. (
https://gerrit.osmocom.org/c/onomondo-ipa/+/43066?usp=email
) Change subject: V1.2: Add error codes to GetEimPackageResponse ...................................................................... V1.2: Add error codes to GetEimPackageResponse Add several new error codes to eimPackageError in GetEimPackageResponse. These errors are displayed during IPA process. Reference: SGP.23 Section 6.3.2.6 Related: SYS#8101 Change-Id: Ic0cdce1f5269794f37c5da3a63985706a7959184 --- M asn1/SGP32Definitions.asn M src/ipa/libasn/GetEimPackageResponse.h M src/ipa/libipa/esipa_get_eim_pkg.c 3 files changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/onomondo-ipa refs/changes/66/43066/1 diff --git a/asn1/SGP32Definitions.asn b/asn1/SGP32Definitions.asn index 986defd..a39f2e9 100644 --- a/asn1/SGP32Definitions.asn +++ b/asn1/SGP32Definitions.asn @@ -1028,6 +1028,9 @@ profileDownloadTriggerRequest [84] ProfileDownloadTriggerRequest, -- Tag 'BF54' eimPackageError INTEGER { noEimPackageAvailable(1), + eidNotFound(2), + invalidEid(3), + missingEid(4), undefinedError(127) } } diff --git a/src/ipa/libasn/GetEimPackageResponse.h b/src/ipa/libasn/GetEimPackageResponse.h index 6a97c8e..126cf41 100644 --- a/src/ipa/libasn/GetEimPackageResponse.h +++ b/src/ipa/libasn/GetEimPackageResponse.h @@ -34,6 +34,9 @@ } GetEimPackageResponse_PR; typedef enum GetEimPackageResponse__eimPackageError { GetEimPackageResponse__eimPackageError_noEimPackageAvailable = 1, + GetEimPackageResponse__eimPackageError_eidNotFound = 2, + GetEimPackageResponse__eimPackageError_invalidEid = 3, + GetEimPackageResponse__eimPackageError_missingEid = 4, GetEimPackageResponse__eimPackageError_undefinedError = 127 } e_GetEimPackageResponse__eimPackageError; diff --git a/src/ipa/libipa/esipa_get_eim_pkg.c b/src/ipa/libipa/esipa_get_eim_pkg.c index 0ecafd5..4145ac3 100644 --- a/src/ipa/libipa/esipa_get_eim_pkg.c +++ b/src/ipa/libipa/esipa_get_eim_pkg.c @@ -22,6 +22,9 @@ static const struct num_str_map error_code_strings[] = { { GetEimPackageResponse__eimPackageError_noEimPackageAvailable, "noEimPackageAvailable" }, + { GetEimPackageResponse__eimPackageError_eidNotFound, "eidNotFound" }, + { GetEimPackageResponse__eimPackageError_invalidEid, "invalidEid" }, + { GetEimPackageResponse__eimPackageError_missingEid, "missingEid" }, { GetEimPackageResponse__eimPackageError_undefinedError, "undefinedError" }, { 0, NULL } }; -- To view, visit
https://gerrit.osmocom.org/c/onomondo-ipa/+/43066?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange Gerrit-Project: onomondo-ipa Gerrit-Branch: master Gerrit-Change-Id: Ic0cdce1f5269794f37c5da3a63985706a7959184 Gerrit-Change-Number: 43066 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas(a)eversberg.eu>
1
0
0
0
[XS] Change in onomondo-ipa[master]: V1.2: Change tag of eimIdType in EimIdInfo
by jolly
16 Jul '26
16 Jul '26
jolly has uploaded this change for review. (
https://gerrit.osmocom.org/c/onomondo-ipa/+/43065?usp=email
) Change subject: V1.2: Change tag of eimIdType in EimIdInfo ...................................................................... V1.2: Change tag of eimIdType in EimIdInfo Reference: SGP.23 Section 2.11.2.1 Related: SYS#8101 Change-Id: Id96353ef74ffe51aa7de4848832f32e8f58ab4df --- M asn1/SGP32Definitions.asn M src/ipa/libasn/EimIdInfo.c 2 files changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/onomondo-ipa refs/changes/65/43065/1 diff --git a/asn1/SGP32Definitions.asn b/asn1/SGP32Definitions.asn index cb01e11..986defd 100644 --- a/asn1/SGP32Definitions.asn +++ b/asn1/SGP32Definitions.asn @@ -299,7 +299,7 @@ } EimIdInfo ::= SEQUENCE { eimId [0] UTF8String (SIZE(1..128)), - eimIdType [4] EimIdType OPTIONAL -- present in case of eimIdTypeOid and eimIdTypeFqdn + eimIdType [2] EimIdType OPTIONAL -- present in case of eimIdTypeOid and eimIdTypeFqdn } -- ASN1STOP diff --git a/src/ipa/libasn/EimIdInfo.c b/src/ipa/libasn/EimIdInfo.c index 9dc4d68..3ef299c 100644 --- a/src/ipa/libasn/EimIdInfo.c +++ b/src/ipa/libasn/EimIdInfo.c @@ -58,7 +58,7 @@ "eimId" }, { ATF_POINTER, 1, offsetof(struct EimIdInfo, eimIdType), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_EimIdType, 0, @@ -73,7 +73,7 @@ }; static const asn_TYPE_tag2member_t asn_MAP_EimIdInfo_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eimId */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 } /* eimIdType */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 } /* eimIdType */ }; asn_SEQUENCE_specifics_t asn_SPC_EimIdInfo_specs_1 = { sizeof(struct EimIdInfo), -- To view, visit
https://gerrit.osmocom.org/c/onomondo-ipa/+/43065?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange Gerrit-Project: onomondo-ipa Gerrit-Branch: master Gerrit-Change-Id: Id96353ef74ffe51aa7de4848832f32e8f58ab4df Gerrit-Change-Number: 43065 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas(a)eversberg.eu>
1
0
0
0
[XS] Change in onomondo-ipa[master]: V1.2: Specify tag values in HandleNotificationEsipa
by jolly
16 Jul '26
16 Jul '26
jolly has uploaded this change for review. (
https://gerrit.osmocom.org/c/onomondo-ipa/+/43067?usp=email
) Change subject: V1.2: Specify tag values in HandleNotificationEsipa ...................................................................... V1.2: Specify tag values in HandleNotificationEsipa Add specific tag values to fields in HandleNotificationEsipa. Reference: SGP.23 Section 6.3.2.4 Related: SYS#8101 Change-Id: I3abeb7295fd43e499105086a49bd62c4f835aeed --- M asn1/SGP32Definitions.asn M src/ipa/libasn/HandleNotificationEsipa.c 2 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/onomondo-ipa refs/changes/67/43067/1 diff --git a/asn1/SGP32Definitions.asn b/asn1/SGP32Definitions.asn index a39f2e9..27f0191 100644 --- a/asn1/SGP32Definitions.asn +++ b/asn1/SGP32Definitions.asn @@ -980,8 +980,8 @@ -- Section 6.3.2.4 -- ASN1START HandleNotificationEsipa ::= [61] CHOICE { -- Tag 'BF3D' - pendingNotification SGP32-PendingNotification, -- A Notification to be delivered to a Notification Receiver, possibly in compact format - provideEimPackageResult ProvideEimPackageResult + pendingNotification [0] SGP32-PendingNotification, -- A Notification to be delivered to a Notification Receiver, possibly in compact format + provideEimPackageResult [80] ProvideEimPackageResult -- Tag 'BF50' } -- ASN1STOP diff --git a/src/ipa/libasn/HandleNotificationEsipa.c b/src/ipa/libasn/HandleNotificationEsipa.c index ec44dd7..8f00be9 100644 --- a/src/ipa/libasn/HandleNotificationEsipa.c +++ b/src/ipa/libasn/HandleNotificationEsipa.c @@ -26,7 +26,7 @@ "pendingNotification" }, { ATF_NOFLAGS, 0, offsetof(struct HandleNotificationEsipa, choice.provideEimPackageResult), - (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + (ASN_TAG_CLASS_CONTEXT | (80 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProvideEimPackageResult, 0, @@ -40,7 +40,7 @@ }; static const asn_TYPE_tag2member_t asn_MAP_HandleNotificationEsipa_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pendingNotification */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* provideEimPackageResult */ + { (ASN_TAG_CLASS_CONTEXT | (80 << 2)), 1, 0, 0 } /* provideEimPackageResult */ }; asn_CHOICE_specifics_t asn_SPC_HandleNotificationEsipa_specs_1 = { sizeof(struct HandleNotificationEsipa), -- To view, visit
https://gerrit.osmocom.org/c/onomondo-ipa/+/43067?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange Gerrit-Project: onomondo-ipa Gerrit-Branch: master Gerrit-Change-Id: I3abeb7295fd43e499105086a49bd62c4f835aeed Gerrit-Change-Number: 43067 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas(a)eversberg.eu>
1
0
0
0
[XS] Change in onomondo-ipa[master]: V1.2: Rename field in GetBoundProfilePackageResponseEsipa
by jolly
16 Jul '26
16 Jul '26
jolly has uploaded this change for review. (
https://gerrit.osmocom.org/c/onomondo-ipa/+/43068?usp=email
) Change subject: V1.2: Rename field in GetBoundProfilePackageResponseEsipa ...................................................................... V1.2: Rename field in GetBoundProfilePackageResponseEsipa Rename field profileMetadataMismatch to metadataMismatch in GetBoundProfilePackageResponseEsipa. Reference: SGP.23 Section 6.3.2.3 Related: SYS#8101 Change-Id: I87965b68bde39d29317f9848aa3a88d9966c4e78 --- M asn1/SGP32Definitions.asn M src/ipa/libasn/GetBoundProfilePackageResponseEsipa.h M src/ipa/libipa/esipa_get_bnd_prfle_pkg.c 3 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/onomondo-ipa refs/changes/68/43068/1 diff --git a/asn1/SGP32Definitions.asn b/asn1/SGP32Definitions.asn index 27f0191..835386c 100644 --- a/asn1/SGP32Definitions.asn +++ b/asn1/SGP32Definitions.asn @@ -966,7 +966,7 @@ confirmationCodeRetriesExceeded(4), bppRebindingRefused(5), downloadOrderExpired(6), - profileMetadataMismatch(50), + metadataMismatch(50), invalidTransactionId(95), undefinedError(127) } diff --git a/src/ipa/libasn/GetBoundProfilePackageResponseEsipa.h b/src/ipa/libasn/GetBoundProfilePackageResponseEsipa.h index 50366ce..b458fa2 100644 --- a/src/ipa/libasn/GetBoundProfilePackageResponseEsipa.h +++ b/src/ipa/libasn/GetBoundProfilePackageResponseEsipa.h @@ -35,7 +35,7 @@ GetBoundProfilePackageResponseEsipa__getBoundProfilePackageErrorEsipa_confirmationCodeRetriesExceeded = 4, GetBoundProfilePackageResponseEsipa__getBoundProfilePackageErrorEsipa_bppRebindingRefused = 5, GetBoundProfilePackageResponseEsipa__getBoundProfilePackageErrorEsipa_downloadOrderExpired = 6, - GetBoundProfilePackageResponseEsipa__getBoundProfilePackageErrorEsipa_profileMetadataMismatch = 50, + GetBoundProfilePackageResponseEsipa__getBoundProfilePackageErrorEsipa_metadataMismatch = 50, GetBoundProfilePackageResponseEsipa__getBoundProfilePackageErrorEsipa_invalidTransactionId = 95, GetBoundProfilePackageResponseEsipa__getBoundProfilePackageErrorEsipa_undefinedError = 127 } e_GetBoundProfilePackageResponseEsipa__getBoundProfilePackageErrorEsipa; diff --git a/src/ipa/libipa/esipa_get_bnd_prfle_pkg.c b/src/ipa/libipa/esipa_get_bnd_prfle_pkg.c index 4e25c3b..d988d0e 100644 --- a/src/ipa/libipa/esipa_get_bnd_prfle_pkg.c +++ b/src/ipa/libipa/esipa_get_bnd_prfle_pkg.c @@ -36,8 +36,8 @@ "bppRebindingRefused" }, { GetBoundProfilePackageResponseEsipa__getBoundProfilePackageErrorEsipa_downloadOrderExpired, "downloadOrderExpired" }, - { GetBoundProfilePackageResponseEsipa__getBoundProfilePackageErrorEsipa_profileMetadataMismatch, - "profileMetadataMismatch" }, + { GetBoundProfilePackageResponseEsipa__getBoundProfilePackageErrorEsipa_metadataMismatch, + "metadataMismatch" }, { GetBoundProfilePackageResponseEsipa__getBoundProfilePackageErrorEsipa_invalidTransactionId, "invalidTransactionId" }, { GetBoundProfilePackageResponseEsipa__getBoundProfilePackageErrorEsipa_undefinedError, "undefinedError" }, -- To view, visit
https://gerrit.osmocom.org/c/onomondo-ipa/+/43068?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange Gerrit-Project: onomondo-ipa Gerrit-Branch: master Gerrit-Change-Id: I87965b68bde39d29317f9848aa3a88d9966c4e78 Gerrit-Change-Number: 43068 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas(a)eversberg.eu>
1
0
0
0
[S] Change in onomondo-ipa[master]: V1.2: Change tag in TransferEimPackageResponse
by jolly
16 Jul '26
16 Jul '26
jolly has uploaded this change for review. (
https://gerrit.osmocom.org/c/onomondo-ipa/+/43070?usp=email
) Change subject: V1.2: Change tag in TransferEimPackageResponse ...................................................................... V1.2: Change tag in TransferEimPackageResponse Change tag value of notificationList in TransferEimPackageResponse. Also change it from RetrieveNotificationsListResponse to PendingNotificationList. Reference: SGP.23 Section 6.3.1 Related: SYS#8101 Change-Id: I4c9cdd1b79ec22a1d5e36d1720cf5c703890c28b --- M asn1/SGP32Definitions.asn M src/ipa/libasn/SGP32-RetrieveNotificationsListResponse.c M src/ipa/libasn/SGP32-RetrieveNotificationsListResponse.h M src/ipa/libasn/TransferEimPackageResponse.c M src/ipa/libasn/TransferEimPackageResponse.h 5 files changed, 9 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/onomondo-ipa refs/changes/70/43070/1 diff --git a/asn1/SGP32Definitions.asn b/asn1/SGP32Definitions.asn index 48db16e..f67fc4d 100644 --- a/asn1/SGP32Definitions.asn +++ b/asn1/SGP32Definitions.asn @@ -1085,7 +1085,7 @@ euiccPackageResult [81] EuiccPackageResult, -- Tag 'BF51' ePRAndNotifications SEQUENCE { euiccPackageResult [81] EuiccPackageResult, -- Tag 'BF51' - notificationList [43] SGP32-RetrieveNotificationsListResponse -- Tag 'BF2B' + notificationList [0] PendingNotificationList -- Tag 'A0' }, ipaEuiccDataResponse [82] IpaEuiccDataResponse, -- Tag 'BF52' eimPackageReceived NULL, diff --git a/src/ipa/libasn/SGP32-RetrieveNotificationsListResponse.c b/src/ipa/libasn/SGP32-RetrieveNotificationsListResponse.c index 29fb7c0..9c79532 100644 --- a/src/ipa/libasn/SGP32-RetrieveNotificationsListResponse.c +++ b/src/ipa/libasn/SGP32-RetrieveNotificationsListResponse.c @@ -10,12 +10,12 @@ static asn_oer_constraints_t asn_OER_type_SGP32_RetrieveNotificationsListResponse_constr_1 CC_NOTUSED = { { 0, 0 }, -1}; -asn_per_constraints_t asn_PER_type_SGP32_RetrieveNotificationsListResponse_constr_1 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_type_SGP32_RetrieveNotificationsListResponse_constr_1 CC_NOTUSED = { { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_SGP32_RetrieveNotificationsListResponse_1[] = { +static asn_TYPE_member_t asn_MBR_SGP32_RetrieveNotificationsListResponse_1[] = { { ATF_NOFLAGS, 0, offsetof(struct SGP32_RetrieveNotificationsListResponse, choice.notificationList), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ @@ -52,7 +52,7 @@ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* notificationsListResultError */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* euiccPackageResultList */ }; -asn_CHOICE_specifics_t asn_SPC_SGP32_RetrieveNotificationsListResponse_specs_1 = { +static asn_CHOICE_specifics_t asn_SPC_SGP32_RetrieveNotificationsListResponse_specs_1 = { sizeof(struct SGP32_RetrieveNotificationsListResponse), offsetof(struct SGP32_RetrieveNotificationsListResponse, _asn_ctx), offsetof(struct SGP32_RetrieveNotificationsListResponse, present), diff --git a/src/ipa/libasn/SGP32-RetrieveNotificationsListResponse.h b/src/ipa/libasn/SGP32-RetrieveNotificationsListResponse.h index 380cffe..d204f13 100644 --- a/src/ipa/libasn/SGP32-RetrieveNotificationsListResponse.h +++ b/src/ipa/libasn/SGP32-RetrieveNotificationsListResponse.h @@ -53,9 +53,6 @@ /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_SGP32_RetrieveNotificationsListResponse; -extern asn_CHOICE_specifics_t asn_SPC_SGP32_RetrieveNotificationsListResponse_specs_1; -extern asn_TYPE_member_t asn_MBR_SGP32_RetrieveNotificationsListResponse_1[3]; -extern asn_per_constraints_t asn_PER_type_SGP32_RetrieveNotificationsListResponse_constr_1; #ifdef __cplusplus } diff --git a/src/ipa/libasn/TransferEimPackageResponse.c b/src/ipa/libasn/TransferEimPackageResponse.c index 365b82a..4498e59 100644 --- a/src/ipa/libasn/TransferEimPackageResponse.c +++ b/src/ipa/libasn/TransferEimPackageResponse.c @@ -26,9 +26,9 @@ "euiccPackageResult" }, { ATF_NOFLAGS, 0, offsetof(struct TransferEimPackageResponse__ePRAndNotifications, notificationList), - (ASN_TAG_CLASS_CONTEXT | (43 << 2)), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_SGP32_RetrieveNotificationsListResponse, + &asn_DEF_PendingNotificationList, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -39,7 +39,7 @@ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_ePRAndNotifications_tag2el_3[] = { - { (ASN_TAG_CLASS_CONTEXT | (43 << 2)), 1, 0, 0 }, /* notificationList */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* notificationList */ { (ASN_TAG_CLASS_CONTEXT | (81 << 2)), 0, 0, 0 } /* euiccPackageResult */ }; static asn_SEQUENCE_specifics_t asn_SPC_ePRAndNotifications_specs_3 = { diff --git a/src/ipa/libasn/TransferEimPackageResponse.h b/src/ipa/libasn/TransferEimPackageResponse.h index 7c61340..e82d871 100644 --- a/src/ipa/libasn/TransferEimPackageResponse.h +++ b/src/ipa/libasn/TransferEimPackageResponse.h @@ -16,7 +16,7 @@ #include "IpaEuiccDataResponse.h" #include <NULL.h> #include <NativeInteger.h> -#include "SGP32-RetrieveNotificationsListResponse.h" +#include "PendingNotificationList.h" #include <constr_SEQUENCE.h> #include <constr_CHOICE.h> @@ -48,7 +48,7 @@ EuiccPackageResult_t euiccPackageResult; struct TransferEimPackageResponse__ePRAndNotifications { EuiccPackageResult_t euiccPackageResult; - SGP32_RetrieveNotificationsListResponse_t notificationList; + PendingNotificationList_t notificationList; /* * This type is extensible, * possible extensions are below. -- To view, visit
https://gerrit.osmocom.org/c/onomondo-ipa/+/43070?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange Gerrit-Project: onomondo-ipa Gerrit-Branch: master Gerrit-Change-Id: I4c9cdd1b79ec22a1d5e36d1720cf5c703890c28b Gerrit-Change-Number: 43070 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas(a)eversberg.eu>
1
0
0
0
[M] Change in onomondo-ipa[master]: V1.2: Rename field in PSMO
by jolly
16 Jul '26
16 Jul '26
jolly has uploaded this change for review. (
https://gerrit.osmocom.org/c/onomondo-ipa/+/43069?usp=email
) Change subject: V1.2: Rename field in PSMO ...................................................................... V1.2: Rename field in PSMO Rename two field in PSMO. Reference: SGP.23 Section 2.11.1.1.3 Related: SYS#8101 Change-Id: I9336f18aaf104629845948877294437188979376 --- M asn1/SGP32Definitions.asn M src/ipa/libasn/Psmo.c M src/ipa/libasn/Psmo.h M src/ipa/libipa/context.h M src/ipa/libipa/es10b_euicc_mem_rst.c M src/ipa/libipa/es10b_immediate_enable.c M src/ipa/libipa/es10b_load_bnd_prfle_pkg.c M src/ipa/libipa/es10b_load_euicc_pkg.c M src/ipa/libipa/ipad.c 9 files changed, 67 insertions(+), 63 deletions(-) git pull ssh://gerrit.osmocom.org:29418/onomondo-ipa refs/changes/69/43069/1 diff --git a/asn1/SGP32Definitions.asn b/asn1/SGP32Definitions.asn index 835386c..48db16e 100644 --- a/asn1/SGP32Definitions.asn +++ b/asn1/SGP32Definitions.asn @@ -100,8 +100,8 @@ getRAT [6] SEQUENCE {}, configureImmediateEnable [7] SEQUENCE { immediateEnableFlag [0] NULL OPTIONAL, - smdpOid [1] OBJECT IDENTIFIER OPTIONAL, - smdpAddress [2] UTF8String OPTIONAL + defaultSmdpOid [1] OBJECT IDENTIFIER OPTIONAL, + defaultSmdpAddress [2] UTF8String OPTIONAL }, setFallbackAttribute [8] SEQUENCE {iccid [APPLICATION 26] Iccid}, unsetFallbackAttribute [9] SEQUENCE {}, diff --git a/src/ipa/libasn/Psmo.c b/src/ipa/libasn/Psmo.c index e6bb849..d3683a9 100644 --- a/src/ipa/libasn/Psmo.c +++ b/src/ipa/libasn/Psmo.c @@ -194,23 +194,23 @@ 0, 0, /* No default value */ "immediateEnableFlag" }, - { ATF_POINTER, 2, offsetof(struct Psmo__configureImmediateEnable, smdpOid), + { ATF_POINTER, 2, offsetof(struct Psmo__configureImmediateEnable, defaultSmdpOid), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_OBJECT_IDENTIFIER, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "smdpOid" + "defaultSmdpOid" }, - { ATF_POINTER, 1, offsetof(struct Psmo__configureImmediateEnable, smdpAddress), + { ATF_POINTER, 1, offsetof(struct Psmo__configureImmediateEnable, defaultSmdpAddress), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_UTF8String, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "smdpAddress" + "defaultSmdpAddress" }, }; static const int asn_MAP_configureImmediateEnable_oms_15[] = { 0, 1, 2 }; @@ -220,8 +220,8 @@ }; static const asn_TYPE_tag2member_t asn_MAP_configureImmediateEnable_tag2el_15[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* immediateEnableFlag */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* smdpOid */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* smdpAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* defaultSmdpOid */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* defaultSmdpAddress */ }; static asn_SEQUENCE_specifics_t asn_SPC_configureImmediateEnable_specs_15 = { sizeof(struct Psmo__configureImmediateEnable), diff --git a/src/ipa/libasn/Psmo.h b/src/ipa/libasn/Psmo.h index e00f820..71779fd 100644 --- a/src/ipa/libasn/Psmo.h +++ b/src/ipa/libasn/Psmo.h @@ -88,8 +88,8 @@ } getRAT; struct Psmo__configureImmediateEnable { NULL_t *immediateEnableFlag /* OPTIONAL */; - OBJECT_IDENTIFIER_t *smdpOid /* OPTIONAL */; - UTF8String_t *smdpAddress /* OPTIONAL */; + OBJECT_IDENTIFIER_t *defaultSmdpOid /* OPTIONAL */; + UTF8String_t *defaultSmdpAddress /* OPTIONAL */; /* * This type is extensible, * possible extensions are below. diff --git a/src/ipa/libipa/context.h b/src/ipa/libipa/context.h index e0080d4..bb5472e 100644 --- a/src/ipa/libipa/context.h +++ b/src/ipa/libipa/context.h @@ -30,8 +30,8 @@ /*! Immediate Profile Enabling configuration (set via configureImmidiateEnable PSMO) */ struct { bool flag; - struct ipa_buf *smdp_oid; - struct ipa_buf *smdp_address; + struct ipa_buf *default_smdp_oid; + struct ipa_buf *default_smdp_address; bool refresh; } immediate_enable; } iot_euicc_emu; @@ -61,8 +61,8 @@ /*! cached data to support the emulation of the ES10b function ImmidiateEnable */ struct { - struct ipa_buf *smdp_oid; - struct ipa_buf *smdp_address; + struct ipa_buf *default_smdp_oid; + struct ipa_buf *default_smdp_address; struct ipa_buf *profile_aid; } immediate_enable; } iot_euicc_emu; diff --git a/src/ipa/libipa/es10b_euicc_mem_rst.c b/src/ipa/libipa/es10b_euicc_mem_rst.c index 5c9d6d2..bb30e3a 100644 --- a/src/ipa/libipa/es10b_euicc_mem_rst.c +++ b/src/ipa/libipa/es10b_euicc_mem_rst.c @@ -212,10 +212,10 @@ if (req->immediate_enable_cfg) { IPA_LOGP_ES10X("eUICCMemoryReset", LINFO, "IoT eUICC emulation active, also clearing immediate enable configuration...\n"); - IPA_FREE(ctx->nvstate.iot_euicc_emu.immediate_enable.smdp_oid); - ctx->nvstate.iot_euicc_emu.immediate_enable.smdp_oid = NULL; - IPA_FREE(ctx->nvstate.iot_euicc_emu.immediate_enable.smdp_address); - ctx->nvstate.iot_euicc_emu.immediate_enable.smdp_address = NULL; + IPA_FREE(ctx->nvstate.iot_euicc_emu.immediate_enable.default_smdp_oid); + ctx->nvstate.iot_euicc_emu.immediate_enable.default_smdp_oid = NULL; + IPA_FREE(ctx->nvstate.iot_euicc_emu.immediate_enable.default_smdp_address); + ctx->nvstate.iot_euicc_emu.immediate_enable.default_smdp_address = NULL; ctx->nvstate.iot_euicc_emu.immediate_enable.flag = false; } diff --git a/src/ipa/libipa/es10b_immediate_enable.c b/src/ipa/libipa/es10b_immediate_enable.c index a649371..91f3656 100644 --- a/src/ipa/libipa/es10b_immediate_enable.c +++ b/src/ipa/libipa/es10b_immediate_enable.c @@ -99,18 +99,18 @@ } /* We also need either the smdp_oid or the smdp_address to verify against */ - if (ctx->nvstate.iot_euicc_emu.immediate_enable.smdp_oid == NULL && - ctx->nvstate.iot_euicc_emu.immediate_enable.smdp_address == NULL) { + if (ctx->nvstate.iot_euicc_emu.immediate_enable.default_smdp_oid == NULL && + ctx->nvstate.iot_euicc_emu.immediate_enable.default_smdp_address == NULL) { rc = ImmediateEnableResponse__immediateEnableResult_immediateEnableNotAvailable; goto error; } /* Ensure the session context is present and complete */ - if (ctx->iot_euicc_emu.immediate_enable.smdp_address == NULL) { + if (ctx->iot_euicc_emu.immediate_enable.default_smdp_address == NULL) { rc = ImmediateEnableResponse__immediateEnableResult_noSessionContext; goto error; } - if (ctx->iot_euicc_emu.immediate_enable.smdp_oid == NULL) { + if (ctx->iot_euicc_emu.immediate_enable.default_smdp_oid == NULL) { rc = ImmediateEnableResponse__immediateEnableResult_noSessionContext; goto error; } @@ -120,30 +120,30 @@ } /* Verify smdp OID (if configured) */ - if (ctx->nvstate.iot_euicc_emu.immediate_enable.smdp_oid) { - if (ctx->nvstate.iot_euicc_emu.immediate_enable.smdp_oid->len != - ctx->iot_euicc_emu.immediate_enable.smdp_oid->len) { + if (ctx->nvstate.iot_euicc_emu.immediate_enable.default_smdp_oid) { + if (ctx->nvstate.iot_euicc_emu.immediate_enable.default_smdp_oid->len != + ctx->iot_euicc_emu.immediate_enable.default_smdp_oid->len) { rc = ImmediateEnableResponse__immediateEnableResult_immediateEnableNotAvailable; goto error; } - if (memcmp(ctx->nvstate.iot_euicc_emu.immediate_enable.smdp_oid->data, - ctx->iot_euicc_emu.immediate_enable.smdp_oid->data, - ctx->iot_euicc_emu.immediate_enable.smdp_oid->len)) { + if (memcmp(ctx->nvstate.iot_euicc_emu.immediate_enable.default_smdp_oid->data, + ctx->iot_euicc_emu.immediate_enable.default_smdp_oid->data, + ctx->iot_euicc_emu.immediate_enable.default_smdp_oid->len)) { rc = ImmediateEnableResponse__immediateEnableResult_immediateEnableNotAvailable; goto error; } } /* Verify smdp address (if configured) */ - if (ctx->nvstate.iot_euicc_emu.immediate_enable.smdp_address) { - if (ctx->nvstate.iot_euicc_emu.immediate_enable.smdp_address->len != - ctx->iot_euicc_emu.immediate_enable.smdp_address->len) { + if (ctx->nvstate.iot_euicc_emu.immediate_enable.default_smdp_address) { + if (ctx->nvstate.iot_euicc_emu.immediate_enable.default_smdp_address->len != + ctx->iot_euicc_emu.immediate_enable.default_smdp_address->len) { rc = ImmediateEnableResponse__immediateEnableResult_immediateEnableNotAvailable; goto error; } - if (memcmp(ctx->nvstate.iot_euicc_emu.immediate_enable.smdp_address->data, - ctx->iot_euicc_emu.immediate_enable.smdp_address->data, - ctx->iot_euicc_emu.immediate_enable.smdp_address->len)) { + if (memcmp(ctx->nvstate.iot_euicc_emu.immediate_enable.default_smdp_address->data, + ctx->iot_euicc_emu.immediate_enable.default_smdp_address->data, + ctx->iot_euicc_emu.immediate_enable.default_smdp_address->len)) { rc = ImmediateEnableResponse__immediateEnableResult_immediateEnableNotAvailable; goto error; } @@ -174,10 +174,10 @@ } /* Ensure the auto enable data is cleared after use */ - ipa_buf_free(ctx->iot_euicc_emu.immediate_enable.smdp_oid); - ctx->iot_euicc_emu.immediate_enable.smdp_oid = NULL; - ipa_buf_free(ctx->iot_euicc_emu.immediate_enable.smdp_address); - ctx->iot_euicc_emu.immediate_enable.smdp_address = NULL; + ipa_buf_free(ctx->iot_euicc_emu.immediate_enable.default_smdp_oid); + ctx->iot_euicc_emu.immediate_enable.default_smdp_oid = NULL; + ipa_buf_free(ctx->iot_euicc_emu.immediate_enable.default_smdp_address); + ctx->iot_euicc_emu.immediate_enable.default_smdp_address = NULL; ipa_buf_free(ctx->iot_euicc_emu.immediate_enable.profile_aid); ctx->iot_euicc_emu.immediate_enable.profile_aid = NULL; diff --git a/src/ipa/libipa/es10b_load_bnd_prfle_pkg.c b/src/ipa/libipa/es10b_load_bnd_prfle_pkg.c index 946ccb2..60a52eb 100644 --- a/src/ipa/libipa/es10b_load_bnd_prfle_pkg.c +++ b/src/ipa/libipa/es10b_load_bnd_prfle_pkg.c @@ -33,8 +33,8 @@ return; /* Collect smdpOid and smdpAddress so that we can verify later whether the immediate enable is granted or not. */ - ctx->iot_euicc_emu.immediate_enable.smdp_oid = IPA_BUF_FROM_ASN(&prfle_inst_res_data->smdpOid); - ctx->iot_euicc_emu.immediate_enable.smdp_address = + ctx->iot_euicc_emu.immediate_enable.default_smdp_oid = IPA_BUF_FROM_ASN(&prfle_inst_res_data->smdpOid); + ctx->iot_euicc_emu.immediate_enable.default_smdp_address = IPA_BUF_FROM_ASN(&prfle_inst_res_data->notificationMetadata.notificationAddress); /* Collect AID of the profile so that we later know which profile to enable. */ @@ -69,10 +69,10 @@ /* In case IoT eUICC emulation is active, ensure that the immediate enable data is cleared. (This data has no * relevance in case a real IoT eUICC is used.) */ - ipa_buf_free(ctx->iot_euicc_emu.immediate_enable.smdp_oid); - ctx->iot_euicc_emu.immediate_enable.smdp_oid = NULL; - ipa_buf_free(ctx->iot_euicc_emu.immediate_enable.smdp_address); - ctx->iot_euicc_emu.immediate_enable.smdp_address = NULL; + ipa_buf_free(ctx->iot_euicc_emu.immediate_enable.default_smdp_oid); + ctx->iot_euicc_emu.immediate_enable.default_smdp_oid = NULL; + ipa_buf_free(ctx->iot_euicc_emu.immediate_enable.default_smdp_address); + ctx->iot_euicc_emu.immediate_enable.default_smdp_address = NULL; ipa_buf_free(ctx->iot_euicc_emu.immediate_enable.profile_aid); ctx->iot_euicc_emu.immediate_enable.profile_aid = NULL; diff --git a/src/ipa/libipa/es10b_load_euicc_pkg.c b/src/ipa/libipa/es10b_load_euicc_pkg.c index d250440..3fbec50 100644 --- a/src/ipa/libipa/es10b_load_euicc_pkg.c +++ b/src/ipa/libipa/es10b_load_euicc_pkg.c @@ -249,18 +249,19 @@ ctx->nvstate.iot_euicc_emu.immediate_enable.flag = false; } - /* Update smdpOid */ - ipa_buf_free(ctx->nvstate.iot_euicc_emu.immediate_enable.smdp_oid); - ctx->nvstate.iot_euicc_emu.immediate_enable.smdp_oid = NULL; - if (configureImmediateEnable_psmo->smdpOid) - ctx->nvstate.iot_euicc_emu.immediate_enable.smdp_oid = IPA_BUF_FROM_ASN(configureImmediateEnable_psmo->smdpOid); + /* Update defaultSmdpOid */ + ipa_buf_free(ctx->nvstate.iot_euicc_emu.immediate_enable.default_smdp_oid); + ctx->nvstate.iot_euicc_emu.immediate_enable.default_smdp_oid = NULL; + if (configureImmediateEnable_psmo->defaultSmdpOid) + ctx->nvstate.iot_euicc_emu.immediate_enable.default_smdp_oid = + IPA_BUF_FROM_ASN(configureImmediateEnable_psmo->defaultSmdpOid); - /* Update smdpAddress */ - ipa_buf_free(ctx->nvstate.iot_euicc_emu.immediate_enable.smdp_address); - ctx->nvstate.iot_euicc_emu.immediate_enable.smdp_address = NULL; - if (configureImmediateEnable_psmo->smdpAddress) - ctx->nvstate.iot_euicc_emu.immediate_enable.smdp_address = - IPA_BUF_FROM_ASN(configureImmediateEnable_psmo->smdpAddress); + /* Update defaultSmdpAddress */ + ipa_buf_free(ctx->nvstate.iot_euicc_emu.immediate_enable.default_smdp_address); + ctx->nvstate.iot_euicc_emu.immediate_enable.default_smdp_address = NULL; + if (configureImmediateEnable_psmo->defaultSmdpAddress) + ctx->nvstate.iot_euicc_emu.immediate_enable.default_smdp_address = + IPA_BUF_FROM_ASN(configureImmediateEnable_psmo->defaultSmdpAddress); euicc_result_data->choice.configureImmediateEnableResult = ConfigureImmediateEnableResult_ok; diff --git a/src/ipa/libipa/ipad.c b/src/ipa/libipa/ipad.c index 83e94a1..402ec0d 100644 --- a/src/ipa/libipa/ipad.c +++ b/src/ipa/libipa/ipad.c @@ -43,8 +43,8 @@ { /* free dynamically allocated struct members (append code for new members here) */ IPA_FREE(nvstate->iot_euicc_emu.eim_cfg_ber); - IPA_FREE(nvstate->iot_euicc_emu.immediate_enable.smdp_oid); - IPA_FREE(nvstate->iot_euicc_emu.immediate_enable.smdp_address); + IPA_FREE(nvstate->iot_euicc_emu.immediate_enable.default_smdp_oid); + IPA_FREE(nvstate->iot_euicc_emu.immediate_enable.default_smdp_address); } static void nvstate_reset(struct ipa_nvstate *nvstate) @@ -82,8 +82,9 @@ /* serialize dynamically allocated struct members (append code for new members here) */ nvstate_bin = nvstate_serialize_ipa_buf(nvstate_bin, nvstate->iot_euicc_emu.eim_cfg_ber); - nvstate_bin = nvstate_serialize_ipa_buf(nvstate_bin, nvstate->iot_euicc_emu.immediate_enable.smdp_oid); - nvstate_bin = nvstate_serialize_ipa_buf(nvstate_bin, nvstate->iot_euicc_emu.immediate_enable.smdp_address); + nvstate_bin = nvstate_serialize_ipa_buf(nvstate_bin, nvstate->iot_euicc_emu.immediate_enable.default_smdp_oid); + nvstate_bin = nvstate_serialize_ipa_buf(nvstate_bin, + nvstate->iot_euicc_emu.immediate_enable.default_smdp_address); return nvstate_bin; } @@ -131,8 +132,10 @@ /* deserialize dynamically allocated struct members (append code for new members here) */ nvstate->iot_euicc_emu.eim_cfg_ber = nvstate_deserialize_ipa_buf(&nvstate_data, &nvstate_data_len); - nvstate->iot_euicc_emu.immediate_enable.smdp_oid = nvstate_deserialize_ipa_buf(&nvstate_data, &nvstate_data_len); - nvstate->iot_euicc_emu.immediate_enable.smdp_address = nvstate_deserialize_ipa_buf(&nvstate_data, &nvstate_data_len); + nvstate->iot_euicc_emu.immediate_enable.default_smdp_oid = + nvstate_deserialize_ipa_buf(&nvstate_data, &nvstate_data_len); + nvstate->iot_euicc_emu.immediate_enable.default_smdp_address = + nvstate_deserialize_ipa_buf(&nvstate_data, &nvstate_data_len); } /*! Read eIM configuration from eUICC and pick a suitable eIM. @@ -486,8 +489,8 @@ nvstate = nvstate_serialize(&ctx->nvstate); IPA_FREE(ctx->iot_euicc_emu.rollback_iccid); - ipa_buf_free(ctx->iot_euicc_emu.immediate_enable.smdp_oid); - ipa_buf_free(ctx->iot_euicc_emu.immediate_enable.smdp_address); + ipa_buf_free(ctx->iot_euicc_emu.immediate_enable.default_smdp_oid); + ipa_buf_free(ctx->iot_euicc_emu.immediate_enable.default_smdp_address); ipa_buf_free(ctx->iot_euicc_emu.immediate_enable.profile_aid); IPA_FREE(ctx->eim_id); IPA_FREE(ctx->eim_fqdn); -- To view, visit
https://gerrit.osmocom.org/c/onomondo-ipa/+/43069?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange Gerrit-Project: onomondo-ipa Gerrit-Branch: master Gerrit-Change-Id: I9336f18aaf104629845948877294437188979376 Gerrit-Change-Number: 43069 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas(a)eversberg.eu>
1
0
0
0
← Newer
1
...
43
44
45
46
47
48
49
...
87
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
Results per page:
10
25
50
100
200