jolly has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/onomondo-ipa/+/43073?usp=email )


Change subject: V1.2: Cange remaining ASN1 definition to SGP.32 V1.2
......................................................................

V1.2: Cange remaining ASN1 definition to SGP.32 V1.2

These changes are cosmetic or have no impact on functionality.

Related: SYS#8101
Change-Id: Ifa2546784a6d75170e4f5aae2a5e98edb2c0627a
---
M asn1/SGP32Definitions.asn
M src/ipa/libasn/EuiccPackageErrorCode.h
M src/ipa/libasn/EuiccPackageErrorDataSigned.c
M src/ipa/libasn/EuiccPackageErrorDataSigned.h
M src/ipa/libasn/EuiccPackageSigned.c
5 files changed, 87 insertions(+), 40 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/onomondo-ipa refs/changes/73/43073/1

diff --git a/asn1/SGP32Definitions.asn b/asn1/SGP32Definitions.asn
index b9746ea..876dc3d 100644
--- a/asn1/SGP32Definitions.asn
+++ b/asn1/SGP32Definitions.asn
@@ -30,7 +30,7 @@
   eimSignature [APPLICATION 55] OCTET STRING -- Tag '5F37'
 }
 EuiccPackageSigned ::= SEQUENCE {
-  eimId [0] UTF8String,
+  eimId [0] UTF8String (SIZE(1..128)),
   eidValue [APPLICATION 26] Octet16, -- Tag '5A'
   counterValue [1] INTEGER,
   eimTransactionId [2] TransactionId OPTIONAL,
@@ -47,7 +47,7 @@
 -- ASN1START
 EimConfigurationData ::= SEQUENCE {
   eimId [0] UTF8String (SIZE(1..128)), -- eimId of eIM
-  eimFqdn [1] UTF8String OPTIONAL, -- FQDN of eIM
+  eimFqdn [1] UTF8String OPTIONAL, -- FQDN of eIM or intermediate server, if 
used
   eimIdType [2] EimIdType OPTIONAL,
   counterValue [3] INTEGER OPTIONAL, -- initial counterValue for the eIM
   associationToken [4] INTEGER OPTIONAL,
@@ -61,7 +61,7 @@
   } OPTIONAL,
   eimSupportedProtocol [7] EimSupportedProtocol OPTIONAL,
   euiccCiPKId [8] SubjectKeyIdentifier OPTIONAL, -- CI Public Key Identifier 
supported on the eUICC for signature creation
-  indirectProfileDownload[9] NULL OPTIONAL -- support of Indirect Profile 
download with indicated EimSupportedProtocol
+  indirectProfileDownload [9] NULL OPTIONAL -- support of Indirect Profile 
download with indicated EimSupportedProtocol
 }
 EimIdType ::= INTEGER {
   eimIdTypeOid(1),
@@ -113,7 +113,7 @@
 -- Section 2.11.1.2
 -- ASN1START
 IpaEuiccDataRequest ::= [82] SEQUENCE { -- Tag BF52
-  tagList [APPLICATION 28] OCTET STRING, -- Tag '5C'
+  tagList  [APPLICATION 28] OCTET STRING, -- Tag '5C'
   euiccCiPKIdentifierToBeUsed OCTET STRING OPTIONAL, -- CI Public Key 
Identifier (possibly truncated) supported on the eUICC for signature creation
   searchCriteriaNotification [1] CHOICE {
     seqNumber [0] INTEGER,
@@ -195,10 +195,17 @@
 EuiccPackageErrorDataSigned ::= SEQUENCE {
   eimId [0] UTF8String (SIZE(1..128)),
   counterValue [1] INTEGER,
-  transactionId [2] TransactionId OPTIONAL,
+  eimTransactionId [2] TransactionId OPTIONAL,
   euiccPackageErrorCode EuiccPackageErrorCode
 }
-EuiccPackageErrorCode ::= INTEGER { invalidEid(3), replayError(4), 
counterValueOutOfRange(6), sizeOverflow(15), undefinedError(127)}
+EuiccPackageErrorCode ::= INTEGER {
+  invalidEid(3),
+  replayError(4),
+  counterValueOutOfRange(6),
+  sizeOverflow(15),
+  ecallActive(104),
+  undefinedError(127)
+}
 EuiccPackageErrorUnsigned ::= SEQUENCE {
   eimId [0] UTF8String (SIZE(1..128)),
   eimTransactionId [2] TransactionId OPTIONAL,
@@ -369,8 +376,8 @@
     activateIpae(0) -- IPAe activation
   }
 }
--- ASN1START
 -- ASN1STOP
+-- ASN1START
 IpaeActivationResponse ::= [66] SEQUENCE { -- Tag 'BF42'
   ipaeActivationResult INTEGER {ok(0), notSupported(1)}
 }
@@ -501,8 +508,8 @@
 }
 -- Definition of IpaMode
 IpaMode ::= INTEGER {
-ipad (0), -- IPAd is active
-ipae (1) -- IPAe is active
+  ipad (0), -- IPAd is active
+  ipae (1) -- IPAe is active
 }
 -- ASN1STOP

@@ -536,20 +543,20 @@
 -- (added manually since the PDF document lacks the ASN1START/ASN1STOP token 
for this function, which aused problems
 --  during the automatic parsing of the PDF document.)
 SGP32-EuiccMemoryResetRequest ::= [52] SEQUENCE { -- Tag 'BF34'
-   resetOptions [2] BIT STRING {
-      deleteOperationalProfiles(0),
-      deleteFieldLoadedTestProfiles(1),
-      resetDefaultSmdpAddress(2),
-      deletePreLoadedTestProfiles(3),
-      deleteProvisioningProfiles(4),
-      resetEimConfigData(5),
-      resetImmediateEnableConfig (6)
-   }
+  resetOptions [2] BIT STRING {
+    deleteOperationalProfiles(0),
+    deleteFieldLoadedTestProfiles(1),
+    resetDefaultSmdpAddress(2),
+    deletePreLoadedTestProfiles(3),
+    deleteProvisioningProfiles(4),
+    resetEimConfigData(5),
+    resetImmediateEnableConfig (6)
+  }
 }
 SGP32-EuiccMemoryResetResponse ::= [100] SEQUENCE { -- Tag 'BF64'
-   resetResult INTEGER {ok(0), nothingToDelete(1), catBusy(5), 
ecallActive(104), undefinedError(127)},
-   resetEimResult INTEGER {ok(0), nothingToDelete(1), eimResetNotSupported(2), 
undefinedError(127)} OPTIONAL,
-   resetImmediateEnableConfigResult INTEGER {ok(0), resetIECNotSupported (1), 
undefinedError(127)} OPTIONAL
+  resetResult INTEGER {ok(0), nothingToDelete(1), catBusy(5), 
ecallActive(104), undefinedError(127)},
+  resetEimResult INTEGER {ok(0), nothingToDelete(1), eimResetNotSupported(2), 
undefinedError(127)} OPTIONAL,
+  resetImmediateEnableConfigResult INTEGER {ok(0), resetIECNotSupported (1), 
undefinedError(127)} OPTIONAL
 }

 -- Section 5.9.10
@@ -631,8 +638,8 @@
 }
 -- ASN1STOP
 -- ASN1START
