diff options
author | Lev Walkin <vlm@lionet.info> | 2017-07-06 08:26:36 -0700 |
---|---|---|
committer | Lev Walkin <vlm@lionet.info> | 2017-08-02 13:32:16 -0700 |
commit | cc1594746aea97a2e21ec04bd424264554e46492 (patch) | |
tree | 47395ae9f3fd5a6d7c6766f93bfcc14454fb46b3 /skeletons | |
parent | ba68c91b7162465d0748553f4958068e6d32eb56 (diff) |
add skeleton OER stubs
Diffstat (limited to 'skeletons')
33 files changed, 304 insertions, 2 deletions
diff --git a/skeletons/ANY.c b/skeletons/ANY.c index 055138dc..a21a54d0 100644 --- a/skeletons/ANY.c +++ b/skeletons/ANY.c @@ -21,7 +21,18 @@ asn_TYPE_descriptor_t asn_DEF_ANY = { OCTET_STRING_encode_der, OCTET_STRING_decode_xer_hex, ANY_encode_xer, +#ifdef ASN_DISABLE_PER_SUPPORT 0, 0, +#else + 0, 0, +#endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ 0, 0, 0, 0, 0, /* No PER visible constraints */ diff --git a/skeletons/BIT_STRING.c b/skeletons/BIT_STRING.c index e3308dc9..f576e5a2 100644 --- a/skeletons/BIT_STRING.c +++ b/skeletons/BIT_STRING.c @@ -34,6 +34,13 @@ asn_TYPE_descriptor_t asn_DEF_BIT_STRING = { OCTET_STRING_decode_uper, /* Unaligned PER decoder */ OCTET_STRING_encode_uper, /* Unaligned PER encoder */ #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_BIT_STRING_tags, sizeof(asn_DEF_BIT_STRING_tags) diff --git a/skeletons/BMPString.c b/skeletons/BMPString.c index ce8874b5..bb9a6e94 100644 --- a/skeletons/BMPString.c +++ b/skeletons/BMPString.c @@ -40,6 +40,13 @@ asn_TYPE_descriptor_t asn_DEF_BMPString = { OCTET_STRING_decode_uper, OCTET_STRING_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_BMPString_tags, sizeof(asn_DEF_BMPString_tags) diff --git a/skeletons/BOOLEAN.c b/skeletons/BOOLEAN.c index d358111c..1bf79db9 100644 --- a/skeletons/BOOLEAN.c +++ b/skeletons/BOOLEAN.c @@ -29,6 +29,13 @@ asn_TYPE_descriptor_t asn_DEF_BOOLEAN = { BOOLEAN_decode_uper, /* Unaligned PER decoder */ BOOLEAN_encode_uper, /* Unaligned PER encoder */ #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_BOOLEAN_tags, sizeof(asn_DEF_BOOLEAN_tags) / sizeof(asn_DEF_BOOLEAN_tags[0]), diff --git a/skeletons/ENUMERATED.c b/skeletons/ENUMERATED.c index 52eefb41..bde427e2 100644 --- a/skeletons/ENUMERATED.c +++ b/skeletons/ENUMERATED.c @@ -31,6 +31,13 @@ asn_TYPE_descriptor_t asn_DEF_ENUMERATED = { ENUMERATED_decode_uper, /* Unaligned PER decoder */ ENUMERATED_encode_uper, /* Unaligned PER encoder */ #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_ENUMERATED_tags, sizeof(asn_DEF_ENUMERATED_tags) / sizeof(asn_DEF_ENUMERATED_tags[0]), diff --git a/skeletons/GeneralString.c b/skeletons/GeneralString.c index 12562b5f..060d17e1 100644 --- a/skeletons/GeneralString.c +++ b/skeletons/GeneralString.c @@ -29,6 +29,13 @@ asn_TYPE_descriptor_t asn_DEF_GeneralString = { OCTET_STRING_decode_uper, /* Implemented in terms of OCTET STRING */ OCTET_STRING_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_GeneralString_tags, sizeof(asn_DEF_GeneralString_tags) diff --git a/skeletons/GeneralizedTime.c b/skeletons/GeneralizedTime.c index 61cbf445..ce702604 100644 --- a/skeletons/GeneralizedTime.c +++ b/skeletons/GeneralizedTime.c @@ -188,6 +188,13 @@ asn_TYPE_descriptor_t asn_DEF_GeneralizedTime = { OCTET_STRING_decode_uper, OCTET_STRING_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_GeneralizedTime_tags, sizeof(asn_DEF_GeneralizedTime_tags) diff --git a/skeletons/GraphicString.c b/skeletons/GraphicString.c index 668fe408..caa06143 100644 --- a/skeletons/GraphicString.c +++ b/skeletons/GraphicString.c @@ -29,6 +29,13 @@ asn_TYPE_descriptor_t asn_DEF_GraphicString = { OCTET_STRING_decode_uper, /* Implemented in terms of OCTET STRING */ OCTET_STRING_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_GraphicString_tags, sizeof(asn_DEF_GraphicString_tags) diff --git a/skeletons/IA5String.c b/skeletons/IA5String.c index fe0c206c..f767fb26 100644 --- a/skeletons/IA5String.c +++ b/skeletons/IA5String.c @@ -34,6 +34,13 @@ asn_TYPE_descriptor_t asn_DEF_IA5String = { OCTET_STRING_decode_uper, OCTET_STRING_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_IA5String_tags, sizeof(asn_DEF_IA5String_tags) diff --git a/skeletons/INTEGER.c b/skeletons/INTEGER.c index bb6f1bd5..b26a81f1 100644 --- a/skeletons/INTEGER.c +++ b/skeletons/INTEGER.c @@ -31,6 +31,14 @@ asn_TYPE_descriptor_t asn_DEF_INTEGER = { INTEGER_decode_uper, /* Unaligned PER decoder */ INTEGER_encode_uper, /* Unaligned PER encoder */ #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + //INTEGER_decode_oer, /* OER decoder */ + //INTEGER_encode_oer, /* Canonical OER encoder */ + 0,0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_INTEGER_tags, sizeof(asn_DEF_INTEGER_tags) / sizeof(asn_DEF_INTEGER_tags[0]), diff --git a/skeletons/INTEGER.h b/skeletons/INTEGER.h index 626288a5..0986ec49 100644 --- a/skeletons/INTEGER.h +++ b/skeletons/INTEGER.h @@ -41,8 +41,8 @@ xer_type_decoder_f INTEGER_decode_xer; xer_type_encoder_f INTEGER_encode_xer; per_type_decoder_f INTEGER_decode_uper; per_type_encoder_f INTEGER_encode_uper; -per_type_decoder_f INTEGER_decode_aper; -per_type_encoder_f INTEGER_encode_aper; +oer_type_decoder_f INTEGER_decode_oer; +oer_type_encoder_f INTEGER_encode_oer; /*********************************** * Some handy conversion routines. * diff --git a/skeletons/ISO646String.c b/skeletons/ISO646String.c index aa6bc624..a29a130a 100644 --- a/skeletons/ISO646String.c +++ b/skeletons/ISO646String.c @@ -34,6 +34,13 @@ asn_TYPE_descriptor_t asn_DEF_ISO646String = { OCTET_STRING_decode_uper, OCTET_STRING_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_ISO646String_tags, sizeof(asn_DEF_ISO646String_tags) diff --git a/skeletons/NULL.c b/skeletons/NULL.c index fb21c75d..d9668276 100644 --- a/skeletons/NULL.c +++ b/skeletons/NULL.c @@ -30,6 +30,13 @@ asn_TYPE_descriptor_t asn_DEF_NULL = { NULL_decode_uper, /* Unaligned PER decoder */ NULL_encode_uper, /* Unaligned PER encoder */ #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_NULL_tags, sizeof(asn_DEF_NULL_tags) / sizeof(asn_DEF_NULL_tags[0]), diff --git a/skeletons/NativeEnumerated.c b/skeletons/NativeEnumerated.c index d48bb734..c21f87ae 100644 --- a/skeletons/NativeEnumerated.c +++ b/skeletons/NativeEnumerated.c @@ -35,6 +35,13 @@ asn_TYPE_descriptor_t asn_DEF_NativeEnumerated = { NativeEnumerated_decode_uper, NativeEnumerated_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_NativeEnumerated_tags, sizeof(asn_DEF_NativeEnumerated_tags) / sizeof(asn_DEF_NativeEnumerated_tags[0]), diff --git a/skeletons/NativeInteger.c b/skeletons/NativeInteger.c index d98f1a20..2839dc43 100644 --- a/skeletons/NativeInteger.c +++ b/skeletons/NativeInteger.c @@ -36,6 +36,13 @@ asn_TYPE_descriptor_t asn_DEF_NativeInteger = { NativeInteger_decode_uper, /* Unaligned PER decoder */ NativeInteger_encode_uper, /* Unaligned PER encoder */ #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_NativeInteger_tags, sizeof(asn_DEF_NativeInteger_tags) / sizeof(asn_DEF_NativeInteger_tags[0]), diff --git a/skeletons/NativeReal.c b/skeletons/NativeReal.c index 9bbb3968..5ecb59a3 100644 --- a/skeletons/NativeReal.c +++ b/skeletons/NativeReal.c @@ -37,6 +37,13 @@ asn_TYPE_descriptor_t asn_DEF_NativeReal = { NativeReal_decode_uper, NativeReal_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_NativeReal_tags, sizeof(asn_DEF_NativeReal_tags) / sizeof(asn_DEF_NativeReal_tags[0]), diff --git a/skeletons/NumericString.c b/skeletons/NumericString.c index 1053ba35..bb6a0985 100644 --- a/skeletons/NumericString.c +++ b/skeletons/NumericString.c @@ -54,6 +54,13 @@ asn_TYPE_descriptor_t asn_DEF_NumericString = { OCTET_STRING_decode_uper, OCTET_STRING_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_NumericString_tags, sizeof(asn_DEF_NumericString_tags) diff --git a/skeletons/OBJECT_IDENTIFIER.c b/skeletons/OBJECT_IDENTIFIER.c index bdc6b5c7..f414f681 100644 --- a/skeletons/OBJECT_IDENTIFIER.c +++ b/skeletons/OBJECT_IDENTIFIER.c @@ -32,6 +32,13 @@ asn_TYPE_descriptor_t asn_DEF_OBJECT_IDENTIFIER = { OCTET_STRING_decode_uper, OCTET_STRING_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_OBJECT_IDENTIFIER_tags, sizeof(asn_DEF_OBJECT_IDENTIFIER_tags) diff --git a/skeletons/OCTET_STRING.c b/skeletons/OCTET_STRING.c index 85f93f4e..fa3d65e2 100644 --- a/skeletons/OCTET_STRING.c +++ b/skeletons/OCTET_STRING.c @@ -41,6 +41,13 @@ asn_TYPE_descriptor_t asn_DEF_OCTET_STRING = { OCTET_STRING_decode_uper, /* Unaligned PER decoder */ OCTET_STRING_encode_uper, /* Unaligned PER encoder */ #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_OCTET_STRING_tags, sizeof(asn_DEF_OCTET_STRING_tags) diff --git a/skeletons/ObjectDescriptor.c b/skeletons/ObjectDescriptor.c index 4590330c..65b00d5d 100644 --- a/skeletons/ObjectDescriptor.c +++ b/skeletons/ObjectDescriptor.c @@ -29,6 +29,13 @@ asn_TYPE_descriptor_t asn_DEF_ObjectDescriptor = { OCTET_STRING_decode_uper, OCTET_STRING_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_ObjectDescriptor_tags, sizeof(asn_DEF_ObjectDescriptor_tags) diff --git a/skeletons/PrintableString.c b/skeletons/PrintableString.c index 574cbfee..48ee7519 100644 --- a/skeletons/PrintableString.c +++ b/skeletons/PrintableString.c @@ -64,6 +64,13 @@ asn_TYPE_descriptor_t asn_DEF_PrintableString = { OCTET_STRING_decode_uper, OCTET_STRING_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_PrintableString_tags, sizeof(asn_DEF_PrintableString_tags) diff --git a/skeletons/REAL.c b/skeletons/REAL.c index 28441eba..2993b7ce 100644 --- a/skeletons/REAL.c +++ b/skeletons/REAL.c @@ -58,6 +58,13 @@ asn_TYPE_descriptor_t asn_DEF_REAL = { REAL_decode_uper, REAL_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_REAL_tags, sizeof(asn_DEF_REAL_tags) / sizeof(asn_DEF_REAL_tags[0]), diff --git a/skeletons/RELATIVE-OID.c b/skeletons/RELATIVE-OID.c index 8cc72d31..eb10510a 100644 --- a/skeletons/RELATIVE-OID.c +++ b/skeletons/RELATIVE-OID.c @@ -33,6 +33,13 @@ asn_TYPE_descriptor_t asn_DEF_RELATIVE_OID = { OCTET_STRING_decode_uper, OCTET_STRING_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_RELATIVE_OID_tags, sizeof(asn_DEF_RELATIVE_OID_tags) diff --git a/skeletons/T61String.c b/skeletons/T61String.c index 411ad87c..5f54e37b 100644 --- a/skeletons/T61String.c +++ b/skeletons/T61String.c @@ -29,6 +29,13 @@ asn_TYPE_descriptor_t asn_DEF_T61String = { OCTET_STRING_decode_uper, OCTET_STRING_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_T61String_tags, sizeof(asn_DEF_T61String_tags) diff --git a/skeletons/TeletexString.c b/skeletons/TeletexString.c index 1492481f..90762389 100644 --- a/skeletons/TeletexString.c +++ b/skeletons/TeletexString.c @@ -29,6 +29,13 @@ asn_TYPE_descriptor_t asn_DEF_TeletexString = { OCTET_STRING_decode_uper, OCTET_STRING_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_TeletexString_tags, sizeof(asn_DEF_TeletexString_tags) diff --git a/skeletons/UTCTime.c b/skeletons/UTCTime.c index 5f4a58af..8852d5ba 100644 --- a/skeletons/UTCTime.c +++ b/skeletons/UTCTime.c @@ -45,6 +45,13 @@ asn_TYPE_descriptor_t asn_DEF_UTCTime = { OCTET_STRING_decode_uper, OCTET_STRING_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_UTCTime_tags, sizeof(asn_DEF_UTCTime_tags) diff --git a/skeletons/UTF8String.c b/skeletons/UTF8String.c index ed2431a6..d7f5a389 100644 --- a/skeletons/UTF8String.c +++ b/skeletons/UTF8String.c @@ -30,6 +30,13 @@ asn_TYPE_descriptor_t asn_DEF_UTF8String = { OCTET_STRING_decode_uper, OCTET_STRING_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_UTF8String_tags, sizeof(asn_DEF_UTF8String_tags) diff --git a/skeletons/UniversalString.c b/skeletons/UniversalString.c index 663b7941..657fcc23 100644 --- a/skeletons/UniversalString.c +++ b/skeletons/UniversalString.c @@ -40,6 +40,13 @@ asn_TYPE_descriptor_t asn_DEF_UniversalString = { OCTET_STRING_decode_uper, OCTET_STRING_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_UniversalString_tags, sizeof(asn_DEF_UniversalString_tags) diff --git a/skeletons/VideotexString.c b/skeletons/VideotexString.c index 2bc0031d..12063db5 100644 --- a/skeletons/VideotexString.c +++ b/skeletons/VideotexString.c @@ -29,6 +29,13 @@ asn_TYPE_descriptor_t asn_DEF_VideotexString = { OCTET_STRING_decode_uper, /* Implemented in terms of OCTET STRING */ OCTET_STRING_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_VideotexString_tags, sizeof(asn_DEF_VideotexString_tags) diff --git a/skeletons/VisibleString.c b/skeletons/VisibleString.c index 7076da57..f57241c6 100644 --- a/skeletons/VisibleString.c +++ b/skeletons/VisibleString.c @@ -34,6 +34,13 @@ asn_TYPE_descriptor_t asn_DEF_VisibleString = { OCTET_STRING_decode_uper, OCTET_STRING_encode_uper, #endif /* ASN_DISABLE_PER_SUPPORT */ +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + 0, + 0, +#endif /* ASN_DISABLE_OER_SUPPORT */ 0, /* Use generic outmost tag fetcher */ asn_DEF_VisibleString_tags, sizeof(asn_DEF_VisibleString_tags) diff --git a/skeletons/constr_TYPE.h b/skeletons/constr_TYPE.h index a9cd86dc..651cc2ed 100644 --- a/skeletons/constr_TYPE.h +++ b/skeletons/constr_TYPE.h @@ -41,6 +41,8 @@ typedef struct asn_struct_ctx_s { #include <xer_encoder.h> /* Encoder into XER (XML, text) */ #include <per_decoder.h> /* Packet Encoding Rules decoder */ #include <per_encoder.h> /* Packet Encoding Rules encoder */ +#include <oer_decoder.h> /* Octet Encoding Rules encoder */ +#include <oer_encoder.h> /* Octet Encoding Rules encoder */ #include <constraints.h> /* Subtype constraints support */ /* @@ -99,6 +101,8 @@ typedef struct asn_TYPE_descriptor_s { xer_type_encoder_f *xer_encoder; /* [Canonical] XER encoder */ per_type_decoder_f *uper_decoder; /* Unaligned PER decoder */ per_type_encoder_f *uper_encoder; /* Unaligned PER encoder */ + oer_type_decoder_f *oer_decoder; /* Generic OER decoder */ + oer_type_encoder_f *oer_encoder; /* Canonical OER encoder */ /*********************************************************************** * Internally useful members. Not to be used by applications directly. * diff --git a/skeletons/oer_decoder.h b/skeletons/oer_decoder.h new file mode 100644 index 00000000..39222ff7 --- /dev/null +++ b/skeletons/oer_decoder.h @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _OER_DECODER_H_ +#define _OER_DECODER_H_ + +#include <asn_application.h> + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ +struct asn_codec_ctx_s; /* Forward declaration */ + +/* + * The Octet Encoding Rules (OER, X.696 08/2015) decoder for any given type. + * This function may be invoked directly by the application. + */ +asn_dec_rval_t oer_decode(struct asn_codec_ctx_s *opt_codec_ctx, + struct asn_TYPE_descriptor_s *type_descriptor, + void **struct_ptr, /* Pointer to a target structure's pointer */ + const void *buffer, /* Data to be decoded */ + size_t size /* Size of that buffer */ + ); + +/* + * Type of generic function which decodes the byte stream into the structure. + */ +typedef asn_dec_rval_t (oer_type_decoder_f)( + struct asn_codec_ctx_s *opt_codec_ctx, + struct asn_TYPE_descriptor_s *type_descriptor, + void **struct_ptr, const void *buf_ptr, size_t size, + int tag_mode); + +#ifdef __cplusplus +} +#endif + +#endif /* _OER_DECODER_H_ */ diff --git a/skeletons/oer_encoder.h b/skeletons/oer_encoder.h new file mode 100644 index 00000000..ee30f853 --- /dev/null +++ b/skeletons/oer_encoder.h @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2017 Lev Walkin <vlm@lionet.info>. All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _OER_ENCODER_H_ +#define _OER_ENCODER_H_ + +#include <asn_application.h> + +#ifdef __cplusplus +extern "C" { +#endif + +struct asn_TYPE_descriptor_s; /* Forward declaration */ + +/* + * The Octet Encoding Rules (OER, X.696 08/2015) encoder for any type. + * This function may be invoked directly by the application. + */ +asn_enc_rval_t oer_encode(struct asn_TYPE_descriptor_s *type_descriptor, + void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, + void *app_key /* Arbitrary callback argument */ + ); + +/* A variant of oer_encode() which encodes data into the pre-allocated buffer */ +asn_enc_rval_t oer_encode_to_buffer( + struct asn_TYPE_descriptor_s *type_descriptor, + void *struct_ptr, /* Structure to be encoded */ + void *buffer, /* Pre-allocated buffer */ + size_t buffer_size /* Initial buffer size (maximum) */ + ); + +/* + * Type of the generic OER encoder. + */ +typedef asn_enc_rval_t (oer_type_encoder_f)( + struct asn_TYPE_descriptor_s *type_descriptor, + void *struct_ptr, /* Structure to be encoded */ + asn_app_consume_bytes_f *consume_bytes_cb, /* Callback */ + void *app_key /* Arbitrary callback argument */ + ); + + +#ifdef __cplusplus +} +#endif + +#endif /* _OER_ENCODER_H_ */ |