jolly has uploaded this change for review.

View Change

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 change 43063. To unsubscribe, or for help writing mail filters, visit settings.

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@eversberg.eu>