jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/onomondo-ipa/+/43050?usp=email )
Change subject: V1.2: Add SGP.32-custom AuthenticateClientRequest ......................................................................
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>