-  ConfigureImmediateProfileEnablingResponse ::= [89] SEQUENCE { -- Tag 'BF59'
-    configImmediateEnableResult [0] INTEGER {
+ConfigureImmediateProfileEnablingResponse ::= [89] SEQUENCE { -- Tag 'BF59'
+  configImmediateEnableResult [0] INTEGER {
     ok(0),
     insufficientMemory(1),
     associatedEimAlreadyExists(2),
@@ -770,7 +777,7 @@
 }
 CompactEuiccSigned2 ::= SEQUENCE {
   euiccOtpk [APPLICATION 73] OCTET STRING OPTIONAL, -- otPK.EUICC.ECKA, tag 
'5F49' euiccOtpk is always present except if bppEuiccOtpk was chosen by the 
eUICC
-  hashCc Octet32 OPTIONAL -- Hash of confirmation code, if not received from 
Eim
+  hashCc Octet32 OPTIONAL -- Hash of confirmation code, if not received from 
eIM
 }
 -- ASN1STOP

@@ -779,9 +786,9 @@
 SGP32-EuiccSigned1 ::= SEQUENCE {
   transactionId [0] TransactionId,
   serverAddress [3] UTF8String,
-  serverChallenge [4] Octet16,
+  serverChallenge [4] Octet16, -- The RSP Server Challenge
   euiccInfo2 [34] EUICCInfo2,
-  ctxParams1 CtxParams1 -- The RSP Server Challenge
+  ctxParams1 CtxParams1
 }
 SGP32-AuthenticateResponseOk ::= SEQUENCE {
   euiccSigned1 SGP32-EuiccSigned1, -- Signed information
@@ -811,6 +818,7 @@

 -- Section 5.14.7
 -- ASN1START
+-- ASN1STOP
 SGP32-PendingNotification ::= CHOICE {
   profileInstallationResult [55] SGP32-ProfileInstallationResult, -- tag 'BF37'
   otherSignedNotification OtherSignedNotification,
@@ -843,8 +851,6 @@
   tbsOtherNotification NotificationMetadata,
   euiccNotificationSignature [APPLICATION 55] OCTET STRING -- eUICC signature 
of tbsOtherNotification, Tag '5F37'
 }
--- ASN1STOP
-
 -- Section 5.14.8
 -- ASN1START
 SGP32-CancelSessionResponse ::= [65] CHOICE { -- Tag 'BF41'
@@ -918,7 +924,7 @@
 -- Section 6.3.2.2
 -- ASN1START
 AuthenticateClientRequestEsipa ::= [59] SEQUENCE { -- Tag 'BF3B'
-  transactionId [0] TransactionId,
+  transactionId [0] TransactionId, -- The TransactionID generated by the 
SM-DP+/SM-DS
   authenticateServerResponse [56] SGP32-AuthenticateServerResponse -- This is 
the response from ES10b.AuthenticateServer, possibly in compact format
 }
 AuthenticateClientResponseEsipa ::= [59] CHOICE { -- Tag 'BF3B'
@@ -942,7 +948,7 @@
   }
 }
 AuthenticateClientOkDPEsipa ::= SEQUENCE {
-  transactionId [0] TransactionId OPTIONAL,
+  transactionId [0] TransactionId OPTIONAL, -- The TransactionID generated by 
the SM-DP+
   profileMetaData [37] SGP32-StoreMetadataRequest OPTIONAL,
   smdpSigned2 SmdpSigned2, -- Signed information
   smdpSignature2 [APPLICATION 55] OCTET STRING, -- Tag '5F37'
@@ -950,7 +956,7 @@
   hashCc Octet32 OPTIONAL -- Hash of confirmation code
 }
 AuthenticateClientOkDSEsipa ::= SEQUENCE {
-  transactionId [0] TransactionId,
+  transactionId [0] TransactionId, -- The TransactionID generated by the SM-DS
   profileDownloadTrigger [84] ProfileDownloadTriggerRequest OPTIONAL -- Tag 
'BF54'
 }
 -- ASN1STOP
@@ -958,7 +964,7 @@
 -- Section 6.3.2.3
 -- ASN1START
 GetBoundProfilePackageRequestEsipa ::= [58] SEQUENCE { -- Tag 'BF3A'
-  transactionId [0] TransactionId,
+  transactionId [0] TransactionId, -- The TransactionID generated by the SM-DP+
   prepareDownloadResponse [33] SGP32-PrepareDownloadResponse -- This is the 
response from ES10b.PrepareDownload, possibly in compact format
 }
 GetBoundProfilePackageResponseEsipa ::= [58] CHOICE { -- Tag 'BF3A'
@@ -976,7 +982,7 @@
   }
 }
 GetBoundProfilePackageOkEsipa ::= SEQUENCE {
-  transactionId [0] TransactionId OPTIONAL,
+  transactionId [0] TransactionId OPTIONAL, -- The TransactionID generated by 
the SM-DP+
   boundProfilePackage [54] BoundProfilePackage
 }
 -- ASN1STOP
@@ -992,8 +998,8 @@
 -- Section 6.3.2.5
 -- ASN1START
 CancelSessionRequestEsipa ::= [65] SEQUENCE { -- Tag 'BF41'
-  transactionId TransactionId,
-  cancelSessionResponse SGP32-CancelSessionResponse -- This is the response 
from ES10b.  CancelSession function, possibly in compact format
+  transactionId TransactionId, -- The TransactionID generated by the SM-DP+
+  cancelSessionResponse SGP32-CancelSessionResponse -- This is the response 
from ES10b. CancelSession function, possibly in compact format
 }
 CancelSessionResponseEsipa ::= [65] CHOICE { -- Tag 'BF41'
   cancelSessionOk SGP32-CancelSessionOk,
diff --git a/src/ipa/libasn/EuiccPackageErrorCode.h 
b/src/ipa/libasn/EuiccPackageErrorCode.h
index 94382d6..9827660 100644
--- a/src/ipa/libasn/EuiccPackageErrorCode.h
+++ b/src/ipa/libasn/EuiccPackageErrorCode.h
@@ -24,6 +24,7 @@
        EuiccPackageErrorCode_replayError       = 4,
        EuiccPackageErrorCode_counterValueOutOfRange    = 6,
        EuiccPackageErrorCode_sizeOverflow      = 15,
+       EuiccPackageErrorCode_ecallActive       = 104,
        EuiccPackageErrorCode_undefinedError    = 127
 } e_EuiccPackageErrorCode;

diff --git a/src/ipa/libasn/EuiccPackageErrorDataSigned.c 
b/src/ipa/libasn/EuiccPackageErrorDataSigned.c
index 59a6925..44e4a4c 100644
--- a/src/ipa/libasn/EuiccPackageErrorDataSigned.c
+++ b/src/ipa/libasn/EuiccPackageErrorDataSigned.c
@@ -66,14 +66,14 @@
                0, 0, /* No default value */
                "counterValue"
                },
-       { ATF_POINTER, 1, offsetof(struct EuiccPackageErrorDataSigned, 
transactionId),
+       { ATF_POINTER, 1, offsetof(struct EuiccPackageErrorDataSigned, 
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 */
-               "transactionId"
+               "eimTransactionId"
                },
        { ATF_NOFLAGS, 0, offsetof(struct EuiccPackageErrorDataSigned, 
euiccPackageErrorCode),
                (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
@@ -93,7 +93,7 @@
     { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, 0, 0 }, /* 
euiccPackageErrorCode */
     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eimId */
     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* counterValue */
-    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* transactionId */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* eimTransactionId */
 };
 asn_SEQUENCE_specifics_t asn_SPC_EuiccPackageErrorDataSigned_specs_1 = {
        sizeof(struct EuiccPackageErrorDataSigned),
diff --git a/src/ipa/libasn/EuiccPackageErrorDataSigned.h 
b/src/ipa/libasn/EuiccPackageErrorDataSigned.h
index 81d22f3..b27aca4 100644
--- a/src/ipa/libasn/EuiccPackageErrorDataSigned.h
+++ b/src/ipa/libasn/EuiccPackageErrorDataSigned.h
@@ -26,7 +26,7 @@
 typedef struct EuiccPackageErrorDataSigned {
        UTF8String_t     eimId;
        long     counterValue;
-       TransactionId_t *transactionId  /* OPTIONAL */;
+       TransactionId_t *eimTransactionId       /* OPTIONAL */;
        EuiccPackageErrorCode_t  euiccPackageErrorCode;
        /*
         * This type is extensible,
diff --git a/src/ipa/libasn/EuiccPackageSigned.c 
b/src/ipa/libasn/EuiccPackageSigned.c
index abc9109..1c4cd5e 100644
--- a/src/ipa/libasn/EuiccPackageSigned.c
+++ b/src/ipa/libasn/EuiccPackageSigned.c
@@ -7,13 +7,53 @@

 #include "EuiccPackageSigned.h"

+static int
+memb_eimId_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
+                       asn_app_constraint_failed_f *ctfailcb, void *app_key) {
+       const UTF8String_t *st = (const UTF8String_t *)sptr;
+       size_t size;
+
+       if(!sptr) {
+               ASN__CTFAIL(app_key, td, sptr,
+                       "%s: value not given (%s:%d)",
+                       td->name, __FILE__, __LINE__);
+               return -1;
+       }
+
+       size = UTF8String_length(st);
+       if((ssize_t)size < 0) {
+               ASN__CTFAIL(app_key, td, sptr,
+                       "%s: UTF-8: broken encoding (%s:%d)",
+                       td->name, __FILE__, __LINE__);
+               return -1;
+       }
+
+       if((size >= 1 && size <= 128)) {
+               /* Constraint check succeeded */
+               return 0;
+       } else {
+               ASN__CTFAIL(app_key, td, sptr,
+                       "%s: constraint failed (%s:%d)",
+                       td->name, __FILE__, __LINE__);
+               return -1;
+       }
+}
+
+static asn_oer_constraints_t asn_OER_memb_eimId_constr_2 CC_NOTUSED = {
+       { 0, 0 },
+       -1      /* (SIZE(0..MAX)) */};
+static asn_per_constraints_t asn_PER_memb_eimId_constr_2 CC_NOTUSED = {
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
+       0, 0    /* No PER value map */
+};
 asn_TYPE_member_t asn_MBR_EuiccPackageSigned_1[] = {
        { ATF_NOFLAGS, 0, offsetof(struct EuiccPackageSigned, eimId),
                (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
                -1,     /* IMPLICIT tag at current level */
                &asn_DEF_UTF8String,
                0,
-               { 0, 0, 0 },
+               { &asn_OER_memb_eimId_constr_2, &asn_PER_memb_eimId_constr_2,  
memb_eimId_constraint_1 },
                0, 0, /* No default value */
                "eimId"
                },

--
To view, visit https://gerrit.osmocom.org/c/onomondo-ipa/+/43073?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: Ifa2546784a6d75170e4f5aae2a5e98edb2c0627a
Gerrit-Change-Number: 43073
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <[email protected]>

Reply via email to