/* * Generated by asn1c * From ASN.1 module "IEEE1609dot2" * found in "IEEE1609dot2.asn" * `asn1c -fcompound-names -fincludes-quoted -no-gen-example -fprefix=Vanetza_Security_ -R` */ #include "PsidGroupPermissions.h" /* vanetza-idf: eeType defaults to {app} ('80'H) as in IEEE Std 1609.2-2022/-2025 * clause 6.4.28 (schema major-version-2 minor-version-7, the base of ETSI TS 103 097 * V2.2.1); the module this file was generated from still said DEFAULT '00'H, which * made every decoded CA certificate with an absent eeType deny authorization * certificates. Hand-edited default value only (asn_DFL_5_cmp/asn_DFL_5_set); the * corresponding line of asn1/IEEE1609dot2.asn is changed alike. */ static int asn_DFL_3_cmp_1(const void *sptr) { const long *st = sptr; if(!st) { return -1; /* No value is not a default value */ } /* Test default value 1 */ return (*st != 1); } static int asn_DFL_3_set_1(void **sptr) { long *st = *sptr; if(!st) { st = (*sptr = CALLOC(1, sizeof(*st))); if(!st) return -1; } /* Install default value 1 */ *st = 1; return 0; } static int asn_DFL_4_cmp_0(const void *sptr) { const long *st = sptr; if(!st) { return -1; /* No value is not a default value */ } /* Test default value 0 */ return (*st != 0); } static int asn_DFL_4_set_0(void **sptr) { long *st = *sptr; if(!st) { st = (*sptr = CALLOC(1, sizeof(*st))); if(!st) return -1; } /* Install default value 0 */ *st = 0; return 0; } static int asn_DFL_5_cmp(const void *sptr) { static const uint8_t defv[] = { 0x80 }; /* vanetza-idf: DEFAULT {app} */ const Vanetza_Security_EndEntityType_t *st = sptr; if(!st) { return -1; /* No value is not a default value */ } if(st->size == (sizeof(defv)) && memcmp(st->buf, &defv, sizeof(defv)) == 0) return 0; return 1; } static int asn_DFL_5_set(void **sptr) { static const uint8_t defv[] = { 0x80 }; /* vanetza-idf: DEFAULT {app} */ Vanetza_Security_EndEntityType_t *st = *sptr; uint8_t *nstr = MALLOC(sizeof(defv)); if(!nstr) return -1; memcpy(nstr, defv, sizeof(defv)); if(st) { FREEMEM(st->buf); } else { st = (*sptr = CALLOC(1, sizeof(*st))); if(!st) { FREEMEM(nstr); return -1; } } st->buf = nstr; st->size = sizeof(defv); st->bits_unused = 0; return 0; } asn_TYPE_member_t asn_MBR_Vanetza_Security_PsidGroupPermissions_1[] = { { ATF_NOFLAGS, 0, offsetof(struct Vanetza_Security_PsidGroupPermissions, subjectPermissions), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), +1, /* EXPLICIT tag at current level */ &asn_DEF_Vanetza_Security_SubjectPermissions, 0, { #if !defined(ASN_DISABLE_OER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ #if !defined(ASN_DISABLE_JER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ 0 }, 0, 0, /* No default value */ "subjectPermissions" }, { ATF_POINTER, 3, offsetof(struct Vanetza_Security_PsidGroupPermissions, minChainLength), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_NativeInteger, 0, { #if !defined(ASN_DISABLE_OER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ #if !defined(ASN_DISABLE_JER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ 0 }, &asn_DFL_3_cmp_1, /* Compare DEFAULT 1 */ &asn_DFL_3_set_1, /* Set DEFAULT 1 */ "minChainLength" }, { ATF_NOFLAGS, 2, offsetof(struct Vanetza_Security_PsidGroupPermissions, chainLengthRange), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_NativeInteger, 0, { #if !defined(ASN_DISABLE_OER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ #if !defined(ASN_DISABLE_JER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ 0 }, &asn_DFL_4_cmp_0, /* Compare DEFAULT 0 */ &asn_DFL_4_set_0, /* Set DEFAULT 0 */ "chainLengthRange" }, { ATF_POINTER, 1, offsetof(struct Vanetza_Security_PsidGroupPermissions, eeType), (ASN_TAG_CLASS_CONTEXT | (3 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_Vanetza_Security_EndEntityType, 0, { #if !defined(ASN_DISABLE_OER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ #if !defined(ASN_DISABLE_JER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ 0 }, &asn_DFL_5_cmp, /* Compare DEFAULT {app} (vanetza-idf) */ &asn_DFL_5_set, /* Set DEFAULT {app} (vanetza-idf) */ "eeType" }, }; static const int asn_MAP_Vanetza_Security_PsidGroupPermissions_oms_1[] = { 1, 2, 3 }; static const ber_tlv_tag_t asn_DEF_Vanetza_Security_PsidGroupPermissions_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_Vanetza_Security_PsidGroupPermissions_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subjectPermissions */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* minChainLength */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* chainLengthRange */ { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* eeType */ }; asn_SEQUENCE_specifics_t asn_SPC_Vanetza_Security_PsidGroupPermissions_specs_1 = { sizeof(struct Vanetza_Security_PsidGroupPermissions), offsetof(struct Vanetza_Security_PsidGroupPermissions, _asn_ctx), asn_MAP_Vanetza_Security_PsidGroupPermissions_tag2el_1, 4, /* Count of tags in the map */ asn_MAP_Vanetza_Security_PsidGroupPermissions_oms_1, /* Optional members */ 3, 0, /* Root/Additions */ -1, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_Vanetza_Security_PsidGroupPermissions = { "PsidGroupPermissions", "PsidGroupPermissions", &asn_OP_SEQUENCE, asn_DEF_Vanetza_Security_PsidGroupPermissions_tags_1, sizeof(asn_DEF_Vanetza_Security_PsidGroupPermissions_tags_1) /sizeof(asn_DEF_Vanetza_Security_PsidGroupPermissions_tags_1[0]), /* 1 */ asn_DEF_Vanetza_Security_PsidGroupPermissions_tags_1, /* Same as above */ sizeof(asn_DEF_Vanetza_Security_PsidGroupPermissions_tags_1) /sizeof(asn_DEF_Vanetza_Security_PsidGroupPermissions_tags_1[0]), /* 1 */ { #if !defined(ASN_DISABLE_OER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_OER_SUPPORT) */ #if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */ #if !defined(ASN_DISABLE_JER_SUPPORT) 0, #endif /* !defined(ASN_DISABLE_JER_SUPPORT) */ SEQUENCE_constraint }, asn_MBR_Vanetza_Security_PsidGroupPermissions_1, 4, /* Elements count */ &asn_SPC_Vanetza_Security_PsidGroupPermissions_specs_1 /* Additional specs */ };