From 1ad922dbedc941a8f84cf68db640913c759e8728 Mon Sep 17 00:00:00 2001 From: Mouse Date: Tue, 20 Aug 2024 21:35:22 -0400 Subject: [PATCH] Make APER encoding/decoding of constrained OCTET_STRING correct --- skeletons/OCTET_STRING_aper.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/skeletons/OCTET_STRING_aper.c b/skeletons/OCTET_STRING_aper.c index f70ea2925..54efdef0d 100644 --- a/skeletons/OCTET_STRING_aper.c +++ b/skeletons/OCTET_STRING_aper.c @@ -60,10 +60,17 @@ OCTET_STRING_decode_aper(const asn_codec_ctx_t *opt_codec_ctx, switch(specs->subvariant) { case ASN_OSUBV_ANY: + canonical_unit_bits = unit_bits = 8; + if(cval->flags & APC_CONSTRAINED) + unit_bits = cval->range_bits; + bpc = OS__BPC_CHAR; + break; case ASN_OSUBV_STR: canonical_unit_bits = unit_bits = 8; + /* if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; + unit_bits = cval->range_bits; + */ bpc = OS__BPC_CHAR; break; case ASN_OSUBV_U16: @@ -267,10 +274,17 @@ OCTET_STRING_encode_aper(const asn_TYPE_descriptor_t *td, switch(specs->subvariant) { case ASN_OSUBV_ANY: + canonical_unit_bits = unit_bits = 8; + if(cval->flags & APC_CONSTRAINED) + unit_bits = 8; + bpc = OS__BPC_CHAR; + break; case ASN_OSUBV_STR: canonical_unit_bits = unit_bits = 8; +/* if(cval->flags & APC_CONSTRAINED) - unit_bits = cval->range_bits; + unit_bits = 8; +*/ bpc = OS__BPC_CHAR; sizeinunits = st->size; break;