jolly has uploaded this change for review.

View Change

V1.2: Add SGP.32-custom AuthenticateClientRequest

Add new AuthenticateClientRequest, which overrides and expands
AuthenticateClientRequest from SGP.22. There is no impact on IPA
process, because it is not used.

Reference: SGP.32 Section 5.6.1

Related: SYS#8101
Change-Id: I0003994fb82f8bbccb4de19946bbba975c98ef04
---
M asn1/SGP32Definitions.asn
M src/ipa/libasn/CMakeLists.txt
A src/ipa/libasn/SGP32-AuthenticateClientRequest.c
A src/ipa/libasn/SGP32-AuthenticateClientRequest.h
A src/ipa/libasn/SGP32-RemoteProfileProvisioningRequest.c
A src/ipa/libasn/SGP32-RemoteProfileProvisioningRequest.h
6 files changed, 296 insertions(+), 0 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/onomondo-ipa refs/changes/50/43050/1
diff --git a/asn1/SGP32Definitions.asn b/asn1/SGP32Definitions.asn
index aea5a52..e4e193c 100644
--- a/asn1/SGP32Definitions.asn
+++ b/asn1/SGP32Definitions.asn
@@ -438,6 +438,23 @@
}
-- ASN1STOP

+-- Because AuthenticateClientRequest has changed in SGP.32, we need to change this too.
+SGP32-RemoteProfileProvisioningRequest ::= [2] CHOICE { -- Tag 'A2'
+ initiateAuthenticationRequest [57] InitiateAuthenticationRequest, -- Tag 'BF39'
+ authenticateClientRequest [59] SGP32-AuthenticateClientRequest, -- Tag 'BF3B'
+ getBoundProfilePackageRequest [58] GetBoundProfilePackageRequest, -- Tag 'BF3A'
+ cancelSessionRequestEs9 [65] CancelSessionRequestEs9, -- Tag 'BF41'
+ handleNotification [61] HandleNotification -- tag 'BF3D'
+}
+
+-- Section 5.6.1
+-- ASN1START
+SGP32-AuthenticateClientRequest ::= [59] SEQUENCE { -- Tag 'BF3B'
+ transactionId [0] TransactionId,
+ authenticateServerResponse [56] AuthenticateServerResponse -- This is the response from ES10b.AuthenticateServer
+}
+-- ASN1STOP
+
-- Section 5.9.2
-- ASN1START
SGP32-EUICCInfo2 ::= [34] SEQUENCE { -- Tag 'BF22'
diff --git a/src/ipa/libasn/CMakeLists.txt b/src/ipa/libasn/CMakeLists.txt
index cb1999c..5a3dad1 100644
--- a/src/ipa/libasn/CMakeLists.txt
+++ b/src/ipa/libasn/CMakeLists.txt
@@ -822,6 +822,8 @@
SetNicknameRequest.h
SetNicknameResponse.c
SetNicknameResponse.h
+SGP32-AuthenticateClientRequest.c
+SGP32-AuthenticateClientRequest.h
SGP32-AuthenticateServerResponse.c
SGP32-AuthenticateServerResponse.h
SGP32-CancelSessionOk.c
@@ -846,6 +848,8 @@
SGP32-ProfileInfoListResponse.h
SGP32-ProfileInstallationResult.c
SGP32-ProfileInstallationResult.h
+SGP32-RemoteProfileProvisioningRequest.c
+SGP32-RemoteProfileProvisioningRequest.h
SGP32-RetrieveNotificationsListRequest.c
SGP32-RetrieveNotificationsListRequest.h
SGP32-RetrieveNotificationsListResponse.c
diff --git a/src/ipa/libasn/SGP32-AuthenticateClientRequest.c b/src/ipa/libasn/SGP32-AuthenticateClientRequest.c
new file mode 100644
index 0000000..d408f76
--- /dev/null
+++ b/src/ipa/libasn/SGP32-AuthenticateClientRequest.c
@@ -0,0 +1,61 @@
+/*
+ * 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-AuthenticateClientRequest.h"
+
+asn_TYPE_member_t asn_MBR_SGP32_AuthenticateClientRequest_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct SGP32_AuthenticateClientRequest, 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_AuthenticateClientRequest, authenticateServerResponse),
+ (ASN_TAG_CLASS_CONTEXT | (56 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_AuthenticateServerResponse,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "authenticateServerResponse"
+ },
+};
+static const ber_tlv_tag_t asn_DEF_SGP32_AuthenticateClientRequest_tags_1[] = {
+ (ASN_TAG_CLASS_CONTEXT | (59 << 2)),
+ (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SGP32_AuthenticateClientRequest_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transactionId */
+ { (ASN_TAG_CLASS_CONTEXT | (56 << 2)), 1, 0, 0 } /* authenticateServerResponse */
+};
+asn_SEQUENCE_specifics_t asn_SPC_SGP32_AuthenticateClientRequest_specs_1 = {
+ sizeof(struct SGP32_AuthenticateClientRequest),
+ offsetof(struct SGP32_AuthenticateClientRequest, _asn_ctx),
+ asn_MAP_SGP32_AuthenticateClientRequest_tag2el_1,
+ 2, /* Count of tags in the map */
+ 0, 0, 0, /* Optional elements (not needed) */
+ 2, /* First extension addition */
+};
+asn_TYPE_descriptor_t asn_DEF_SGP32_AuthenticateClientRequest = {
+ "SGP32-AuthenticateClientRequest",
+ "SGP32-AuthenticateClientRequest",
+ &asn_OP_SEQUENCE,
+ asn_DEF_SGP32_AuthenticateClientRequest_tags_1,
+ sizeof(asn_DEF_SGP32_AuthenticateClientRequest_tags_1)
+ /sizeof(asn_DEF_SGP32_AuthenticateClientRequest_tags_1[0]) - 1, /* 1 */
+ asn_DEF_SGP32_AuthenticateClientRequest_tags_1, /* Same as above */
+ sizeof(asn_DEF_SGP32_AuthenticateClientRequest_tags_1)
+ /sizeof(asn_DEF_SGP32_AuthenticateClientRequest_tags_1[0]), /* 2 */
+ { 0, 0, SEQUENCE_constraint },
+ asn_MBR_SGP32_AuthenticateClientRequest_1,
+ 2, /* Elements count */
+ &asn_SPC_SGP32_AuthenticateClientRequest_specs_1 /* Additional specs */
+};
+
diff --git a/src/ipa/libasn/SGP32-AuthenticateClientRequest.h b/src/ipa/libasn/SGP32-AuthenticateClientRequest.h
new file mode 100644
index 0000000..7dae9a5
--- /dev/null
+++ b/src/ipa/libasn/SGP32-AuthenticateClientRequest.h
@@ -0,0 +1,46 @@
+/*
+ * 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_AuthenticateClientRequest_H_
+#define _SGP32_AuthenticateClientRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "TransactionId.h"
+#include "AuthenticateServerResponse.h"
+#include <constr_SEQUENCE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* SGP32-AuthenticateClientRequest */
+typedef struct SGP32_AuthenticateClientRequest {
+ TransactionId_t transactionId;
+ AuthenticateServerResponse_t authenticateServerResponse;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SGP32_AuthenticateClientRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SGP32_AuthenticateClientRequest;
+extern asn_SEQUENCE_specifics_t asn_SPC_SGP32_AuthenticateClientRequest_specs_1;
+extern asn_TYPE_member_t asn_MBR_SGP32_AuthenticateClientRequest_1[2];
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SGP32_AuthenticateClientRequest_H_ */
+#include <asn_internal.h>
diff --git a/src/ipa/libasn/SGP32-RemoteProfileProvisioningRequest.c b/src/ipa/libasn/SGP32-RemoteProfileProvisioningRequest.c
new file mode 100644
index 0000000..2da7ceb
--- /dev/null
+++ b/src/ipa/libasn/SGP32-RemoteProfileProvisioningRequest.c
@@ -0,0 +1,103 @@
+/*
+ * 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-RemoteProfileProvisioningRequest.h"
+
+static asn_oer_constraints_t asn_OER_type_SGP32_RemoteProfileProvisioningRequest_constr_1 CC_NOTUSED = {
+ { 0, 0 },
+ -1};
+static asn_per_constraints_t asn_PER_type_SGP32_RemoteProfileProvisioningRequest_constr_1 CC_NOTUSED = {
+ { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */,
+ { APC_UNCONSTRAINED, -1, -1, 0, 0 },
+ 0, 0 /* No PER value map */
+};
+static asn_TYPE_member_t asn_MBR_SGP32_RemoteProfileProvisioningRequest_1[] = {
+ { ATF_NOFLAGS, 0, offsetof(struct SGP32_RemoteProfileProvisioningRequest, choice.initiateAuthenticationRequest),
+ (ASN_TAG_CLASS_CONTEXT | (57 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_InitiateAuthenticationRequest,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "initiateAuthenticationRequest"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct SGP32_RemoteProfileProvisioningRequest, choice.authenticateClientRequest),
+ (ASN_TAG_CLASS_CONTEXT | (59 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_SGP32_AuthenticateClientRequest,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "authenticateClientRequest"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct SGP32_RemoteProfileProvisioningRequest, choice.getBoundProfilePackageRequest),
+ (ASN_TAG_CLASS_CONTEXT | (58 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_GetBoundProfilePackageRequest,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "getBoundProfilePackageRequest"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct SGP32_RemoteProfileProvisioningRequest, choice.cancelSessionRequestEs9),
+ (ASN_TAG_CLASS_CONTEXT | (65 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_CancelSessionRequestEs9,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "cancelSessionRequestEs9"
+ },
+ { ATF_NOFLAGS, 0, offsetof(struct SGP32_RemoteProfileProvisioningRequest, choice.handleNotification),
+ (ASN_TAG_CLASS_CONTEXT | (61 << 2)),
+ -1, /* IMPLICIT tag at current level */
+ &asn_DEF_HandleNotification,
+ 0,
+ { 0, 0, 0 },
+ 0, 0, /* No default value */
+ "handleNotification"
+ },
+};
+static const unsigned asn_MAP_SGP32_RemoteProfileProvisioningRequest_to_canonical_1[] = { 0, 2, 1, 4, 3 };
+static const unsigned asn_MAP_SGP32_RemoteProfileProvisioningRequest_from_canonical_1[] = { 0, 2, 1, 4, 3 };
+static const ber_tlv_tag_t asn_DEF_SGP32_RemoteProfileProvisioningRequest_tags_1[] = {
+ (ASN_TAG_CLASS_CONTEXT | (2 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_SGP32_RemoteProfileProvisioningRequest_tag2el_1[] = {
+ { (ASN_TAG_CLASS_CONTEXT | (57 << 2)), 0, 0, 0 }, /* initiateAuthenticationRequest */
+ { (ASN_TAG_CLASS_CONTEXT | (58 << 2)), 2, 0, 0 }, /* getBoundProfilePackageRequest */
+ { (ASN_TAG_CLASS_CONTEXT | (59 << 2)), 1, 0, 0 }, /* authenticateClientRequest */
+ { (ASN_TAG_CLASS_CONTEXT | (61 << 2)), 4, 0, 0 }, /* handleNotification */
+ { (ASN_TAG_CLASS_CONTEXT | (65 << 2)), 3, 0, 0 } /* cancelSessionRequestEs9 */
+};
+static asn_CHOICE_specifics_t asn_SPC_SGP32_RemoteProfileProvisioningRequest_specs_1 = {
+ sizeof(struct SGP32_RemoteProfileProvisioningRequest),
+ offsetof(struct SGP32_RemoteProfileProvisioningRequest, _asn_ctx),
+ offsetof(struct SGP32_RemoteProfileProvisioningRequest, present),
+ sizeof(((struct SGP32_RemoteProfileProvisioningRequest *)0)->present),
+ asn_MAP_SGP32_RemoteProfileProvisioningRequest_tag2el_1,
+ 5, /* Count of tags in the map */
+ asn_MAP_SGP32_RemoteProfileProvisioningRequest_to_canonical_1,
+ asn_MAP_SGP32_RemoteProfileProvisioningRequest_from_canonical_1,
+ 5 /* Extensions start */
+};
+asn_TYPE_descriptor_t asn_DEF_SGP32_RemoteProfileProvisioningRequest = {
+ "SGP32-RemoteProfileProvisioningRequest",
+ "SGP32-RemoteProfileProvisioningRequest",
+ &asn_OP_CHOICE,
+ asn_DEF_SGP32_RemoteProfileProvisioningRequest_tags_1,
+ sizeof(asn_DEF_SGP32_RemoteProfileProvisioningRequest_tags_1)
+ /sizeof(asn_DEF_SGP32_RemoteProfileProvisioningRequest_tags_1[0]), /* 1 */
+ asn_DEF_SGP32_RemoteProfileProvisioningRequest_tags_1, /* Same as above */
+ sizeof(asn_DEF_SGP32_RemoteProfileProvisioningRequest_tags_1)
+ /sizeof(asn_DEF_SGP32_RemoteProfileProvisioningRequest_tags_1[0]), /* 1 */
+ { &asn_OER_type_SGP32_RemoteProfileProvisioningRequest_constr_1, &asn_PER_type_SGP32_RemoteProfileProvisioningRequest_constr_1, CHOICE_constraint },
+ asn_MBR_SGP32_RemoteProfileProvisioningRequest_1,
+ 5, /* Elements count */
+ &asn_SPC_SGP32_RemoteProfileProvisioningRequest_specs_1 /* Additional specs */
+};
+
diff --git a/src/ipa/libasn/SGP32-RemoteProfileProvisioningRequest.h b/src/ipa/libasn/SGP32-RemoteProfileProvisioningRequest.h
new file mode 100644
index 0000000..d207616
--- /dev/null
+++ b/src/ipa/libasn/SGP32-RemoteProfileProvisioningRequest.h
@@ -0,0 +1,65 @@
+/*
+ * 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_RemoteProfileProvisioningRequest_H_
+#define _SGP32_RemoteProfileProvisioningRequest_H_
+
+
+#include <asn_application.h>
+
+/* Including external dependencies */
+#include "InitiateAuthenticationRequest.h"
+#include "SGP32-AuthenticateClientRequest.h"
+#include "GetBoundProfilePackageRequest.h"
+#include "CancelSessionRequestEs9.h"
+#include "HandleNotification.h"
+#include <constr_CHOICE.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Dependencies */
+typedef enum SGP32_RemoteProfileProvisioningRequest_PR {
+ SGP32_RemoteProfileProvisioningRequest_PR_NOTHING, /* No components present */
+ SGP32_RemoteProfileProvisioningRequest_PR_initiateAuthenticationRequest,
+ SGP32_RemoteProfileProvisioningRequest_PR_authenticateClientRequest,
+ SGP32_RemoteProfileProvisioningRequest_PR_getBoundProfilePackageRequest,
+ SGP32_RemoteProfileProvisioningRequest_PR_cancelSessionRequestEs9,
+ SGP32_RemoteProfileProvisioningRequest_PR_handleNotification
+ /* Extensions may appear below */
+
+} SGP32_RemoteProfileProvisioningRequest_PR;
+
+/* SGP32-RemoteProfileProvisioningRequest */
+typedef struct SGP32_RemoteProfileProvisioningRequest {
+ SGP32_RemoteProfileProvisioningRequest_PR present;
+ union SGP32_RemoteProfileProvisioningRequest_u {
+ InitiateAuthenticationRequest_t initiateAuthenticationRequest;
+ SGP32_AuthenticateClientRequest_t authenticateClientRequest;
+ GetBoundProfilePackageRequest_t getBoundProfilePackageRequest;
+ CancelSessionRequestEs9_t cancelSessionRequestEs9;
+ HandleNotification_t handleNotification;
+ /*
+ * This type is extensible,
+ * possible extensions are below.
+ */
+ } choice;
+
+ /* Context for parsing across buffer boundaries */
+ asn_struct_ctx_t _asn_ctx;
+} SGP32_RemoteProfileProvisioningRequest_t;
+
+/* Implementation */
+extern asn_TYPE_descriptor_t asn_DEF_SGP32_RemoteProfileProvisioningRequest;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SGP32_RemoteProfileProvisioningRequest_H_ */
+#include <asn_internal.h>

To view, visit change 43050. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: onomondo-ipa
Gerrit-Branch: master
Gerrit-Change-Id: I0003994fb82f8bbccb4de19946bbba975c98ef04
Gerrit-Change-Number: 43050
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <andreas@eversberg.eu>