aboutsummaryrefslogtreecommitdiffstats
path: root/skeletons
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2017-07-06 08:26:36 -0700
committerLev Walkin <vlm@lionet.info>2017-08-02 13:32:16 -0700
commitcc1594746aea97a2e21ec04bd424264554e46492 (patch)
tree47395ae9f3fd5a6d7c6766f93bfcc14454fb46b3 /skeletons
parentba68c91b7162465d0748553f4958068e6d32eb56 (diff)
add skeleton OER stubs
Diffstat (limited to 'skeletons')
-rw-r--r--skeletons/ANY.c11
-rw-r--r--skeletons/BIT_STRING.c7
-rw-r--r--skeletons/BMPString.c7
-rw-r--r--skeletons/BOOLEAN.c7
-rw-r--r--skeletons/ENUMERATED.c7
-rw-r--r--skeletons/GeneralString.c7
-rw-r--r--skeletons/GeneralizedTime.c7
-rw-r--r--skeletons/GraphicString.c7
-rw-r--r--skeletons/IA5String.c7
-rw-r--r--skeletons/INTEGER.c8
-rw-r--r--skeletons/INTEGER.h4
-rw-r--r--skeletons/ISO646String.c7
-rw-r--r--skeletons/NULL.c7
-rw-r--r--skeletons/NativeEnumerated.c7
-rw-r--r--skeletons/NativeInteger.c7
-rw-r--r--skeletons/NativeReal.c7
-rw-r--r--skeletons/NumericString.c7
-rw-r--r--skeletons/OBJECT_IDENTIFIER.c7
-rw-r--r--skeletons/OCTET_STRING.c7
-rw-r--r--skeletons/ObjectDescriptor.c7
-rw-r--r--skeletons/PrintableString.c7
-rw-r--r--skeletons/REAL.c7
-rw-r--r--skeletons/RELATIVE-OID.c7
-rw-r--r--skeletons/T61String.c7
-rw-r--r--skeletons/TeletexString.c7
-rw-r--r--skeletons/UTCTime.c7
-rw-r--r--skeletons/UTF8String.c7
-rw-r--r--skeletons/UniversalString.c7
-rw-r--r--skeletons/VideotexString.c7
-rw-r--r--skeletons/VisibleString.c7
-rw-r--r--skeletons/constr_TYPE.h4
-rw-r--r--skeletons/oer_decoder.h41
-rw-r--r--skeletons/oer_encoder.h49
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_ */